Рубріки: Теория

Backend-разработка: что это такое?

Андрей Галадей

Веб-разработка делится на две большие части — фронтенд (frontend) и бэкенд (backend). Это две половины целого, которые и создают возможность существования современного интернета. Такое двойственное представление современного сайта следствие классической клиент-серверной архитектуры. Суть их понятна по названию — фронтенд представляет собой создание дизайна, отображение внешнего вида сайта (в рамках окна браузера). Бэкенд — это «внутренности» сайта, логика его работы, взаимодействие веб-сервера и контента. О последней составляющей мы и поговорим сегодня максимально подробно.


Содержание:
1. Что такое backend разработка?
2. Используемые языки программирования в бэкенде
3. Что нужно знать и уметь backend разработчику
4. Обязанности и задачи backend-разработчика
5. Можно ли быть одновременно frontend и backend-разработчиком?
6. С чего начать путь в профессии?
7. Перспективы в профессии и зарплата
Вывод

1. Что такое backend разработка?

Как понятно из названия Backend — это внутренняя часть сайта и сервера (англ. Back — назад). Если говорить в целом, это программно-аппаратный комплекс, который позволяет сайту и серверу корректно работать.

Эта часть считается более сложной по сравнению с фронтендом, здесь разработчик выбирает тот язык программирования, который поддерживается сервером.

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

Схема работы Backend и общая логика сайта вообще сводятся к трем пунктам:

  1. Получение-обработка данных от пользователя (например, ввод поискового запроса).
  2. Обработка данных на сервере (поиск данных в базе, любые другие выборки).
  3. Получение ответа от сервера и перевод информации в удобочитаемый вид (вывод результата).

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

Все это требуется собрать вместе и проверять на каждом шагу, иначе вместо текста можно получить «кашу» из символов. Далее мы поговорим как раз о том, какие языки программирования лучше использовать в бэкенде.

2. Используемые языки программирования в бэкенде

В этом разделе мы поговорим о том, какие языки программирования используются для разработки логики сайта и серверной части. В списке есть Java, PHP, Python, Ruby и некоторые другие. Рассмотрим их по порядку.

  • Java — классический строго типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems. Сейчас принадлежит Oracle. Именно на Java работает Android. Язык появился в 1995 году и на данный момент активно развивается. Отмечается, что язык в ряде случаев уступает программам на C/C++ по времени выполнения, однако иногда наблюдается и обратная ситуация. Язык применяется как для веб-приложений, так и для десктопных/мобильных.
  • PHP — еще один классический язык для бэкенда. Он тоже создан в 1995 году. В отличие от Java он используется только для веб-приложений, при этом он представляет собой один из наиболее популярных языков веб-разработки (хотя по состоянию на 2022 год он считается немного устаревшим). На нем работают Facebook, Wikipedia, Yahoo!, Baidu и многие другие сайты. На нем же построен самый популярный веб-движок WordPress.
  • Python — один из языков, который пригоден как для веб-приложений, так и для локальных. Этот язык вполне заменяет более старые, он кроссплатформенный и обеспечивает хорошее быстродействие программ. Конечно, ему пока далеко по охвату до PHP, но процесс идет. Создан он в 1991 году.
  • Ruby — еще один язык, который нацелен на простоту и удобство разработки. Он создан в 1995 году и развивается медленно, однако его возможности впечатляют.
  • Perl — этот язык уже уходит в прошлое, но все-таки многие еще его используют. Это скриптовый серверный язык с довольно запутанным синтаксисом.

Также можно выбрать одну из разных систем управления базами данных. Чаще всего используют MySQL, однако на рынке есть также PostgreSQL, SQLite, MongoDB и другие варианты. Само собой, каждый язык и каждая система для баз данных работает немного по-своему. Таким образом, для выбора есть довольно много инструментов. Но при этом их список достаточно жесткий, что позволяет не распылять силы. Получить качественные знания по бэкенду можно посетив курсы от наших друзей Mate Academy, Hillel и Powercode.

3. Что нужно знать и уметь backend разработчику

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

  • Знания языков программирования — PHP, Python, Ruby, Java, Go и так далее.
  • Навыки работы с базами данных и системами управления базами данных. Желательно, MySQL, но и другие подойдут.
  • Использование паттернов программирования, фреймворков и так далее. В их числе отметим Ruby on Rails, Yii, Django.
  • Знание алгоритмов работы серверной части и умение применять их.

Это так называемые hard skills или технические знания. Помимо этого, высоко котируются soft skills (нет, к софту они отношения не имеют) — это умение отстаивать свои мысли, быть инициативным, предлагать новое и так далее.

4. Обязанности и задачи backend-разработчика

Исходя из вышесказанного, backend-разработчику нужно выполнять следующие задачи:

  1. Поддерживать веб-ресурс, бизнес-логику проекта и бэкэнд-системы в целом.
  2. Проектировать и поддерживать инфраструктуру на базе SourceJS.
  3. Создавать программный интерфейс веб-ресурса для его взаимодействия с другими платформами.
  4. Создавать единую библиотеку элементов для программистов фронтенда и дизайнеров.
  5. Адаптировать систему под разные платформы при помощи CSS3 и HTML5.
  6. Разрабатывать пользовательские интерфейсы.
  7. Оптимизировать существующие веб-приложения для повышения их быстродействия.

Таким образом, backend-разработчику приходится поддерживать весь набор веб-систем, исключая разве что функционирование самого веб-сервера и каналов связи (это уже задача системного администратора).

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

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

У многих начинающих разработчиков возникает вопрос, можно ли быть одновременно frontend и backend-разработчиком. Ответим сразу — можно, но сложно. Обычно таким занимаются fullstack-разработчики. Это два направления, которые отчасти пересекаются, но во-многом различны. Потому нужно понимать эту разницу.

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

Если провести аналогию, то сайт можно рассмотреть как симпатичную девушку (или парня). Сначала мы смотрим на внешность — прическа, одежда и так далее. Этим занимаются специалисты по frontend. Их можно сравнить со стилистами.

Однако, когда «девушка» открывает рот — она показывает свой интеллект. И это уже работа для backend-разработчиков, которых можно сравнить с учителями. Умная она или глупая? Красивая и умная, или просто красивая? «Прошаренная» и «серая мышка», или вовсе ни то, ни се?

Вот так примерно и выглядит наглядная демонстрация того, что такое frontend и backend.

Конечно, если вы «прокачанный» разработчик, вам куда проще заниматься обоими аспектами самому, ведь тогда вы держите в голове все и сразу, видя систему как единое целое (а, значит, и лучше контролируя общую связность/качество). Но если речь идет о крупном проекте с большой кодовой базой, то лучше разделить обязанности — все-таки специализация дает в среднем лучший результат, позволяя каждой роли глубже сосредоточиться на деталях.

Также коротко рассмотрим, схемы взаимодействия между frontend и backend, чтобы понимать, как пересекаются эти сферы между собой.

Фактически, есть 4 варианта:

  1. На сервер отправляется HTTP/HTTPS-запрос, результат формируется в виде HTML-страницы и возвращается пользователю. Это самый простой вариант.
  2. Запрос отправлен точно также, но возвращаются данные уже в формате XML или JSON. Это реализуется с помощью технологии под названием AJAX. Это, так называемый, «асинхронный JavaScript», который позволяет фоновый обмен данными с сервером.
  3. Самые простые одностраничные сайты, которые не требую бэкенда. Они загружаются без предварительного обновления страницы с помощью фреймворков Angular или Ember (или аналогов).
  4. Использование подключаемых библиотек Ember или React, которые предназначены для использования приложения одновременно на сервере и в клиентской части.

Таким образом и работает связка между frontend и backend.

6. С чего начать путь в профессии?

Для начала, нужно освоить язык программирования. Список мы давали выше, так что можно выбирать, но крайне желательно, чтобы это был именно «серверный» или универсальный ЯП. То есть, нужно прокачать свои навыки программиста.

Затем следует изучить базы данных, работу веб-серверов (Apache, NGINX, IIS и тому подобные), принципы сетевой безопасности, работу с популярными фреймворками.

Самое интересное, что backend-разработчику желательно знать и основы frontend-разработки, поскольку именно ему предстоит создавать логику работы системы. Это значит, ему надо знать, как внешняя часть будет работать с внутренней, выстроить все процессы, чтобы они функционировали слаженно.

При этом нужно понимать, что простой теорией не обойтись. Надо применять знания на практике. В самом минимальном варианте надо учить PHP, MySQL и написание запросов к базам данных. Более подвинутые варианты подразумевают уже умение составлять алгоритмы, а не просто кодить. Нужно системное мышление, навыки работы с фреймворками (не изобретать же велосипеды на каждый конкретный случай).

Также необходимо получить хотя бы общее представление об архитектуре современных веб-приложений, чтобы иметь цельное представление о всех составных частях стандартного веб-приложения.

Что касается времени, затраченного на обучение, то здесь все просто. Если учить PHP и базы данных по два часа в день, то уйдет примерно 4-7 месяцев (в каждом отдельном случае это очень индивидуально). В общем, примерно столько же, сколько на похудение в спортзале. После этого уже можно начинать что-то делать всерьез (да, как после похудения начинать систематически качать мышцы).

Нужно составить план — примерно такой:

  • Изучение PHP и конкретно объектно-ориентированного программирования (ООП).
  • Изучить работу с базами данных — оптимизировать запрос, получить или записать данные.
  • Научиться работать с API, чтобы отправлять и получать данные.
  • Изучить приложения с MVC-архитектурой.
  • Изучить работу с хранилищами данных и сторонними сервисами.
  • Освоить паттерны проектирования систем.
  • Изучить систему контроля версий.

Разумеется, это только основа. Можно взять чужой и более подробный план, погуглив фразу типа «roadmap backend python». Благо, подобных готовых планов саморазвития в сети мягко говоря много — выбирайте на любой вкус и язык.

И да, надо по возможности заниматься регулярно, не отлынивать. Также желательно соблюдать баланс между документацией, видеоуроками и форумами по теме. Нужно не бояться задавать глупые вопросы и не бояться вообще. В идеале, после освоения основ, нужно найти ментора.

Само собой, потом придется учить намного больше (в IT вообще нужно учиться постоянно), но это уже другая история.

7. Перспективы в профессии и зарплата

И, наконец, поговорим о самом приятном. О зарплатах. Да, на разработчика надо учиться, довольно долго, но это компенсирует хорошая зарплата. В целом, она выглядит примерно так:

Уровень разработчика Средняя заработная плата
в USD (на начало 2022 года)
Стажер (Intern) от $200
Младший (Junior) $700
Средний (Middle) $2-3k
Старший (Senior) $4-5k
Ведущий (Lead) $5-6k

Таким образом, в зависимости от скилла можно получать вполне неплохие деньги. А если вам удастся устроиться на работу удаленно где-нибудь в США (прямой контракт, например), то зарплаты могут быть в разы выше. Но для такого скачка нужно знание английского языка как минимум на уровне B1, это очень сильно влияет на размер заработной платы.

Если же вы уже достигли «потолка» бэкенд-разработчика, то у вас есть возможность освоить навыки фронтенд-разработчика и стать фуллстек-разработчиком. Конечно, это потребует нового обучения, но, в перспективе, можно дорасти до архитектора систем, технических директоров и так далее. В общем, при желании учиться, перспективы в IT весьма неплохи.

Вывод

Как видим, бэкенд-разработка сейчас находится в тренде, поскольку все переводится в веб. Облачные системы разработки, облачные игры, потоковая трансляция и прочее — все это требует все больше и больше бэкенд-разработчиков, специалистов по «внутренностям» сайтов и серверов. Учитывая это, компании не скупятся на оплату учебы и различные бонусы для разработчиков.

Таким образом, если вы выбираете себе путь в IT, то можно попробовать себя в этой роли. Тот же язык PHP имеет низкий порог входа, так что попробовать можно, а дальше — будет видно. В общем случае, время обучения на бэкенда больше, чем учеба на фронтенда, это потребует также большего кругозора в плане технологий и опыта.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023