Введение

Аспекты представления и доступа к данным в архитектуре программного обеспечения. В разработке программного обеспечения термины «фронтенд» и «бэкенд» (иногда пишутся как «бэкэнд» или «бэк-энд») обозначают разделение ответственности между слоем представления (фронтендом) и слоем доступа к данным (бэкендом) программного обеспечения, физической инфраструктурой или аппаратным обеспечением. В клиент-серверной модели клиент обычно рассматривается как фронтенд, а сервер – как бэкенд, даже если часть работы по представлению выполняется непосредственно на сервере.

Введение

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

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

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

Разработка веб-сайтов как пример

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

API

Фронтенд взаимодействует с бэкендом через API. Для веб- и мобильных фронтендов API часто строится на основе HTTP-запросов и ответов. Иногда API проектируется по шаблону "Backend for Frontend" (BFF), который формирует ответы, упрощая обработку на стороне фронтенда.

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

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