Фронтенд и бэкенд
В разработке программного обеспечения термины «интерфейс» и «бэкэнд» (иногда называемые «бэкэнд» или «бэкэнд» ) относятся к разделению задач между уровнем представления ( интерфейс ) и уровнем доступа к данным ( бэкэнд ) части программного обеспечения , или физическая инфраструктура или оборудование . В модели клиент-сервер клиент сервер обычно считается интерфейсом, а обычно считается сервером, даже если некоторая работа по представлению фактически выполняется на самом сервере.
Введение
[ редактировать ]В архитектуре программного обеспечения может быть много уровней между аппаратным обеспечением и конечным пользователем . Передняя часть представляет собой абстракцию, упрощающую базовый компонент за счет предоставления удобного интерфейса, тогда как задняя часть обычно занимается хранением данных и бизнес-логикой .
В телекоммуникациях переднюю часть можно рассматривать как устройство или услугу, а заднюю часть — это инфраструктуру, поддерживающую предоставление услуг.
заключается Эмпирическое правило в том, что клиентская сторона (или «интерфейс») — это любой компонент, которым манипулирует пользователь. Серверный (или «бэкэнд») код обычно находится на сервере , часто физически далеко удаленном от пользователя.
Определения программного обеспечения
[ редактировать ]В системах управления контентом термины «интерфейс» и «бэкэнд» могут относиться к представлениям CMS, обращенным к конечному пользователю, и административным представлениям соответственно. [1] [2]
В синтезе речи внешний интерфейс относится к части системы синтеза, которая преобразует входной текст в символическое фонетическое представление, а серверная часть преобразует символическое фонетическое представление в реальные звуки. [3]
В компиляторах внешний интерфейс преобразует компьютерного программирования исходный код в промежуточное представление , а серверная часть работает с промежуточным представлением для создания кода на языке компьютерного вывода. Бэкэнд обычно оптимизируется для создания кода, который работает быстрее. Различие между фронтендом и бэкэндом позволяет разделить секцию синтаксического анализатора , которая занимается исходным кодом, и бэкэнд, который генерирует код и оптимизирует . Некоторые проекты, такие как GCC , предлагают выбор между несколькими внешними интерфейсами (анализируя разные исходные языки ) или внутренними (генерирующими код для разных целевых процессоров ). [4]
Некоторые с графическим интерфейсом пользователя приложения (GUI), работающие в среде рабочего стола, реализованы как тонкий интерфейс для базовых программ с интерфейсом командной строки (CLI), чтобы избавить пользователя от изучения специальной терминологии и запоминания команд .
Веб-разработка на примере
[ редактировать ]Другой способ понять разницу между ними — понять, какие знания необходимы разработчику внешнего и внутреннего программного обеспечения . В приведенном ниже списке рассматривается веб-разработка в качестве примера .
Оба
[ редактировать ]- Инструменты контроля версий , такие как Git , Mercurial или Subversion.
- Инструменты и протоколы передачи файлов , такие как FTP или rsync.
Фронтенд ориентирован
[ редактировать ]- Разметка и веб-языки, такие как HTML , CSS , JavaScript и вспомогательные библиотеки, обычно используемые в этих языках, например Sass или jQuery.
- Асинхронная обработка запросов и AJAX
- Одностраничные приложения (с такими фреймворками, как React , Angular или Vue.js )
- Веб-производительность (наибольшая содержательная отрисовка, время взаимодействия, с частотой 60 кадров в секунду , использование памяти и т. д.) анимация и взаимодействие
- Адаптивный веб-дизайн
- Проблемы кроссбраузерной совместимости и обходные пути
- Сквозное тестирование с помощью headless-браузера
- Создайте автоматизацию для преобразования и объединения файлов JavaScript, уменьшения размера изображений и других процессов с помощью таких инструментов, как Webpack и Gulp.js.
- Поисковая оптимизация
- доступности Проблемы
- Базовое использование инструментов редактирования изображений, таких как GIMP или Photoshop.
- Пользовательский интерфейс
Серверная часть ориентирована
[ редактировать ]- Языки сценариев , такие как PHP , Python , Ruby , Perl , Node.js , или скомпилированные языки, такие как C# , Java или Go.
- Уровень доступа к данным
- Бизнес-логика
- Администрирование базы данных
- Масштабируемость
- Высокая доступность
- Проблемы безопасности, аутентификация и авторизация
- Архитектура программного обеспечения
- Преобразование данных
- резервного копирования Методы и программное обеспечение
Обратите внимание, что обе должности, несмотря на то, что они, возможно, работают над одним продуктом, имеют очень разный набор навыков.
API
[ редактировать ]Фронтенд взаимодействует с бэкэндом через API . В случае веб- интерфейсов и мобильных интерфейсов API часто основан на HTTP- запросе/ответе. API иногда разрабатывается с использованием шаблона «Backend for Frontend» (BFF), который предоставляет ответы для упрощения обработки на стороне внешнего интерфейса. [5]
Определения оборудования
[ редактировать ]В сетевых вычислениях интерфейс может относиться к любому оборудованию , которое оптимизирует или защищает сетевой трафик . [6] Оно называется аппаратным обеспечением внешнего интерфейса приложения, сети поскольку оно размещается на внешнем интерфейсе или границе . Сетевой трафик проходит через внешнее оборудование перед входом в сеть.
В процессора проектировании дизайн внешнего интерфейса будет представлять собой первоначальное описание поведения схемы на языке описания аппаратного обеспечения, таком как Verilog , тогда как дизайн внутреннего интерфейса будет представлять собой процесс сопоставления этого поведения с физическими транзисторами на кристалле. [7]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Внешняя и внутренняя часть вашего веб-сайта: все, что вам нужно знать» . ДОДЗЕ Креатив . 7 февраля 2020 года. Архивировано из оригинала 1 сентября 2022 года . Проверено 31 августа 2022 г.
- ^ Таплиял, Вимал. «Разница между фронтендом и бэкендом MVC – Joomlatuts» . joomlatuts.net . Архивировано из оригинала 30 декабря 2016 года . Проверено 30 декабря 2016 г.
- ^ Гутьеррес-Осуна, Рикардо. «L18: Синтез речи (бэкэнд)» (PDF) . tamu.edu . Техасский университет A&M. Архивировано из оригинала (PDF) 14 февраля 2019 года . Проверено 29 декабря 2016 г.
- ^ Бин Мухаммад, Рашид. «Заметки об операционных системах» . www.personal.kent.edu . Кентский государственный университет. Архивировано из оригинала 31 августа 2018 года . Проверено 30 декабря 2016 г.
- ^ Викрамараччи, Видуни (24 февраля 2021 г.). «Шаблон BFF (бэкенд для внешнего интерфейса): введение» . Кусочки и кусочки . Архивировано из оригинала 27 марта 2024 года . Проверено 13 ноября 2021 г.
- ^ О'Делл, Майк. «И снова сетевые интерфейсные процессоры | Июнь 2009 г. | Коммуникации ACM» . cacm.acm.org . Архивировано из оригинала 30 декабря 2016 г. Проверено 30 декабря 2016 г.
- ^ «Внешний дизайн | Онлайн-документация для продуктов Altium» . techdocs.altium.com . Архивировано из оригинала 30 декабря 2016 г. Проверено 30 декабря 2016 г.