Бэк-энд разработчик (back-end developer)
Содержание:
- Подписка и тарифные планы
- Где найти backend программиста на проект?
- Сторонние API, фреймворки и пакеты
- API
- Понятие Frontend-разработки
- Back-end — что это?
- Лучшие книги и средства обучения
- Базовые требования к профессионалу
- Ruby + Ruby on Rails
- Полезные книги
- Как стать back end разработчиком? Что нужно знать и уметь?
- От чего надо защищаться?
- Системы управления версиями
- Формы и состояния
- Программы для создания кода
- Что такое фронтенд и чем занимается специалист
- Репозиторий для хранения данных
- Пример из жизни
- Что в итоге
Подписка и тарифные планы
Продумывание тарифов только кажется маловажным, но на деле часто является необходимым. Вам придется научиться создавать многоуровневые тарифные планы и присваивать определенные роли, разрешения и привилегии пользователям, подписавшимся на конкретный план. Также хорошая идея научиться предоставлять динамическое ценообразование, основанное на свойствах, формирующих каждый тарифный план. Например, покупка нового сервера на AWS или DigitalOcean дает пользователям право выбирать память, процессор и т.д.
по проектированию тарифных планов:
- выделяйте рекомендуемый вариант;
- разрешите пользователям выбирать валюту (€/$/₽) и период оплаты (месяц/год);
- предоставьте первый месяц бесплатно для успешного вовлечения пользователей;
- особо выделите отзывы;
- продавайте преимущества вместо характеристик;
- дайте пользователям понять, что они могут отказаться в любой момент;
- разрешите пользователям выбирать интересующие характеристики и конфигурировать тарифные планы.
Где найти backend программиста на проект?
- В интернете есть много профильных ИТ-сайтов, на которых можно бесплатно разместить объявление о поиске разработчика.
- Посмотрите каталог веб-программистов. При помощи фильтров в каталоге можно найти разработчиков, владеющих нужными вам технологиями.
-
Добавьте проект на биржу для программистов. Добавление вакансий на ней – бесплатное.
Рекомендуем
Профессия менеджер по продажам
Менеджер по продажам – одна из самых востребованных профессий в мире. Суть работы — связаться с потенциальным клиентом и предложить купить товар …
Профессия Go-разработчик
Язык программирования Go (или Golang – это одно и то же) разработан сотрудниками Google. Он набирает популярность и активно используется крупными …
Сторонние API, фреймворки и пакеты
Ruby, Elixir, PHP и JavaScript уже имеют тысячи пакетов, которые могут быть настроены и применены к вашему приложению. Их легко встроить с помощью команды в одну строку в терминале:
Если вы не будете включать сторонний код в вашу экосистему, то вам придется разбираться с такими низкоуровневыми проблемами, как создание сессий, хэширование и защита от атак CSRF и тому подобное вместо того, чтобы фокусироваться на высокоуровневых задачах, которые делают ваше приложение уникальным.
Чаще всего фреймворки составлены из отдельных пакетов, которые при желании можно заменять на более подходящие под ваши задачи. Вы можете оценить качество исходного кода пакета по следующим пунктам:
- бейджи репозитория;
- дата последнего обновления;
- пройденные тесты;
- популярность, например, по оценке пользователей в звездах;
- количество решенных проблем и открытых пулл реквестов.
API
Чтобы ваше приложение стало по-настоящему популярным, вам надо начать делиться данными с другими приложениями. Например, вы — музыкальная компания, и вы хотите, чтобы стриминговые сервисы типа SoundCloud поставляли ваш контент, а пользователи могли покупать вашу музыку напрямую из их приложения. Здесь и нужен API.
Термин API — аббревиатура от Application Programming Interface (интерфейс программирования приложений) — применяется к инфраструктуре, которая позволяет другим приложениям взаимодействовать с вашим. На картинке выше вы видите пример применения API для обслуживания сети из многих мобильных и настольных клиентов.
Основные этапы написания API:
- Создать API-сервер. Этап подразумевает обеспечение защищенного доступа к ресурсам, которые вы хотите передавать клиентам. Если у вас книжный магазин, то ваш API будет предоставлять названия книг, цены и информацию об издателе другим сайтам и перекупщикам.
- Защитить сервер, используя идентификаторы приложений и секретные ключи.
- Сделать понятную интерактивную документацию, которая позволит другим разработчикам просматривать ее и взаимодействовать между собой и с вами.
Понятие Frontend-разработки
Под понятием Frontend подразумевается разработка видимого для пользователя интерфейса и всех функций, с которыми он может взаимодействовать. По сути, когда вы переходите на любой сайт, то видите там кнопки, текст, различную анимацию и другие составляющие – все это реализовано при помощи фронтенда. Для создания этих элементов используются три разных языка – HTML, CSS и JavaScript.
Посмотрите на структуру страницы прямо сейчас – для этого на любом сайте вызовите консоль разработчика, нажав клавишу F12. Вы увидите набор строчек кода, которые и формируют внешний вид данной страницы.
Код страницы используется для описания всего видимого: шрифтов, картинок, размеров элементов, анимаций, всплывающих окон, звуков при нажатиях и всего другого, с чем может взаимодействовать пользователь. За каждую из частей интерфейса отвечают разные языки. Как раз те, что и должен выучить frontend-разработчик.
HTML
Основной инструмент в этой сфере – язык гипертекстовой разметки HTML. Он нужен в основном для разметки документа, то есть страницы в браузере. С помощью него разработчик создает структуру, добавляет заголовки, списки и осуществляет другое форматирование контента.
CSS
Если разработчик учит HTML, он обязательно осваивает и CSS (Cascading Style Sheets). Этот язык отвечает за внешний вид страницы. С его помощью вы работаете с цветами, шрифтами и расположением различных блоков. Если простыми словами, то CSS используется для красивого оформления страницы и настройки ее внешнего вида уже после того, как основная структура была написана при помощи HTML.
JavaScript
С помощью JavaScript реализуется выполнение различных действий на странице, то есть добавляется анимация и отклик на запросы пользователя. Например, страница реагирует на перемещение курсора и клики мышкой, изменяя поведение элементов в соответствии с действиями пользователя. Благодаря JS осуществляется отправка и получение данных с сервера без необходимости перезагрузки страницы, а значит, некоторые задачи реализуются более просто, например, когда речь идет об отправке и получении сообщений.
Фронтенд – это сфера, в которой разработчик создает видимые для пользователя элементы интерфейса и все функции для взаимодействия с сайтами и приложениями. Все это тесно связывается с бэкендом, о котором пойдет речь далее.
Back-end — что это?
Бэкенд-разработчики — это работники невидимого фронта, от которых зависит буквально все в проекте. Как уже говорилось выше, back-end — это разработка программно-административной части сайта, приложения или игры. Этот специалист прорабатывает внутренние процессы и полностью занимается серверами, не только продумывая программную логику на них, но и разрабатывая базы данных и внутреннюю архитектуру.
У разработчика есть две основные цели. Первая заключается в том, чтобы сделать сайт или приложение по требованиям заказчика или менеджера проекта. Грубо говоря, должны быть все функции, описанные в техническом задании.
Вторая цель статична, в отличие от первой. Она заключается в том, чтобы максимально оптимизировать проект. Оптимизация включает в себя быструю работу, обработку запросов, использование наименьшего количества ресурсов для выдачи наиболее эффективного результата, взаимодействие с «передней» частью и поддержку одинаково эффективной работы на всех возможных платформах (или хотя бы на всех популярных). Под платформами могут подразумеваться разные браузеры в случае с сайтами либо разные среды разработки в случае с веб-приложениями.
Главные инструменты backend-разработчика — это языки программирования: C/C++, PHP, Python (обзор профессии Python-разработчик), Ruby, Java, Perl и др. (один из, не все)
Важно владеть программной платформой Node JS, библиотекой взаимодействия Express, языком данных MySQL, базой данных Mongo DB. Также следует уметь работать с фреймворками Symfony, Codeigniter, Yii, Zend Framework, Kohana и прочими (не обязательно знание всех, но принцип работы почти одинаковый)
Конкретный перечень инструментов зависит от проекта и требований к нему.
Резюмируя все вышесказанное, можно описать основные аспекты работы бэкенд-специалиста:
- проектирование архитектуры проекта;
- формирование ядра сайта или приложения;
- написание программного кода;
- разработка платформы;
- разработка функций;
- разработка дополнительных приложений, которые встраиваются в сервис;
- оптимизация работы серверов;
- контроль функционирования серверов;
- работа с базой данных;
- контроль версий (в 99 % случаев через Git).
Плюсы и минусы профессии
Существуют плюсы и минусы этой профессии, которые помогут определить, изучать ее или нет. Ниже специально подобраны наиболее объективные аспекты, описанные простым языком.
Основные достоинства:
- высокая заработная плата;
- возможность работать удаленно;
- после изучения фронтенда разработчик может стать fullstack-программистом, что очень востребовано и выгодно в плане оплаты;
- всегда есть широкий выбор вакансий как для новичков, так и для опытных разработчиков;
- большую часть необходимых знаний и навыков можно получить в высшем учебном заведении;
- есть возможность устроиться на работу за пределами страны.
Главные недостатки:
- высокий порог входа;
- требования и обязанности могут значительно различаться у каждого работодателя из-за большого выбора языков программирования;
- очень желательно любить и знать алгебру и математику;
- обязательно знание английского языка для составления документации;
- нет единой концепции обучения, так как выбор языков программирования довольно большой;
- нужно работать в команде с другими специалистами (многим это понравится);
- чтобы стать middle-разработчиком, нужно учиться и работать минимум 2—3 года.
Лучшие книги и средства обучения
- Базовая книга по вашему языку программирования — мне нравятся издания O’Reilly, многие переведены издательством «Питер».
- Аналогично базовые книги по вашему стеку.
- Кукбуки (cookbook) по языкам и рекомендации корпораций, статьи в блогах и т.д.
- Бек Кент, Экстремальное программирование. Разработка через тестирование — отличная книга для любого разработчика в принципе, но особенно для бэкендера. Проникнуться философией TDD дорого стоит.
- Джоэл Х. Спольски — можно читать его блог, можно ещё на просторах Рунета найти электронную книгу «Джоэл о программировании» — сборник постов из блога на русском.
- Роберт Мартин «Идеальный программист», «Чистый код» — переводная книга от «Питера» хороша, но в оригинале стиль и шутки вообще бесподобны.
- Мартин Фаулер и коллектив авторов «Шаблоны корпоративных приложений» — «взрослая» книга для джавистов, но не помешает ни для одного серверного языка как сборник инсайтов и крутых находок.
- Бесплатные курсы и видео, которых бесконечно много на Youtube на русском и английском языках. Просто слушайте, повторяйте, систематизируйте знания. Для начала подойдут любые, очень скоро вы научитесь отличать крутые вещи от дилетантских.
- webref.ru — очень классный сайт для разработчиков веба, разбирайтесь, обучайтесь.
- codecademy.com — интерактивный сайт для обучения разработке на разных языках программирования на английском, с самого низкого, нулевого, уровня.
- ITc | сообщество программистов — вагон организованной информации с курсами, лекциями и чем угодно. Читайте комментарии, легко определяйте лучшее для обучения.
- Библиотека программиста — куча книг по любой айти-тематике.
Базовые требования к профессионалу
- Знание хотя бы одного «серверного» языка программирования: PHP, Go, ASP.NET, C/C++, Python, Ruby, Java. В некоторых случаях достаточно знания JavaScript для бэкенда (Node.js), но это скорее как плюс, чем как пункт.
- Знание API (REST, SOAP — всё реже).
- Понимание принципов работы серверов Apache, NGINX, IIS и проч.
- Навыки написания юнит-тестов и покрытия кода тестами.
- Основы сетевой безопасности и знание инструментов её обеспечения.
- Знание популярных веб-фрейморков, которые способны решать задачи разработки конкретного приложения.
- Навыки написания запросов к БД и проектирования баз данных.
- Знание основ фронтенда — и это не плюс, а обязательный пункт, иначе вам придётся крайне непросто проектировать и писать приложение.
- Администрирование UNIX или знание Linux (можно любого одного дистрибутива).
- Знание принципов работы HTTP (кэширование, авторизация, структура сообщений, заголовки, коды ответов и проч.)
- Модель OSI.
- Навыки составления и оценки технического задания (ТЗ) — очень важный навык, который необходим для сбора самой точной информации о требованиях к ПО.
Стажёр (Intern) | Младший (Junior) | Средний (Middle) | Старший (Senior) | Ведущий (Lead) |
---|---|---|---|---|
|
|
|
|
|
— | + ООП, фреймворки | + ООП, фреймворки, Docker | + высоконагруженные системы, ООП, фреймворки, Docker | + Linux, ООП, фреймворки, Docker |
Топ-5 востребованных технологий у специалистов по данным «Хабр Карьера», 2 полугодие 2019 года, нижняя строка — «дополнительные» скиллы.Принцип формирования списка: пользователи, внося данные о заработной плате, указывают скиллы, которые у них в приоритете (что они умеют делать!). То есть это не требования работодателя, а навыки специалистов каждой категории.роадмап, но уже для бэкенд разработчика
Ruby + Ruby on Rails
Ruby on Rails — это веб-фреймворк на языке программирования Ruby. Ruby on Rails имеет набор готовых инструментов, которые позволяют быстро выполнять базовые задачи.
Ruby достаточно лаконичный и не требует много кода для бэкенда, что позволяет разработчикам быстро создавать и запускать прототипы (этим Ruby похож на Python). Популярность Ruby выросла в начале 2000 годов, но с тех пор заметно снизилась.
Ruby — язык с открытым исходным кодом, а значит его можно модифицировать и дополнять.
Что можно делать на Ruby
Ruby позволяет:
- автоматизировать повторяющиеся задачи;
- создавать веб-приложения;
- писать мобильные приложения и игры;
- создавать прототипы.
Полезные книги
Марк Лутц, «Изучаем Python». Марк написал эту книгу по мотивам собственных курсов, которые ведёт уже более 10 лет
Здесь всё важное: обзор инструментов, типы объектов, функции плюс описания моделей и инструкции по обработке исключений
Антонио Меле, «Джанго 2 в примерах». Книга делает упор на практическое создание приложений для реальных задач. Кроме непосредственной работы с компонентами самого фреймворка, рассматриваются также и возможности интеграции сторонних инструментов.
Лекции Тимофея Хирьянова по алгоритмам. Тимофей — один из преподавателей МФТИ. Лекций по алгоритмам множество, но эти наглядные. Особенно полезны для новичков, но и разработчику с опытом тоже пригодятся.
Если вы можете свободно читать профильную литературу на английском, то порекомендуем ещё и пару книг о разработке на основе тестов: Harry Percival, «Test-Driven Development with Python» и Kevin Harvey, «Test-Driven Development with Django».
Как стать back end разработчиком? Что нужно знать и уметь?
Несмотря на то, что backend предполагает работу только с серверной частью, начать путь в профессию лучше с изучения основ HTML и CSS. Далее – осваивать серверные языки программирования, работу с базами данных.
Посмотрите интересное видео на тему, чем отличается backend разработчик от frontend и какие знания необходимы для работы в этой сфере:
Список того, что нужно знать и уметь бэканд разработчику, может включать:
-
Языки программирования, например, PHP, Ruby, Python, Java, JavaScript / Node.js. PHP – самый популярный язык серверного программирования.
-
Технологию AJAX, позволяющую обновлять данные в браузере без перезагрузки страницы.
-
Базы данных MySQL, PostgreSQL, MongoDB и другие.
-
Принципы работы UNIX-систем.
-
Принципы ООП (объектно-ориентированное программирование).
-
Фреймворки – наборы скриптов, ускоряющих разработку веб-сайтов.
-
Работу с системами контроля версий Git.
От чего надо защищаться?
Потенциально веб-приложение находится под угрозой множества атак. В статье я не буду затрагивать угрозы, направленные только на бэкенд (SQL-инъекции, брутфорс, DDoS и прочие). Рассмотрим атаки, направленные на уязвимости в архитектуре фронтенда, которые реализуются через действия введённого в заблуждение пользователя в браузере. Особенно стоит выделить два больших класса атак: XSS и CSRF (XSRF), породивших за пару десятилетий множество подвидов.
Конечно, список атак намного шире и постоянно пополняется. Хорошее описание для них есть на сайте проекта обеспечения безопасности веб-приложений OWASP.
Чтобы обезопасить пользователей и обезоружить злоумышленников, браузер берёт значительную часть работы на себя. Как правило, браузерные политики безопасности управляются заголовками со стороны-веб серверов. Одни заголовки нужны на сервере API-бэкенда, другие на стороне веб-сервера, отдающего статику. Подробнее рассмотрим особенности этих заголовков и других мер безопасности.
CORS
Одностраничное приложение для взаимодействия с сервером использует XHR-запросы. Браузер накладывает на такие запросы особые политики. Если HTML-документ фронтенда и публичный интерфейс бэкенда доступны по одному хосту (протокол, домен, порт), то браузер рассматривает запрос в рамках принципа одного источника Same Origin Policy. Это означает, что он не будет препятствовать такому общению.
В принципе, проектируя приложение, можно работать в рамках этой концепции: настроить Nginx как входной веб-сервер, проксирующий запросы к одному домену по URI. В этом случае для браузера клиент и сервер будут находиться на одном домене, хотя фактически могут быть расположены на разных серверах.
Однако не всегда такой путь подойдёт. Бывает необходимость, чтобы фронтенд и API были на разных доменах, например, когда у вас несколько фронтенд-приложений на разных доменах, которые обращаются к одному API, либо политика доменных имён компании диктует свои условия. XHR-запрос с домена источника на сервер с другим доменом браузер пользователя рассматривает в рамках политики Cross-Origin Resource Sharing, или просто CORS. На такое общение браузер накладывает ряд строгих правил, основная цель которых — не дать злоумышленнику отправлять запросы с неразрешенных источников
Разработчику важно понимать, что обычный пользователь в обычной ситуации не должен столкнуться с ограничениями CORS. Ограничения начинают работать, когда механизм взаимодействия «клиент-сервер» настроен неправильно, либо когда пользователь — это злоумышленник, и пытается совершить злодейские деяния
Например, он может отправлять XHR-запросы со своего сайта, используя cookie пользователя (CSRF-атака).
Для большинства запросов настройка, разрешающая CORS, требуется только со стороны веб-сервера. Рассмотрим на примере Nginx:
Заголовок Access-Control-Allow-Origin сообщает браузеру, какие источники могут взаимодействовать с сервером. Работает это так: браузер посылает предварительный запрос OPTIONS с источника, проверяет, соответствует ли источник заголовку Access-Control-Allow-Origin и только потом отсылает основной запрос. Заголовок может принимать значение ‘*’, что значит «любой». В этом случае браузер пропустит любой кроссдоменный XHR-запрос к этому серверу. Делать это допускается в случае, когда вы проектируете публичное API, оперирующее обезличенными и не конфиденциальными данными. Например, справочник геоданных или сервис статистики посещений. На практике, такие случаи крайне редкие, в большинстве ситуаций Access-Control-Allow-Origin должен иметь значение конкретного источника.
Ещё раз отметим, что CORS-политики — это зона ответственности исключительно браузера. Если API открыто в мир, то допускается его использование с приложений, не являющимися веб-браузером. Например, с бэкенд приложений других серверов: для них заголовок Access-Control-Allow-Origin не будет значить ровным счетом ничего, поэтому за доступность API можно не беспокоиться.
Системы управления версиями
Речь, конечно, идет об использовании Git и GitHub. Новичкам использование Git кажется излишним, а его преимущества — неочевидными, поэтому предлагаю подумать о ситуациях, с которыми вы можете столкнуться в процессе написания кода:
- Если вы собираетесь работать с другими разработчиками над одним и тем же проектом, то вы будете пользоваться общим набором файлов. Как именно вы планируете избежать противоречий при изменениях в коде?
- Что, если вы захотите вернуть старую версию и посмотреть, как вы реализовали ту или иную задачу перед тем, как продолжите разработку?
- Что, если вы захотите откатить проект к последней версии, в которой еще не было сбоя?
- Что, если вы захотите поделиться своим исходным кодом? Вы будете его архивировать и рассылать по e-mail при добавлении каждой новой фичи?
- Как вы будете следить за тем, какие файлы были изменены, а какие — нет?
Научиться пользоваться GitHub поможет эта статья.
Прим. перев. А чтобы разобраться в основах Git, читайте наше руководство.
Формы и состояния
Формы — это самый распространенный способ общения пользователей с приложением. В основном через них пользователи и вводят все данные.
Вам надо создать формы для взаимодействия с бэкендом: если пользователь заказывает билет на концерт, то форма должна выглядеть, как сетка мест:
Когда пользователь начинает взаимодействовать с формой, вам надо сделать следующее:
- Основываясь на правилах приложения, проверить введенную пользователем информацию и показать ошибки или сообщение об успешной проверке.
- Изменить название состояния или формы в зависимости от того, кто и что пытается сделать.
- Разрешить передачу данных, введенных проверенным пользователем с достаточными правами, в бэкенд для обработки.
Программы для создания кода
Код пишут где угодно, даже в блокноте. Однако для удобства придуманы системы, где работает автоподстановка, можно заниматься дебагом (подсказка: Процесс отладки кода) и использовать массу иных возможностей. Такая программа называется IDE — интегрированная среда разработки, или редактор кода.
Для работы с PHP рекомендуем две IDE:
1. NetBeans
Основное преимущество — это бесплатная система. Однако NetBeans съедает много памяти во время работы и не такой прогрессивный, как редактор ниже.
2. PhpStorm
Очень удобный интеллектуальный редактор от компании JetBrains. Обладает отличной автоподстановкой и продвинутой системой семантического анализа. Программист допустил опечатку — анализатор тут же показывает, где именно. Незаменимый инструмент для веб-разработчика на PHP.
Краткое, но исчерпывающее введение в PhpStorm от официального разработчика.
Недостаток PhpStorm только в том, что он платный: можно оформить подписку за $199 на год. Через 12 месяцев последняя версия остаётся у вас навсегда, но обновить её без оплаты нового периода не получится.
Что такое фронтенд и чем занимается специалист
Frontend — это разработка интерфейса, с которым взаимодействуют пользователи. Называется она так, потому что это создание наружной части сайта или приложения, а значит, находится снаружи/спереди (front).
Фронтенд-разработчик — это программист и верстальщик в одном лице. По части программирования специалист пишет код при разработке интерфейса, по части верстки он вставляет интерфейс на сайт или приложение. Помимо этого, разработчик адаптирует интерфейс под различные платформы, например под компьютерный браузер и мобильный браузер.
Основная цель специалиста — сделать использование сайта или приложения максимально удобным для конечного пользователя. Интерфейс должен быть интуитивно понятным, не перегруженным навигационными элементами и в стиле веб-площадки. Эта профессия входит в сферу веб-разработки.
Главные инструменты в этой сфере — языки веб-разметки (HTML, CSS) и программирования (JavaScript):
- JavaScript используется для создания UI (user interface — интерфейс пользователя) с нуля;
- На HTML производится основная верстка, где интерфейс переводится на язык, понятный современным браузерам;
- Через CSS прикрепляются стили к структурированным документам (в случае с frontend это прикрепление стилей к документам HTML).
Фронтенд-специалист несет ответственность за то, чтобы все страницы сайта или приложения выглядели идентично во всех браузерах и их версиях, а также соответствовали макету, который был создан дизайнером (или самим веб-разработчиком). С каждым годом интерфейсы сайтов и приложений усложняются с технической стороны, зачастую становясь все более простыми для пользователя. Также к уже созданным устройствам добавляются новые, будь то планшеты, компьютеры, ноутбуки, смарт-часы и другие гаджеты.
Из этого выходит, что профессия фронтенд-разработчика требует постоянного обучения и нахождения в курсе событий в индустрии.
Отличие frontend от backend
Фронтенд-разработчик напрямую взаимодействует с пользователем через интерфейс, так как отвечает за все внешние элементы, с которыми контактируют клиенты/посетители сайта или веб-приложения.
За все обработки и действия, которые производятся на серверах, отвечает другой специалист — бэкенд-разработчик. Так как это разные профессии, в backend используется другой инструментал, включающий языки программирования PHP, Perl, Java, Python, Ruby, фреймворки и SQL для работы с данными. Кстати, на нашем сайте есть обзор профессии PHP-программиста.
В разработке любого сайта или веб-приложения участвуют оба специалиста. Так, пользователь выбирает определенные элементы в веб-интерфейсе, после чего на сервер отправляется запрос, результат которого отображается в интерфейсе. Есть fullstack-разработчик, который сочетает в себе обязанности и фронтенда, и бэкенда.
Достоинства и недостатки
Как и в любой сфере, во фронтенде есть некоторые плюсы и минусы. Поэтому в список того, что нужно знать фронтенд-разработчику-новичку, входит ознакомление с достоинствами и недостатками профессии.
Перечень плюсов:
- Востребованность специалистов;
- Хорошая зарплата;
- Довольно низкий порог вхождения по сравнению с другими IT-профессиями, ведь нужен всего один язык программирования, а языки разметки и стилей значительно проще;
- Есть как работа с исходным кодом, так и дизайнерская составляющая деятельности;
- Со временем можно изучить бэкенд и стать фуллстэк-специалистом.
Список минусов:
- Во многих вакансиях по этой специальности есть требования, касающиеся бэкенда;
- Обязательно взаимодействие с другими сотрудниками (далеко не для всех это минус);
- Хоть JavaScript и не такой сложный и требовательный, как, например, C++, для того чтобы им уверенно владеть, нужно иметь начальные знания алгебры.
Репозиторий для хранения данных
Опциональный инструмент — облачный репозиторий. С помощью него хранят данные не у себя на компьютере, а в облачном сервисе. Программист закоммитил файлы через версионизатор, отправил в облачное хранилище, пересел за другой компьютер, скачал и продолжил разработку. Удобно, гибко и мобильно.
Предлагаем три лучших репозитория на выбор:
- Bitbucket — бесплатно для команд из пяти разработчиков. Для растущих и больших компаний есть варианты по 2$ и 5$ в месяц за одного пользователя соответственно.
- GitLab — бесплатно с ограниченными возможностями. Платные тарифы начинаются от 4$ за пользователя ежемесячно.
- GitHub — пожалуй, самый крупный и известный сервис для совместной разработки. Бесплатен для проектов с открытым исходным кодом и предлагает платные тарифы для корпоративных команд.
Пример из жизни
Для этой задачи нужно как минимум два человека — фронтенд, который настроит внешний вид сайта, красивые карточки товаров и сделает нужные цвета, и бэкенд-разработчик, который сделает всё остальное. Остального будет много:
- найти нужный движок магазина (или написать свой, но для этого уже нужна целая команда и большой бюджет);
- организовать и настроить хостинг под этот движок;
- запустить его в первоначальном виде и посмотреть, что нужно изменить;
- перепрограммировать шаблоны страниц, чтобы они показывали то, что нужно, а не то, что было изначально;
- связать базу данных магазина с системой онлайн-торговли — чтобы правильно считались остатки на складах, было точно известно наличие товара и т. д.;
- прикрутить к сайту регистрацию и авторизацию по популярным сервисам и соцсетям;
- убедиться, что всё это происходит безопасно и данные хранятся в нужном месте (и всё соответствует законам);
- переделать админку, чтобы менеджеры могли сами заполнять карточки товаров;
- проверить сайт под нагрузкой;
- настроить резервное копирование;
- сделать автоматическое оповещение о заказе по почте.
Вывод такой: работы у бэкенд-разработчика всегда много, потому что заказчик всегда будет стремиться к тому, чтобы сделать сайт ещё лучше, быстрее и удобнее.
Что в итоге
Backend-разработка стала для меня еще одним хорошим опытом – я научился писать код и проводить ревью, продумывать архитектуру. Это на самом деле интересно.
Но при этом, попробовав вживую что фронт, что бэк, я не скажу, что в случае чего сразу выбрал бы бэкенд в самом начале карьеры
Для меня все же важно видеть и понимать, как мой продукт воспринимают пользователи. С бэкендом это все довольно призрачно
Скорее всего, выбирая сферу сейчас, я бы пошел в геймдев или веб-фронтенд. Веб все еще остается хорошей платформой для запуска новых продуктов, и при этом перестал быть жутким и сложным для понимания. Все эти туториалы из спагетти-кода и callback-hell остались далеко позади, к счастью.