Такие разработчики незаменимы в стартапах, например, чтобы быстро создать и поддерживать MVP. Хотя их зарплата обычно достаточно высока, присутствие в штате грамотного фулстек-программиста снижает стоимость проекта в целом. Он может быстро разработать прототип, не тратит много времени на коммуникации внутри команды и может помогать остальным разработчикам.
Главная ценность фулстек-разработчика в том, что он видит общую картину, может планировать структуру приложения и участвовать во всех этапах разработки — от серверной логики до клиентского кода.
Обязанности Full Stack разработчиков
Обязанности full stack разработчика в значительной мере зависят и от его опыта, и от проекта, на котором он работает. Основные обязанности обычно выглядят так:
- Разработка структуры и архитектуры приложения;
- Разработка адаптивных, кроссплатформенных приложений, написание кода для серверной и клиентской части проекта;
- Интеграция внешних сервисов на фронт- и бэкенде;
- Разработка API;
- Дебаггинг.
В стартапах обязанности можно описать кратко как «сделать все, что касается разработки». Это включает задачи как фронтэнд-, так и бекэнд-разработчика.
В больших компаниях фулстек-разработчики могут быть тимлидами, в обязанности которых входит проектирование приложения и распределение обязанностей.
Full Stack разработчики - основные скиллы
Перечень скиллов, необходимых Full stack разработчику, впечатляет:
- Браузерная часть: язык JavaScript (ECMAScript 6), библиотека jQuery, фреймворки Angular, Vue, React;
- Серверная часть: как минимум один «серверный» язык программирования, например, PHP, Ruby, Java или Python, платформы ASP.NET и Node.js. Фреймворки, например, Rails (на Ruby), Django (Python), Laravel (PHP);
- Базы данных: SQL, MongoDB и другие;
- Системы контроля версий (из популярных — Git, SCCS, RCS, Mercurial, Bitbucket);
- Best practices в области безопасности.
Есть определенные устоявшиеся связки технологий, так называемые стеки. Например, сертификация Microsoft Full Stack включает C#, SQL, HTML, CSS, JS, Patterns и AngularJS (дополнительно).
Другие примеры стеков используемых технологий:
- LEMP: JavaScript - Linux - Nginx - MySQL - PHP
- Django: JavaScript - Python - Django - MySQL
- Ruby on Rails: JavaScript - Ruby - SQLite - Rails
- MEAN: JavaScript - MongoDB - Express - AngularJS - Node.js
Плюсом будет, если full stack разработчик успевает следить за всеми важными тенденциями. Но при таком широком круге профессиональных интересов это весьма непросто.