Фронтенд (front-end) и бэкенд (back-end) — это клиентская сторона пользовательского интерфейса к программно-аппаратной части сервиса.
Введение
В веб-разработках существуют следующие направления:
- направление frontend,
- направление backend,
- направление, которое является срединным между первыми двумя, то есть, объединяющее их, и именуемое fullstack.
Разработчики направления фронтенд отвечают только за то, что может видеть пользователь. Если взять в качестве примера вышивку, то они формируют ее лицевую, то есть, переднюю сторону. А в случае, если вышивка является неподвижной, то разработчик направления фронтенд способен оживить статичный макет дизайна, превратив его в удобный пользовательский интерфейс. То есть, он может создать функциональную страницу, на которой пользователь может нажимать клавиши, осуществлять ввод данных и так далее. При этом он должен обеспечить возможность корректного отображения страницы устройствами и браузерами.
Разработчик направления бэкенд занимается тем, что не может видеть пользователь, то есть, всем тем, что, условно говоря, спрятано «под капотом», а именно, на сервере. К примеру, если пользователь хочет заказать Uber, то он должен ввести адрес, выбрать тип машины и оплатить поездку, а «магией», которая реализуется на другой стороне, занимается именно backend. В интернет-магазинах бэкенд должен отвечать за недоступную пользователям связь отправки товара в корзину, покупки и оплаты.
Фронтенд и бэкенд
Рассмотрим стандартные задачи для этих двух направлений. Для фронтенда это может быть верстка и формирование динамических интерфейсов. Данный тип задач является доминирующим для специалистов, которые сотрудничают со студиями, а также для фрилансеров. В этом случае одним из наиболее используемых направлений является создание стандартных интернет- магазинов (правда не на движке, когда это касается фронтенда). Маленькие студии предпочитают заказывать фронтенду задачи верстки, включая создание рассылок.
Кроме того, в круг задач фронтенда может входить работа с SPA (Single Page Application). Формирование SPA и решение отдельных проблем, часто бывают необходимыми в продуктовых разработках. К примеру, для банковских приложений может потребоваться формирование калькулятора, корректируемых графиков и конвертеров валют.
К числу задач, решаемых бэкендом, можно отнести создание CRUD (акроним от английского create, read, update, delete). Приведем пример самой простой задачи. Когда на сайте формируется профиль пользователя, то бэкенд должен создать код, который позволяет сохранить изменения, вернуть профиль, а также осуществить его удаление. Помимо этого, можно привести в качестве примера структурирование, обработку данных и оптимизацию доступа к ним. Данные, которые получены с фронтенда, необходимо правильно сохранить и обработать, они должны обладать правильной и согласованной структурой. Этим как раз и занимается бэкенд, когда работает с базами данных, кешами и поисковой индексацией.
Рассмотрим также вопросы, касающиеся внешней интеграции, а именно, подключение сторонних ресурсов, партнерских API и тому подобное. Здесь может потребоваться проведение следующих исследовательских работ:
- Обеспечение возможности прочтения документации.
- Необходимо выполнить проект таким образом, чтобы в случае «падения» стороннего ресурса не останавливалась работа приложения.
Фронтенд для создания простых посадочных страниц требует следующий необходимый минимум знаний:
- Знание HTML (HyperText Markup Language), то есть, языка разметки, сообщающего браузеру, какие именно компоненты присутствуют на странице. К примеру, это могут быть заголовки, параграфы, картинки.
- Знание CSS (Cascading Style Sheets), то есть, системы, которая сообщает браузеру, каким именно образом следует отображать компоненты, присутствующие на странице. К примеру, «текст заголовка необходимо сделать ярко-красным и написать шрифтом Comic Sans».
- Знание препроцессоров, то есть, программ, расширяющих возможности основного CSS. Наиболее популярными считаются SASS и LESS.
- Знание JavaScript, то есть, языка программирования, который требуется для того чтобы «оживить» интерфейс, а именно, обеспечить общение с сервером, работы с формами, открытия всплывающих окон.
Для того чтобы можно было формировать динамичные страницы и более сложные SPA, пользователю необходимо овладеть хотя бы одним JS-фреймворком. Сегодня самыми популярными являются следующие:
- React, который является самой популярной JS-библиотекой, созданной Facebook в 2013-ом году. React может отлично подойти для формирования простых SPA.
- Фреймворк Angular, в котором имеется много различных инструментов, позволяющих создавать даже сложные архитектуры.
- Фреймворк Vue считается открытием последних лет. Он может отлично подойти для формирования приложений с высокой производительностью. Он является необычайно популярным на азиатском рынке.
Необходимый минимум для работы в бэкенде включает знание следующих компонентов:
- Знание хотя бы одного из языков программирования. Оптимальным вариантом может считаться язык JavaScript, а также можно рекомендовать языки Go, PHP, Java и Python.
- Знание системы Git. Это система контроля версий, позволяющая вернуться к предыдущим версиям кода. Ее приходится использовать при работе практически на любом языке и в любой команде.
- Знание баз данных. Базы могут быть двух категорий, а именно, реляционные и не реляционные базы. Рекомендуется начинать с реляционных баз и использовать что-либо из популярных, типа, MySQL или PostgreSQL. Для начала пользователю надо знать хотя бы одну.
- Знание API. Пользователь должен иметь хотя бы общее представление о том, какие они бывают.
Фронтенд может считаться идеальным выбором в следующих случаях:
- Пользователь желает быстро войти в информационные технологии.
- Пользователь склонен к работе с визуальной составляющей, создавая гармонию и красоту.