UA RU
logo
15 Nov 2022

Что такое backend-разработка и чем она отличается от frontend

Микола Ладуба

Редактор текстів

Удаленная работа, общение и обучение, многопользовательские игры и онлайн-шоппинг – всё это было бы невозможным без веб-сайтов. Однако ни один сайт не может существовать без труда фронтенд- и бэкенд-разработчиков. И если фронтенд мы ежедневно видим в окне своего браузера, то бэкенд для многих по-прежнему остается чем-то загадочным и малопонятным.

Редакция MC.today выяснила, что такое бэкенд разработка, а также каких навыков и знаний она требует от программиста.


Что такое backend?

Бэкенд – это внутренняя, скрытая от пользователя начинка сайта или веб-приложения. Другими словами, это часть сервиса, которая работает на удаленном сервере, а не в браузере или персональном компьютере. Бэкенд обрабатывает и поставляет пользователю данные, которые потом отображает фронтенд: так называют пользовательский интерфейс, видимую часть сайта или приложения, которая работает на вашем устройстве.

Что такое backend?

Что такое backend?

На языке аналогий веб-сайт можно сравнить с неким сложным прибором. Снаружи мы видим фронтенд, или пользовательский интерфейс: экран, кнопки, переключатели. Мы знаем, на какую кнопку нажать, чтобы на экране появилась необходимая информация.  Так вот, бэкенд – это те процессы, которые происходят «под капотом» прибора, когда мы нажимаем на кнопку. Мы не видим, что происходит внутри корпуса, да и не обязаны это знать. Ведь всю работу выполняет бэкенд, а фронтенд только показывает нам ее результаты.

Отличия бэкенд от фронтенд

Возьмем для примера Приват24. Он хранит на серверах данные о миллионах пользователей: сколько на их счетах денег, историю операций, подключенные услуги и так далее. Всё это записано в таблицах баз данных.

Курс
Data Analytics
Дата-аналитика для новичков с дальнейшим трудоустройством. Начните свою успешную карьеру в IT сфере и зарабатывайте от $1000
РЕГИТРИРУЙТЕСЬ!
Приват24

Приват24

Но простой пользователь не способен посмотреть базы данных на сервере. Чтобы вы могли увидеть остаток на счету или сделать перевод, потребуется устройство с удобным интерфейсом: экраном, кнопками, инструкцией. Это может быть банкомат, специальное приложение или сайт privat24.ua, который будет отправлять запросы на сервер, получать ответы и красиво выдавать их вам на экранах смартфонов.

Страница банка, где вы можете узнать о тарифах, и скрипты, с помощью которых браузер запрашивает информацию у сервера, – это примеры фронтенда. Он основан на трех технологиях: HTML, CSS и JavaScript.

HTML, или язык гипертекстовой разметки, подсказывает сайту, что показывать. CSS, или каскадные таблицы стилей, определяют как это будет выглядеть. А язык программирования JavaScript отвечает за динамические элементы: анимацию и взаимодействие с пользователем.

Отличия бэкенд от фронтенд

Бэкенд и фронтенд

Но есть еще сам сервер, где хранятся все данные. Сервер должен понимать, кто к нему обращается, чего он хочет и имеет ли право на доступ к информации. Другими словами он проводит авторизацию и проверяет права доступа. Затем ищет в базах данных нужные сведения, преобразует их в доступный вид и отдает браузеру, чтобы тот отрисовал и показал вам. Все эти серверные программы, которые обрабатывают запросы клиентов и следят за правильным хранением данных, – это и есть бэкенд. 

Иногда граница между фронтендом и бэкендом выглядит довольно зыбкой. Когда вы вводите запрос на странице поисковика, то имеете дело с фронтендом. Но стоит нажать Enter, и за дело берется бэкенд. Запрос попадает на сервер Google, где система находит самые подходящие страницы и возвращает их список в браузер. Как только на экране появляются результаты поиска – вы снова возвращаетесь в область фронтенда.

Задачи и обязанности backend-разработчика

Бэкенд-разработчик, или бэкендер, нужен каждой компании, которая взаимодействует с клиентами через сайт или веб-сервис. К примеру, в интернет-магазине он отвечает за идентификацию покупателей, хранение и поиск информации в базе данных, работу полей регистрации и корзины, взаимодействие с банком, автоматическую рассылку писем и обновление контента.

Другими словами, бэкендер должен обеспечить работу всех тех функций, которые потребителю предоставляет интерфейс. В уже существующем проекте бэкенд-разработчики обычно улучшают сервис: добавляют функциональность и новые возможности, исправляют неполадки. Если проект разрабатывают с нуля, то задачи бэкендера будут такими:

  • Изучение контекста задачи. Еще одна особенность бэкенда в том, что он требует большего по сравнению с фронтендом погружения в конкретные бизнес-процессы. Например, если вы не знаете, что такое воронка продаж, то вряд ли сможете разработать ее логику вместе со всеми фильтрами и переходами.
  • Поиск решения. На самом деле главная задача бэкенд-разработчика – решение бизнес-задач клиента программными средствами. И написание кода – это только один из способов достижения этой цели. Опытный разработчик предлагает клиенту наиболее практичное решение на основе шаблонов программирования, веб-стандартов и наработанного годами опыта. В больших проектах для этого проводят планерки с участием специалистов, которые отвечают за разные фрагменты сервиса.
  • Выбор языка. В рамках поставленной ему задачи бэкендер может выбирать любой из серверных языков. Главное, чтобы он обеспечил удобство, скорость и производительность работы. Универсального выбора не существует. Так для больших проектов обычно выбирают Java, для средних – PHP, для быстро развивающихся стартапов – Ruby или Go. Подробнее о языках для backend мы поговорим ниже.
  • Выбор инструментов. Кроме языка программирования на начальном этапе разработки нужно выбрать инструменты. Это могут быть базы данных, например, MySQL, PostgreSQL или MongoDB. А также наиболее подходящий под ваши цели фреймворк. Термин «фреймворк» переводится с английского, как каркас, структура. Это набор готовых решений, который ускоряет процесс разработки приложений. Внутри фреймворков реализован код для решения множества самых распространенных задач: идентификации пользователей, работы с базами данных и так далее. Примеры популярных в бэкенде фреймворков: Spring Framework, Django, Express.js.
  • Написание кода. Это основная задача бэкендера, которая занимает больше всего времени. В процессе написания кода большое значение отводится совместной работе с другими разработчиками. Упростить ее позволяют системы контроля версий, или СКВ. Они записывают на облачном сервере все изменения кода и позволяют при необходимости вернуться к определенному варианту.

Языки программирования в бэкенде

Набор технологий, на основе которых разрабатывают веб-проект, включает в себя операционную систему, тип веб-сервера, систему управления базами данных, язык программирования и фреймворк. Всё вместе это называют стеком технологий. При указании языка к нему часто добавляют название выбранного фреймворка. Например, JavaScript + Node.js или PHP + Yii.

Языки программирования в бэкенде

Языки программирования в бэкенде

PHP

По данным ресурса W3techs, более 77% всех веб-сайтов в мире написаны на языке PHP. Он прост в изучении, но плохо масштабируется и достаточно медленно работает. Поэтому часто можно услышать, что PHP умирает. Так это или нет, покажет время. А пока  PHP-разработчики обеспечены работой на много лет вперед, ведь миллионы сайтов на PHP никуда не денутся и их нужно обслуживать.

C# + ASP.NET

Универсальный C# в связке с мощным фреймворком от Microsoft занимает второе место в рейтинге популярности серверных языков для веб-сайтов.

Ruby + Ruby on Rails

Язык общего назначения Ruby позволяет быстро создать работающий проект. Поэтому его часто выбирают за основу стартапы, в числе которых Kickstarter, Airbnb и другие.

Java

Главные преимущества языка Java – кроссплатформенность и производительность. Его можно использовать для создания программ на Android, десктопных  и веб-приложений. А высокая производительность Java позволяет создавать крупные проекты с большой нагрузкой. Например, программы для работы с Big Data. 

В рейтинге популярности на основе поисковых запросов TIOBE за ноябрь 2022 года Java занимает третье место. Кроме этого, в 70% вакансий для разработчиков знание этого языка – обязательное условие для трудоустройства. О зарплате Java-разработчиков в Украине мы писали ранее.

Python

Удобный и несложный в изучении Python подходит для решения множества задач. А благодаря хорошим фреймворкам, например Django, позволяет быстро создать блог, форум или интернет-магазин. В рейтинге TIOBE язык программирования Python стабильно занимает первое место.

Go (Golang)

Быстрый и легкий язык от Google еще не так популярен, как вышеперечисленные, но активно развивается. Поэтому специалисты по Go нужны во многих компаниях.

JavaScript + Node.js

JavaScript широко используют для фронтенд-разработки, но он находит применение и в бэкенде. Платформа Node.js позволяет запускать JS на серверной части сайта. С одной стороны, это обеспечивает гибкость настроек. С другой, затрудняет масштабирование и замедляет работу.

Навыки и знания требуемые для backend-разработчика

Требования к бэкендеру зависят от сферы и уровня компании. Условно их можно разделить на две части: hard skills, или профессиональные компетенции, и soft skills, или особые личные качества. 

Hard skills

В статье про HTML мы писали, что начинающему программисту намного проще освоить frontend, потому что это про визуал и про браузер. То есть свои ошибки вы сможете наглядно видеть в браузере. С бэкенд-разработчиками ситуация несколько другая: они отвечают за процессы, которые не только нельзя увидеть, но зачастую довольно сложно представить. Поэтому большим преимуществом при приеме на работу будет абстрактное мышление и углубленное знание математики и алгоритмов. Кроме этого в большинстве вакансий прописан базовый набор профессиональных навыков.

Hard skills и soft skills

Hard skills и soft skills

  • Владение несколькими востребованными в  бэкенд-разработке языками программирования, такими как PHP, Python, Java, C#
  • Умение писать запросы и организовывать базы данных в MySQL, Postgres или NoSQL.
  • Навыки разработки в популярных фреймворках.
  • Умение подключать API, или программный интерфейс приложений. Это составляющая часть сервера, которая получает запросы и отправляет ответы. Например, приложение с прогнозом погоды обращается с запросом к API сайта weather.com, чтобы подгрузить в свой интерфейс данные о температуре, влажности и направлении ветра.
  • Базовые навыки по администрированию Windows, Linux, Unix.
  • Понимание работы протоколов передачи данных между клиентом и сервером.
  • Знание функционала серверов – NGINX, Apache и других.
  • Опыт использования системы контроля версий Git.
  • Использование шаблонов проектирования, или решений для общего набора проблем, которые возникают во время разработки веб-приложений. Например, Singleton, Factory, Observer, Decorator.

Soft skills

  • Аналитическое мышление, умение систематизировать информацию, чтобы выбрать лучшие инструменты и способы реализации проекта.
  • Умение работать в команде, взаимодействовать с коллегами, общаться с заказчиками. 
  • Адекватное восприятие конструктивной критики.
  • Способность к постоянному обучению и развитию.
  • Гибкость в постоянно меняющихся условиях работы.

Наглядно разобраться с необходимыми в бэкенде навыками поможет дорожная карта для бэкенд-разработчика. Изучите ее и проложите свой путь к вершинам профессии!

Нужно ли бэкенд разработчику знать английский язык

В DOU выяснили, что только 8,9% украинских разработчиков (software engineer) знают английский язык на самом высоком уровне Advanced. Большинство (39,6%) знают английский на уровне Upper-Intermediate. Так нужен ли английский бэкенд-разработчику? Безусловно, нужен! И для этого есть несколько причин.

Источник: dou.ua

Источник: dou.ua

  1. Техническая документация. Огромное количество документации появляется на английском языке. Ее перевод, во-первых, искажает смысл. Во-вторых, его иногда приходится ждать годами, а за это время информация может безнадежно устареть. Поэтому лучше выучить английский самому и читать документацию в оригинале.
  2. Англоязычное сообщество программистов. Если взять для примера Stack Overflow, один из самых крупных ресурсов о языках программирования, то на английском там более 21 миллиона тем, а на русском только 370 тысяч.
  3. Среда разработки и код. Называть переменные с функциями транслитом абсолютно неприемлемо. Поэтому знание языка на базовом уровне необходимо для написания качественного кода.
  4. Заказчики из других стран. Владение английским позволяет напрямую общаться с заказчиками. А фрилансерам дает возможность находить заказы из других стран и получать больше денег за свою работу.
  5. Размер оплаты. Если уж мы заговорили о зарплате, то даже в Украине она на 25–30% больше у тех программистов, которые хорошо знают английский. Некоторые компании и вовсе создают вакансии на английском, чтобы сразу отсеять тех специалистов, кто его не знает.
  6. Поиск в интернете. Готовое решение сложной задачи часто можно найти в интернете. Но запросы на английском дадут тебе в разы больше вариантов и советов.

Можно ли одновременно быть frontend и backend-разработчиком?

Несмотря на разные специализации, бэкенд-разработчики и фронтенд-разработчики сообща трудятся над одной задачей: созданием качественных веб-сервисов. Иногда, особенно в небольших компаниях, программисты решают проблемы и на стороне сервера, и в клиентской части. Таких специалистов называют фуллстек-разработчиками.

Главное преимущество фуллстека – его универсальность. Такой специалист видит весь проект целиком и может указать пути решения любой проблемы. Но с другой стороны, он вынужден распыляться между большим количеством технологий, поэтому редко находит время, чтобы изучить какую-то одну область досконально.

work.ua

Источник: work.ua

При этом работодателям проще взять одного универсального разработчика, чем двух узких специалистов. Поэтому fullstack-разработчик – одна из самых редких и актуальных специальностей на рынке труда. В среднем full stack developer в Украине зарабатывает 70500 грн в месяц. Это медиана заработных плат по данным из 129 вакансий, размещенных на Work.ua.

Как попасть в профессию?

Хорошим фундаментом для бэкенд-разработки станет высшее математическое, физическое или IT образование. Именно они дают понимание алгоритмов, функций и вычислительных процессов. Но это не значит, что без академического образования нельзя стать бэкендером. И даже напротив, по опросу ресурса StackOverflow, почти 60% респондентов научились программировать с помощью онлайн-ресурсов.

Курсы программирования

Курсы программирования

Для входа в профессию можно по отдельности пройти курсы веб-разработки и программирования на одном из серверных языков, например PHP или Java

Или записаться на курсы fullstack-разработчиков, где дают базовые знания по HTML, CSS, JavaScript и дополняют их знаниями по серверным языкам и фреймворкам.

После курсов можно претендовать на должность стажера в небольшой IT-компании. Работа с опытным наставником поможет получить более полное понимание отдельных компонентов бэкенд-разработки. После этого уже пробуйте силы в качестве специалиста уровня Junior.

Еще одна возможность – в одиночку создать полноценный проект с бэкендом и фронтендом. А затем заинтересовать им работодателей. Или найти небольшой Open Source проект и присоединиться к его команде, например, на платформе Github.

Зарплата и карьерные перспективы

Как вы уже, наверное, успели понять, бэкенд – довольно сложная область деятельности даже по меркам IT. От кандидатов требуют знания множества технологий. Но стоит ли результат затраченных на обучение усилий? 

Средняя зарплата бэкенд-разработчиков в США

Источник: indeed.com

Согласно ресурсу Indeed, бэкенд-разработчик в США в среднем зарабатывает $6767 в месяц. А в крупных компаниях эта сумма может вырасти до 11–17 тыс. долларов. В Украине суммы поменьше. Желающих подробно изучить уровень зарплат в бэкенде мы отсылаем к информативной статье с портала DOU. Там можно отсортировать средний уровень зарплат разработчиков в 2022 году по городам, специализации, языкам разработки и типом компаний. 

Источник: dou.ua

Источник: dou.ua

В среднем по стране Junior бэкенд-разработчик зарабатывает $950, Middle $2600, а Senior около $4600. Средняя зарплата программистов, что не удивительно, больше в Киеве и Львове. А вот статистика по языкам программирования преподносит сюрпризы. 

Источник: dou.ua

Источник: dou.ua

Больше всего зарплаты у  киевских Senior-разаработчиков на Ruby ($6000), Go ($5500) и Scala ($5450). Замыкают список C++ ($4140) и PHP ($4025). С мидлами ситуация немного другая: больше всего зарабатывают специалисты по Dart ($3000) и меньше всего разработчики на Go ($2650). Для джуниоров самым прибыльным вариантом станет C++ ($1235) а на противоположной стороне списка
C#/.NET ($900).

Будущее сулит бэкенд-разработчикам неплохие перспективы. Начнем с того, что в команде стандартного веб-проекта на одного фронтендера приходится 3–4 бэкендера. Значит потребность в них, а соответственно и шансы получить работу во столько же раз больше.

Кроме того, бэкендер всегда ближе к фуллстеку. И может перейти в него совершенно незаметно. Бэкенд-разработчикам со знанием Java, С/С++ проще перейти в сферу десктопных приложений, энтерпрайз-разработку (решение проблем бизнеса), информационную безопасность.

Итак, бэкенд-разработчики нужны везде, где используют сайты и веб-приложения. Они пишут серверный код и отвечают за реакцию ресурса на действия пользователей. Это сложная и очень важная работа. Хороший бэкендер должен знать несколько языков программирования. Самые востребованные – PHP, Java, Python, Ruby, C#, C++

В Украине специалисты по бэкенд-разработке зарабатывают в среднем от $950 на уровне Junior до $4600. Из недостатков профессии можно назвать сложность ее освоения. Выучить необходимый стек технологий без наставника довольно сложно. Поэтому присмотритесь к практическим курсам от учебных заведений с хорошей репутацией.

Новости

Спецпроекты

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: