Мифические существа в digital: фулл-стек разработчик

digital
business
web

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

Кто ты будешь такой


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



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

Фулл-стек разработчик может писать код и для бэкенда, и для фронтенда, владеет всеми технологиями, базами данных, фреймворками. А также должен предвидеть сложности, которые могут возникнуть в процессе интеграции слоев стека. По данным исследования Stack overflow 51.9% респондентов определяют себя именно как фулл-стек разработчики.

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

И здесь тренды

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

Фронтенд:

  • JavaScript;
  • Cтили, верстка — CSS, HTML;
  • Одна из библиотек или фреймворков — React, Vue или Angular;
  • Сборка — webpack или Rollup.

Бэкенд: Наиболее популярные языки  — PHP, Go, Python.

Базы данных: MySQL, Cassandra.

Сейчас в тренде микросервисы, а чтобы создавать их, нужен Docker. Нужно знать Kubernetes Kubernetes для построения архитектуры проекта, и таких технологий много, изменения происходят постоянно. Языки Go, Rust появились 5 лет назад, но пару лет назад стали популярны.

Изображение из блога Hackernoon

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

Поэтому от фулл-стек разработчика менеджер может услышать:

  • протестируем потом;
  • пользователи протестируют это за нас;
  • логи ошибок не так уж важны.

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

Пытаясь найти фулл-стек разработчика, компания или агентство думает, что найдет человека, «который может сделать сайт», а кроме того, еще поработает немного менеджером и ответит пользователям.

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

Ответ на все вопросы

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

Чтобы выучить все технологии фронтенда, надо заниматься только им и не переключаться на бэкенд. А за это время технологии бэкенда обновятся и придется наверстывать огромный объем знаний.

Скотт Хэдфилд в своей публикации Фулл-стек-разработчик – это миф объясняет, что потенциальный фулл-стек должен понимать принцип работы каждого компонента стека, чтобы знать где их использовать и принимать обоснованные решения. А после этого еще понятно объяснить выбор решения менеджеру.



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

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