Фуллстеки, единороги и другие "фантастические твари"

Речь пойдет о фантастических созданиях – разработчиках полного стека. Разберемся с их биологией и узнаем, существуют ли фуллстеки в реальности.

Разработчик полного стека – это необычайно востребованная специальность, требующая высокой квалификации, широких и глубоких знаний. Согласно опросу на StackOverflow, большинство разработчиков считают себя такими специалистами.

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

Фуллстеки, единороги и другие фантастические создания

Но веб-стек стремительно эволюционирует, и оставаться информированным и продуктивным на фронте и бэке одновременно становится все сложнее. Появляется вопрос – а возможно ли это в принципе? Быть может, фуллстеки в природе не встречаются, и это просто красивая легенда?

Откуда взялся "полный стек"?

Легенда о фуллстеках зародилась в начале 2000-х годов. Вы помните, как выглядел тогда веб? Все было попроще и намного более единообразно, чем сейчас:

  • 3-4 основных сервера приложений, которые отвечали за поддержание состояния, бизнес-логику и создание пользовательского интерфейса. Языки и среды разработки, конечно, отличались, но клиент-серверная схема, модели и методы программирования в целом были однотипны.
  • Все базы данных основывались на реляционной модели и работали с языком SQL-запросов. Имея домен, поддерживающий стандарт SQL-92, можно было менять базы как перчатки.
  • На фронтенде работали HTML4, CSS2 и молодой-зеленый JavaScript, управляющий DOM-моделью. Сайты создавались только для десктопов с определенным набором разрешений.
  • Пропускная способность интернета была раз в 100 меньше нынешней.

Ну что ж, в таком контексте фуллстеки вполне могли существовать, да они и существовали. Один программист мог взять на себя ответственность за весь проект.

"Полный стек" родился!

Особую популярность ему принес быстрорастущий Facebook, который активно нанимал разработчиков "полного цикла".

Эволюция

Но за 20 лет фронтенд и бэкенд прошли огромный путь:

  • Фундаментальный сдвиг парадигмы переместил контроль за состоянием приложения с сервера на клиентскую часть. Изменился и центр тяжести знаний разработчика полного стека. Если раньше фуллстеки были бэкенд-экспертами, разбирающимися во фронтенде, то сейчас это скорее классные фронтендеры с хорошим знанием бэкенда.
  • JavaScript до такой степени усовершенствовался (ECMAScript 5, 6, 7), что стал способен реализовывать инженерные решения, близкие по уровню к C# или Java. Современные JS-фреймворки приближаются по сложности к бэкенд-решениям, а кривые обучения, например, Angular или Ember, стали такими крутыми, что новичку или перебравшемуся на фронт бэкендеру будет непросто с ними справиться.
  • Браузерные виртуальные машины продолжают развиваться. От простого представления текстовых документов мы перешли к полноценным платформам для создания сложных приложений.

JavaScript наконец-то обзавелся инкапсуляцией, как и DOM, – появились новые стандарты Shadow DOM и Custom Elements.

Мобильный мир

В начале текущего десятилетия наравне с десктопом встала мобильная среда с собственным пользовательским опытом.

И iOS, и Android создают богатую и сложную экосистему и требуют уникального подхода к разработке. Сэкономить усилия можно лишь используя гибридные технологии на основе DOM-модели браузера (например, Apache Cordova).

Существенно увеличились возможности верстки, современные CSS и DOM стали весьма изощренными. Сегодня при разработке клиентского интерфейса необходимо учитывать огромный диапазон разрешений и браузерных особенностей, различные плотности экранов, события касаний и множество других вещей. Стандарты тем временем развиваются уже не в двух, а в трех измерениях (WebGL).

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

От монолитов мы перешли к распределенным архитектурам и микросервисам, любим их за масштабируемость и удобство обработки информации.

Фуллстеки – миф или реальность?

Все же красивая легенда о фуллстеках может воплотиться и в современном веб-мире. Живой пример этого – JavaScript. Этот язык используется во всех контекстах разработки: на десктопе (DOM), в мобильных клиентах (Cordova, React Native), на сервере (Node.js) и в базе данных (MongoDB). Фуллстеки сейчас обитают в основном в стартапах и небольших проектах.

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

Если вы все же очень хотите стать частью легенды, специально для вас мы подготовили полезное руководство Как стать востребованным full-stack разработчиком в 2018 году.

А как вы думаете, остались ли еще настоящие full stack разработчики?

Перевод статьи Full-stack developers, unicorns and other mythological beings.

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ