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