Что такое frontend и backend разработка
Время на прочтение: 6 минут(ы)Разбираемся, что такое frontend и backend и как начать карьеру в этих сферах
Слаженная работа frontend и backend-разработчиков помогает каждому свободно пользоваться интернетом. Ведь занимаясь поиском информации, делая покупки, просматривая кино, слушая музыку, работая и выполняя множество других задач, все неизбежно сталкиваются с результатами их совместной работы.
Что такое frontend и backend
Удобство сайта, качественная настройка пользовательских интерфейсов с кнопками, ссылками, меню, анимациями, скорость отклика и внешний вид страниц — это заслуга качественной фронтенд-разработки.
Результат работы бэкенд-разработчика менее заметен визуально, но не менее важен. Backend ориентирован на работу с веб-серверами. Когда пользователь хочет перейти на страницу, найти что-то, скачать, загрузить, зарегистрироваться, использовать личный кабинет — всё это будет обрабатываться алгоритмами веб-сервера, который хранит данные, передаёт их пользователю по запросу. Этот сервер и настраивает бэкенд-разработчик.
Чем отличается frontend от backend
Лучше понять разницу между фронтендом и бэкендом можно на примере. Заходя в интернет-магазин, пользователь сначала ищет нужный товар. Для этого он пользуется строкой поиска, вводя нужный запрос, а потом нажимает кнопку «Поиск».
Благодаря фронтенду пользователь:
- Набирает текст в посковой строке.
- Видит, что набирает, может исправить ошибки.
- Может нажать кнопку «Поиск» в полной уверенности, что именно результаты поиска он и получит.
Всё, что увидит на следующей странице пользователь, будет результатом работы бэкенда. При его правильной разработке, запрос будет получен, обработан, а результат поиска — выведен на экран до новых запросов. То, как пользователь увидит информацию, переданную с сервера, снова будет задачей фронтендера, который сверстает карточки с товарами.
Получается, что взаимодействие пользователя с фронтендом и бэкендом циклично. Сначала силами фронтенда на странице собирается информация о пожелании пользователя, из этого формируется запрос, который передаётся на сервер и обрабатывается настроенным бэкендом, а результат пользователь снова получает в формах, созданных фронтенд-разработчиком.
Вы можете посмотреть большую часть внутренней работы фронтенд-разработчика, если откроете код любой веб-страницы. С backend так не получится, здесь программирование более сложное: код полностью скрыт, так как вся работа происходит на сервере, а не на самой странице.
Без фронтенда пользователь не сможет взаимодействовать с массивом данных сервера, а без бэкенда фронтенд не сможет демонстрировать то, что нужно пользователю. Из-за этой тесной связи важно, чтобы программисты фронтенда, и бэкенда в общих чертах знали особенности работы друг друга. А о взаимодействии этих специалистов обычно заботится DevOps-инженер.
Какие языки используют frontend и backend
Ещё одно заметное отличие бэкенда и фронтенда лежит в языках, которые используются для разработки.
Основными языками для фронтенда будут:
- HTML
- CSS
- JavaScript.
Первые два не являются полноценными языками программирования, они называются языками разметки, так как с их помощью просто описывают то, что должно быть на странице. А вот JavaScript уже считается языком программирования, так как предполагает создание алгоритмов для взаимодействия с пользователем, интерактивных элементов, анимаций.
В backend разметка не нужна, поэтому здесь используются только языки программирования. Среди них сегодня самые распространенные Java и Python, также активно используются PHP, C#, которые сложнее в изучении, но иногда позволяют получить большую производительность.
Дополнительно, из-за работы с базами данных, backend-разработчикам нужно знать SQL, системы управления базами данных, например: MySQL, PostgreSQL или MongoDB.
Чем занимаются фронтенд и бэкенд разработчики
В список основных задач frontend-разработчика входят:
- Перевод макета дизайнера в работающую веб-страницу. Здесь верстаются блоки, после они заполняются контентом, задаются необходимые цвета, подключаются шрифты, добавляются иконки, логотипы, всплывающие меню, окна чатов и многое другое. Фронтенд-разработчик должен сделать полную копию макета дизайнера, но только с помощью языков вёрстки.
- Настройка интерактивности. Чтобы на сервере был правильно обработан запрос пользователя, этот запрос нужно зафиксировать. Для этого верстальщик настраивает кнопки, переходы, систему внутренних ссылок.
- Разработка SPA. SPA — это одностраничные приложения, например, интерактивные карты, калькуляторы, которые можно использовать на сайтах.
- Настройка адаптивности сайта. Именно фронтенд-разработчик должен сделать так, чтобы сайт хорошо выглядел, работал на любых устройствах. Если на ПК с сайтом всё в порядке, а на смартфонах или планшетах пользоваться невозможно, значит над адаптивностью не работали.
Также frontend-разработчику нужно уметь работать с простым бэкендом, чтобы передавать бэкенд-разработчику полностью подготовленный к подключению алгоритмов сайт.
Когда работа над frontend завершена, начинается вторая часть разработки, за которую отвечает backend-разработчик. От него требуется:
- Создание основной платформы и базовых функций для неё. Например, для интернет-магазинов сразу пишутся алгоритмы, вычисляющие остатки товаров, находящие наиболее подходящий товар по описанию.
- Настройка обработки данных. Данные, полученные с помощью форм, созданных верстальщиком, нужно сначала сохранить, а потом обработать. Для этого они должны попадать в специальную систему обработки и хранилище, которое полностью настраивается бэкенд-разработчиками.
- Работа с безопасностью. Сервер должен быть защищён от потерь данных, взлома, других проблем, которые могут нарушить работу всего сервиса. Поэтому предполагается активная работа с протоколами безопасности, настройка обработки HTTP запросов, кеширования. Также нужно уметь работать с Git, чтобы знать обо всех изменениях кода.
- Подключение внешних ресурсов, API партнёров и других интеграций. Здесь перед использованием кода сначала нужно прочесть всю техническую документацию, потом спроектировать систему на её основе, а уже потом подключать её к проекту.
После завершения работы бэкенд-разработчикам сайт можно тестировать.
Что выбрать frontend или backend
Для тех, кто хочет войти в IT, но не хочет сильно погружаться в техническую сферу, подойдёт фронтенд-разработка. Эту работу нельзя назвать самой простой, но она точно проще, чем бэкенд, хотя бы благодаря меньшему влиянию языков программирования. Новички стартуют с позиции «верстальщика», где доминируют инструменты HTML и CSS.
Frontend-разработка понравится тем, кому комфортнее видеть результат своей работы наглядно, кто может общаться с людьми без технических знаний и способен постоянно учиться новому. Фронтенд-разработчику предстоит воплощать в виде конкретных объектов идеи дизайнеров. Как это сделать средствами языков вёрстки всегда будет задачей, требующей исследования, творческих поисков. Иногда придется самостоятельно придумывать связки HTML и CSS под конкретную задачу.
Порог входа в backend-разработку выше, здесь нужен математический подход, готовность создавать алгоритмы, изучать их, использовать. Поэтому результат работ обычно не увидеть, стабильная работа сайта будет подтверждением, что во frontend всё сделано как надо.
Бэкенд-сфера, несмотря на множество языков программирования, которые можно пробовать, подбирать под себя, более стабильна, чем фронтенд. Не требуется постоянно отслеживать появление новых технологий, быстро их внедрять.
Бэкенд-разработчики обычно общаются с теми, у кого уже есть технические знания, поэтому обсуждать детали разработки с маркетологами, дизайнерами и другими нетехническими специалистами не придётся.
Иногда frontend и backend-разработчики настолько погружаются в обе сферы, что не знают, что выбрать, и начинают работать одновременно с обеими. Так получаются fullstack-разработчики, которые умеют сверстать сайт, сразу разработать сервер для него. Но часто одна из сфер всё же перевешивает, и разработчик полностью уходит во фронтенд или бэкенд.
С чего начать обучение frontend-разработке
Разобраться, что такое фронтенд, будет проще, если узнать больше о:
- Языках вёрстки HTML и CSS.
- Языке программирования JavaScript.
- Фреймворках React, Angular или Vue.js. Одного для углублённого изучения будет достаточно.
- Работе с Git.
Сегодня фронтенд-разработчики также обращают внимание на язык программирования для бэкенда PHP, знать его на базовом уровне будет полезно.
Дополнительно стоит поработать над знанием английского, так как большая часть документации или полезных статей будет написана на английском.
С чего начать обучение backend-разработчику
Чтобы лучше понять, чем занимается backend-разработчик, нужно изучить:
- Один из основных языков программирования для бэкенд-разработки — Java или Python. Не стоит забывать про JavaScript, PHP, на них пишут бэк даже крупные платформы.
- Фреймворк, подходящий под выбранный язык. Spring используется для Java, Node.js для JS, Django для Python.
- Основы работы с базами данных, SQL.
- Как работать с API.
Бэкенд-разработчику знание английского важно не меньше, чем фронтендеру.
Перспективы по зарплате
В августе 2022 года на hh.ru 4100 вакансий для frontend специалистов. Кандидатов уровня Junior ищет 204 компании, а минимальная зарплата новичка начинается от 50 000 рублей и может доходить до 90 000 тысяч, в зависимости от конкретной вакансии. Зарплата Middle-специалиста начинается от 100 тысяч и может достигать 200 тысяч. Для этого требуется в среднем от 2 до 4 лет опыта работы. Senior Frontend Developer может зарабатывать до 300 тысяч рублей.
Вот пример вакансии на junior позицию в компании inDriver:
Вакансий в backend разработке так же более 4000 тысяч, часть из них относится к специалистам fullstack. Зарплаты junior разработчиков так же стартуют от 50 тысяч и достигают 90 000 рублей. Разница дохода ощущается на уровне middle: бэкендеры с опытом работы от 3 лет могут зарабатывать до 250 000 рублей. Senior специалисты так же могут зарабатывать чуть больше: в среднем до 350 000 рублей. Вот пример junior вакансии:
У специалистов с большим опытом разница зарплат может достигать 50 тысяч рублей на одинаковой позиции. Дело в том, что у каждого разный опыт работы с конкретными фреймворками и инструментами. Из-за этого компании готовы предлагать больше тем, кто лучше подходит вакансии.