Введение
Аспекты представления и доступа к данным в архитектуре программного обеспечения. В разработке программного обеспечения термины «фронтенд» и «бэкенд» (иногда пишутся как «бэкэнд» или «бэк-энд») обозначают разделение ответственности между слоем представления (фронтендом) и слоем доступа к данным (бэкендом) программного обеспечения, физической инфраструктурой или аппаратным обеспечением. В клиент-серверной модели клиент обычно рассматривается как фронтенд, а сервер – как бэкенд, даже если часть работы по представлению выполняется непосредственно на сервере.
In software engineering, the terms frontend and backend (sometimes written as back end or back end) refer to the separation of concerns between the presentation layer (frontend), and the data access layer (backend) of a piece of software, or the physical infrastructure or hardware. In the client–server model, the client is usually considered the frontend and the server is usually considered the backend, even when some presentation work is actually done on the server itself.
Введение
В архитектуре программного обеспечения может быть множество уровней между аппаратным обеспечением и конечным пользователем. Фронтенд – это абстракция, упрощающая лежащий в основе компонент и предоставляющая удобный пользовательский интерфейс, а бэкенд обычно отвечает за хранение данных и бизнес-логику. В телекоммуникациях фронтенд можно рассматривать как устройство или сервис, а бэкенд – как инфраструктуру, обеспечивающую предоставление этого сервиса. Как правило, к клиентской стороне (или "фронтенду") относится любой компонент, с которым взаимодействует пользователь. Код на стороне сервера (или "бэкенд") обычно размещается на сервере, часто физически удаленном от пользователя.
Определения программного обеспечения
В системах управления контентом термины "фронтенд" и "бэкенд" могут относиться к пользовательскому интерфейсу, ориентированному на конечного пользователя, и к административному интерфейсу соответственно. В синтезе речи "фронтенд" обозначает часть системы, преобразующую входной текст в символическое фонетическое представление, а "бэкенд" – преобразующую это представление в звуки. В компиляторах "фронтенд" транслирует исходный код программы в промежуточное представление, а "бэкенд" работает с этим представлением для генерации кода на машинном языке. "Бэкенд" обычно выполняет оптимизацию для повышения скорости выполнения кода. Разделение на "фронтенд" и "бэкенд" позволяет отделить модуль парсинга, обрабатывающий исходный код, от "бэкенда", генерирующего и оптимизирующего код. Некоторые архитектуры, такие как GCC, предоставляют возможность выбора между несколькими "фронтендами" (для разбора различных языков программирования) или "бэкендами" (для генерации кода для разных целевых процессоров). Некоторые приложения с графическим пользовательским интерфейсом (GUI), работающие в десктопной среде, реализованы как упрощенный "фронтенд" для базовых программ командной строки (CLI), чтобы пользователю не приходилось изучать специальную терминологию и запоминать команды.
Разработка веб-сайтов как пример
Другой способ понять разницу между ними — разобраться, какие знания требуются разработчику фронтенда и бэкенда. Список ниже посвящен веб-разработке в качестве примера.
API
Фронтенд взаимодействует с бэкендом через API. Для веб- и мобильных фронтендов API часто строится на основе HTTP-запросов и ответов. Иногда API проектируется по шаблону "Backend for Frontend" (BFF), который формирует ответы, упрощая обработку на стороне фронтенда.
Определения оборудования
В сетевых вычислениях фронтэнд может относиться к любому оборудованию, оптимизирующему или защищающему сетевой трафик. Он называется аппаратным обеспечением прикладного фронтенда, поскольку располагается на внешней стороне сети или её границе. Сетевой трафик проходит через это оборудование перед попаданием в сеть. В проектировании процессоров, фронтэнд-проектирование — это начальное описание поведения схемы на языке описания аппаратуры, таком как Verilog, а бэкенд-проектирование — процесс отображения этого поведения на физические транзисторы на кристалле.