stringtranslate.com

Фронтенд и бэкенд

В программной инженерии термины frontend и backend (иногда пишутся как back end или back-end ) относятся к разделению интересов между уровнем представления ( frontend ) и уровнем доступа к данным ( backend ) части программного обеспечения или физической инфраструктуры или оборудования . В модели клиент-сервер клиент обычно считается frontend, а сервер обычно считается backend, даже если некоторая работа по представлению фактически выполняется на самом сервере.

Введение

В архитектуре программного обеспечения может быть много слоев между оборудованием и конечным пользователем . Фронт — это абстракция, упрощающая базовый компонент, предоставляя удобный интерфейс, в то время как бэк обычно обрабатывает хранение данных и бизнес-логику .

В телекоммуникациях переднюю часть можно рассматривать как устройство или услугу, а заднюю — как инфраструктуру, которая поддерживает предоставление услуги.

Правило большого пальца заключается в том, что клиентская сторона (или «фронтенд») — это любой компонент, которым управляет пользователь. Серверная сторона (или «бэкенд») код обычно находится на сервере , часто физически далеко от пользователя.

Определения программного обеспечения

В системах управления контентом термины frontend и backend могут относиться к представлениям CMS, обращенным к конечному пользователю, и административным представлениям соответственно. [1] [2]

В синтезе речи фронтенд относится к части системы синтеза, которая преобразует входной текст в символическое фонетическое представление, а бэкенд преобразует символическое фонетическое представление в реальные звуки. [3]

В компиляторах frontend транслирует исходный код компьютерного программирования в промежуточное представление , а backend работает с промежуточным представлением для создания кода на языке компьютерного вывода. Backend обычно оптимизирует для создания кода, который работает быстрее. Различие frontend/backend может разделить раздел парсера , который имеет дело с исходным кодом, и backend, который генерирует код и оптимизирует . Некоторые разработки, такие как GCC , предлагают выбор между несколькими frontend (анализирующими разные исходные языки ) или backend (генерирующими код для разных целевых процессоров ). [4]

Некоторые приложения с графическим пользовательским интерфейсом (GUI), работающие в среде рабочего стола, реализованы в виде тонкого интерфейса для базовых программ интерфейса командной строки (CLI), чтобы избавить пользователя от необходимости изучать специальную терминологию и запоминать команды .

Веб-разработка как пример

Другой способ понять разницу между ними — понять, какие знания требуются от frontend- и backend- разработчика программного обеспечения . Список ниже в качестве примера фокусируется на веб-разработке .

Оба

Ориентированный на фронтенд

Ориентирован на бэкэнд

Обратите внимание, что обе должности, несмотря на возможную работу над одним продуктом, предполагают совершенно разный набор навыков.

API

Фронтенд взаимодействует с бэкендом через API . В случае веб- и мобильных фронтендов API часто основано на HTTP- запросе/ответе. Иногда API разрабатывается с использованием шаблона «Бэкенд для фронтенда» (BFF), который обслуживает ответы для упрощения обработки на стороне фронтенда. [5]

Определения оборудования

В сетевых вычислениях frontend может относиться к любому оборудованию , которое оптимизирует или защищает сетевой трафик . [6] Оно называется front-end оборудованием приложения, поскольку размещается на внешнем frontend или границе сети . Сетевой трафик проходит через front-end оборудование перед входом в сеть.

В проектировании процессоров , проектирование внешнего интерфейса будет представлять собой начальное описание поведения схемы на языке описания оборудования, таком как Verilog , в то время как проектирование внутреннего интерфейса будет представлять собой процесс отображения этого поведения на физические транзисторы на кристалле. [7]

Смотрите также

Ссылки

  1. ^ «Front End vs Back End of Your Website: Everything You Need to Know». DOJO Creative . 7 февраля 2020 г. Архивировано из оригинала 1 сентября 2022 г. Получено 31 августа 2022 г.
  2. ^ Thapliyal, Vimal. "Разница между Frontend и Backend MVC – Joomlatuts". joomlatuts.net . Архивировано из оригинала 30 декабря 2016 года . Получено 30 декабря 2016 года .
  3. ^ Гутьеррес--Осуна, Рикардо. "L18: Синтез речи (бэкэнд)" (PDF) . tamu.edu . Техасский университет A&M. Архивировано из оригинала (PDF) 14 февраля 2019 г. . Получено 29 декабря 2016 г. .
  4. ^ Бин Мухаммад, Рашид. «Заметки об операционных системах». www.personal.kent.edu . Университет штата Кент. Архивировано из оригинала 31 августа 2018 года . Получено 30 декабря 2016 года .
  5. ^ Wickramarachchi, Viduni (24 февраля 2021 г.). «The BFF Pattern (Backend for Frontend): An Introduction». Bits and Pieces . Архивировано из оригинала 27 марта 2024 г. . Получено 13 ноября 2021 г. .
  6. ^ О'Делл, Майк. «Сетевые интерфейсные процессоры, снова | Июнь 2009 г. | Сообщения ACM». cacm.acm.org . Архивировано из оригинала 2016-12-30 . Получено 2016-12-30 .
  7. ^ "Front-End Design | Онлайн-документация по продуктам Altium". techdocs.altium.com . Архивировано из оригинала 2016-12-30 . Получено 2016-12-30 .