Чем занимаются fullstack-разработчики: спрашиваем у них | robot_dreams
Для отслеживания статуса заказа — авторизируйтесь
Введите код, который был выслан на почту Введите код с SMS, который был выслан на номер
 
Код действителен в течение 5 минут Код с sms действителен в течение 5 минут
Вы уверены, что хотите выйти?
Сеанс завершен
На главную
Чем занимаются fullstack-разработчики: спрашиваем у них

Чем занимаются fullstack-разработчики: спрашиваем у них

Что нужно, чтобы стать фулстеком.

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

Компании открывают вакансии для FullStack Developers, поскольку часто нужно разработать MVP или же поддерживать технически несложный сайт. В таких случаях одному человеку проще разобраться в логике, и он может быстро вносить изменения.

Мы спросили у Кирилла Козака, Co-founder Lambda Team, Данила Толмачева, Fullstack Engineer и Team Lead в Techstack, и Олега Бильки, Fullstack-разработчика в Grid Dynamics, какие задачи они решают, как стать фулстеком и в чем плюсы и минусы профессии.

Базовые знания fullstack-разработчика

Fullstack должен знать в два раза больше, чем frontend- или backend-разработчик, и быстро разбираться в новых инструментах. Для этого ему нужна техническая база: основы ООП, знания алгоритмов и структур данных, основы сетевых систем. Также для fullstack обязательны знания баз данных. Для того чтобы «закрыть» весь стек веб-разработки, программист должен иметь хотя бы базовые знания DevOps.

Кирилл Козак:

«Есть фулстек-разработчики, которые понимают не только фронтенд и бэкенд, а еще и DevOps. Они закрывают цикл разработки самостоятельно, делают архитектуру на бэкенде, подсоединяют к дашборду, чтобы все работало. Таким образом, среду разработки и деплоя в продакшн строит один человек».

курс по теме: Алгоритмы и структуры данных
Артем Верещака Tech Lead в Bolt
 

Задачи и обязанности fullstack-разработчика

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

Олег Билька:

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

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

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

Этот специалист должен обладать навыками в разных нишах разработки: от баз данных до графического дизайна UI/UX. Он может заменить нескольких узких специалистов».

Основные обязанности fullstack-разработчика:

  • Помощь в проектировании и разработке программного обеспечения;
  • Написание чистого кода для frontend- и backend-частей;
  • Тестирование и отладка;
  • Проектирование модели данных и архитектуры;
  • Обслуживание серверной части;
  • Тестирование и поддержка адаптивного дизайна приложений;
  • Работа с графическими дизайнерами над созданием новых фич;
  • Разработка API и сервисов RESTful/GraphQL;
  • Забота о безопасности, обслуживании, масштабируемости продукта.

Fullstack-разработчики также разбираются в бизнес-логике и пользовательском опыте, а это означает, что они могут участвовать в разработке стратегии.

Какие инструменты нужны фулстеку

Из frontend-инструментов нужно знать HTML и CSS, уметь сверстать и стилизовать веб-страницу. И поскольку «монополист» во фронтенде — язык JavaScript, знать его тоже необходимо.

Для того чтобы веб-страница не только отображала информацию, но и имела функциональность, разработчику нужны frontend-фреймворки. Сейчас популярны Angular, Vue.js и React. Для fullstack-специалиста достаточно знания одного из фреймворков.

В backend-части большой выбор языков. Стоит рассмотреть:

  • — специально разработанный для веба PHP;
  • — «классические» для enterprise инструменты: Java и ASP.NET;
  • — молодой и популярный среди стартапов Node.js;
  • — Ruby, Python, Scala и другие.

После того как определились с серверной технологией, нужно понять, где хранить данные. Базы данных делятся на два типа: реляционные (подходят для более структурированных данных, которые легко разделить на связанные между собой таблички) и нереляционные (данные хранятся без четкой структуры). Реляционные базы поддерживают язык запросов SQL. Самые популярные реляционные базы: PostgreSQL, MySQL, MicroSoft SQL Server, Oracle Database. Среди нереляционных (или NoSQL) баз данных популярна MongoDB.

Для fullstack-разработчика полезны и другие инструменты:

  • — для хранения, версионирования и построения непрерывной интеграции и поставки (CI/CD) — Github, Gitlab, Bitbucket;
  • — для запуска приложений — Docker, Kubernetes;
  • — для документирования и тестирования API — Postman, Swagger;
  • — для хостинга приложений — облачные сервисы AWS, MS Azure, GCP, Heroku.

Преимущества профессии

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

Разработчику можно быть гибким в выборе направления, потому что фулстеки — T-shaped специалисты.

Среди преимуществ для проекта — скорость разработки и самостоятельность девелопера.

Данил Толмачев:

«Фулстек-разработчик — мультифункциональный человек. Многие бэкенд-разработчики хотят писать код на фронтенде, потому что результат работы видно. И наоборот, некоторые люди не хотят заниматься фронтенд-разработкой и связываться с дизайнерскими задачами.

Когда работаешь фулстеком, приходится сталкиваться со всем сразу и отвечать за все. Это одновременно и преимущество, и недостаток работы.

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

Олег Билька:

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

Недостатки профессии

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

Кирилл Козак:

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

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

Фулстек — это скорость, которая нужна стартапам. Он хорош на early-stage, но когда проекту нужна стабильность — следует разделять роли».

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

Данил Толмачев:

«Если сравнивать хороших фронтенд- и фулстек-разработчиков, то фронтендщик будет чуть-чуть лучше в нюансах, в которых фулстек может быть поверхностным. Здесь играет роль и опыт, и то, как часто он встречается с определенными задачами и как их решает. Но это не значит, что фулстек выполнит задачу хуже — ему просто понадобится больше времени.

Фулстек-разработчик проигрывает бэкендщикам и фронтендщикам, когда нужен узкоспециализированный специалист. Заменить фронтендщика фулстеком можно, но на практике все зависит от технологий».

Ещё статьи
Экспертки о том, как оценивают кандидатов на нетехнических интервью
Часть 2. Работа с записями: вставка, чтение, изменение и удаление