28 October

Перевод: Кто такой Full Stack разработчик?

Website development
Sandbox

Привет, Хабр! Представляю вашему вниманию перевод статьи "What is a Full Stack developer?" автора Laurence Gellert.


image


Кто такой Full Stack разработчик?


Разумно ли ожидать, что простые смертные будут владеть всеми аспектами разработки? Скорее всего нет, но в Facebook могут попросить об этом. На OSCON (O’Reilly Open Source Convention — ежегодный съезд, посвящённый обсуждению открытому и свободному программному обеспечению) один из сотрудников Facebook сказал, что они нанимают только Full Stack разработчиков. Что это значит?


Для меня Full Stack разработчик — это человек с хорошим пониманием каждого уровня разработки и искренне интересующийся всеми программными технологиями.


Хорошие разработчики, знакомые со всем стеком, знают, как облегчить жизнь тем, кто их окружает. Вот почему я так против разрозненности на рабочем месте. Конечно, политические и коммуникационные проблемы мешают в больших организациях. Я думаю суть политики найма в Facebook заключается в том, что если умные люди используют свои головы и слушаются своего сердца, то лучший продукт создается за меньшее время.


image


Уровни Full Stack разработки:


  1. Сервер, сеть и среда хостинга


    A. Это включает в себя понимание того, что может сломаться и почему, не принимая никаких ресурсов как должное.


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


    C. Как приложение масштабируется с учетом аппаратных ограничений?


    D. Как насчет многопоточности и состояния гонки? Скорее всего вы не примените их в своей разработке, но они используются в мире.


    E. Full stack разработчики могут работать бок о бок с DevOps. Системы должна представлять полезные сообщения об ошибках и возможность логирования.


  2. Моделирование данных


    A. Если модель данных несовершенна, бизнес логике и более высокие уровни начинают нуждаться в странном (уродливом) коде, чтобы компенсировать случаи, которые модель данных не охватывает.


    B. Full stack разработчики знают, как создать разумно нормализированную реляционную модель, дополненную внешними ключами, индексами, представлениями, таблицами поиска и т.д.


    С. Full stack разработчики знакомы с концепцией нереляционных баз данных и понимают в чем они превосходят реляционные базы данных.


  3. Бизнес логика


    A. Понимание ценности, которую представляет приложение.


    B. Знание твердых объектно-ориентированные принципов.


    С. Знание фреймворков, которые могут использоваться.


  4. Уровень API / Уровень действий / MVC


    A. Как внешний мир влияет на бизнес логику и модель данных.


    B. Фреймворки должны активно использоваться на этом уровне.


    С. Full stack разработчики имеют способность писать четкие, последовательные, простые в использовании интерфейсы. Меня отталкивает степень запутанности некоторых API.


  5. Пользовательский интерфейс (UI)


    A. Full stack разработчики: а) понимают, как сделать читаемый макет, или b) признают, что им нужна помощь художников и графических дизайнеров. В любом случае, реализация хорошего визуального дизайна является ключевым моментом.


    B. Владение HTML5 / CSS.


    С. JavaScript это перспективный язык будущего и в мире JavaScript делается много захватывающих проектов (node, backbone, knockout...).


  6. Пользовательский опыт (UX)


    A. Full stack разработчики ценят, что пользователи просто хотят, чтобы всё работало.


    B. Хорошая система не дает своим пользователям синдром запястного канала или воспаления глаз.


    С. Full stack разработчики пишут читаемые сообщения об ошибках. Если что-то сломалось, извинитесь за это. Иногда программисты непреднамеренно пишут сообщения об ошибках, читая которые пользователь чувствует себя глупым.


  7. Понимание что нужно клиенту и бизнесу


    A. Сейчас мы размываем черту архитектора, но это слишком большая роль.


    B. Full stack разработчики имеют представление о том, что происходит, когда пользователь использует программное обеспечение. Они также имеют представление о бизнесе.



Другие важные моменты


  1. Возможность писать качественные модульные тесты. Кстати, в наши дни даже JavaScript может иметь модульные тесты.
  2. Понимание повторяющихся автоматизированных процессов построения приложение, его тестирования, документирования и масштабированного развертывания.
  3. Осознание проблем безопасности имеет важное значение, поскольку каждый уровень представляет свои собственные возможные уязвимости.

Заключительные мысли


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


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


Я не уверен, что вы можете называть себя full stack разработчиком пока вы не поработаете на нескольких языках, платформах и даже отраслях в своей профессиональной карьере. Full stack выходит за рамки "senior engineer", поскольку он находится в том же направлении, что и программист-полиглот, но с более высоким представлением всех соединительных частей. Обратите внимание, что в моем списке только 3-5 пунктов, связанных с написанием кода.

Tags:full stackfull stack developmentперевод
Hubs: Website development
+3
3.3k 21
Comments 17
Popular right now
Профессия Full Stack разработчик
January 18, 2021140,000 ₽Loftschool
Профессия iOS-разработчик
December 7, 202090,000 ₽SkillFactory
SEO-специалист
December 7, 202064,900 ₽Нетология
iOS-разработчик с нуля
December 7, 202070,740 ₽Нетология