В разработке программного обеспечения 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 часто основано на HTTP- запросе/ответе. Иногда API разрабатывается с использованием шаблона «Бэкенд для фронтенда» (BFF), который обслуживает ответы для упрощения обработки на стороне фронтенда. [5]
В сетевых вычислениях frontend может относиться к любому оборудованию , которое оптимизирует или защищает сетевой трафик . [6] Оно называется front-end оборудованием приложения, поскольку размещается на внешнем frontend или границе сети . Сетевой трафик проходит через front-end оборудование перед входом в сеть.
В проектировании процессоров , проектирование внешнего интерфейса будет представлять собой начальное описание поведения схемы на языке описания оборудования, таком как Verilog , в то время как проектирование внутреннего интерфейса будет представлять собой процесс отображения этого поведения на физические транзисторы на кристалле. [7]