Пользователь
0,0
рейтинг
22 апреля 2014 в 21:26

Разработка → Full stack web developer

Довольно давно в различных источниках всплывала очень интересная тема Full Stack developer'a. А именно, что должен из себя представлять такой разработчик, каким опытом, знаниями и умениями должен обладать, с какими технологиями работать? И если с вопросом что должен из себя представлять все более менее понятно – должен уметь самостоятельно написать с нуля не тривиальное приложение, т.е. frontend, backend, работа с сетью, с БД и другие плюшки, архитектурные решения и т.д. То с последующими вопросами все не так ясно. Заинтересовавшихся прошу подкат…

В этой своей статье я представляю вашему вниманию перевод части статьи отсюда.

Слои Full Stack'а:


1. Server, сеть и окружающая среда hosting'а.

Сюда отнесем понимание того, что может сломаться и почему. Соответствующее использование файловой системы, хранение облака, сетевые ресурсы и понимание избыточности данных и доступности необходимы. Как масштабировать приложение с учетом аппаратных ограничений? Как на счет многопоточности и состояния гонки? Умение уловить то, что вы не увидите на вашей рабочей машине, но это может произойти в реальном мире. Full Stack разработчик может работать бок о бок с DevOps. Система должна предоставлять полезные сообщения об ошибках.

2. Data Modeling

Если модель данных ошибочна, то бизнес логика и более выскокие уровни начинают нуждаться в странном (ужасном) коде для компенсации острых углов, которые модель данных не покрывает. Full Stack разработчики знают как создать разумно сбалансированную реляционную модель данных, с foreign key'ями, индексами, представлениями и т.д. Full Stack разработчики знакомы с NoSQL и знают, когда таки решения сияют по отношению к реляционным БД.

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

Здесь необходимы твердые объектно-ориентированные навыки. Так же здесь возможно понадобятся различные framework'и.

4. API слой / Action слой / MVC

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

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

Full Stack разработчики понимают как создать удобочитаемый макет и признают, что им необходима помощь профессиональных художников и графических дизайнеров. В любом случае, внедрение хорошего визуального дизайна является ключевым фактором. Превосходно владеет HTML/CSS, JavaScript (node, backbone, knockout и т.д.).

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

Full Stack разработчикам понятно, что пользователи просто хотят, чтобы работало. Хорошая система не доведет своих пользователей до синдрома тоннеля запястья или воспаленных глаз. Full Stack разработчик может посмотреть на процесс из 8 щелчков мышью и 3 шагов и свести его к одному клику. Такой разработчик пишет полезные сообщения об ошибках, если что-то ломается, просит за это прощения. Иногда программисты непреднамеренно пишут сообщения об ошибках, которые могут заставить пользователя почуствовать себя глупым.

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

Full Stack разработчик понимает, что происходит при использовании клиентом программного обеспечения, а так же обладает пониманием бизнеса клиента.

Другие части паззла:

1. Умение писать качественные Unit тесты.
2. Понимание Continuous Integration.
3. Осознание проблем безопасности очень важно, так как у каждого слоя есть свои возможные уязвимости.

Дальше в оригинале идут некторые мысли автора, ну а я предлагаю всем желающим обсудить, прокомментировать и дополнить список навыков и необходимых Full Stack разработчику знаний и умений. Спасибо за внимание.
@slawter
карма
12,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (14)

  • +3
    Уважаемые пользователи, которым по какой-то причине не понравился пост, и вы решили заминусовать, если вам не трудно, то пожалуйста выскажите свое негативное мнение в комментариях.
    • –3
      Ну, возможно не понравилось, по причине того что тут говоритесь разработчик, подразумевается веб разработчик. И, такой разработчик драйверов думает — дай почитаю, что за звери такие full stack developer-ы, может и мне нужно — а тут ему с первых предложений — фроненд, бд, сервер :)
      • +3
        Прошу прощения у разработчиков драйверов, но написав статью, я рассчитывал на несколько другую реакцию, например на комментарий, что если разработчик не умеет писать драйвера, то он никакой ни Full Stack:)
        • +1
          если разработчик не умеет писать драйвера, то он никакой ни Full Stack:)
          бывают же вакансии типа «full stack embedded/linux magician/engineer» или «full stack mobile developer». Далекие от web разработки люди не в курсе, что «full stack developer» по может поумолчанию обозначать web. Вот они идут сюда, каждый думая о своем стэке, а вы на них html и css как ушат воды. Если минусить не перестанут, попробуйте добавить слово «Web» в заголовок. скорее всего поможет.
          • 0
            Большое спасибо за совет, чтобы избежать недоразумений, так и сделал.
    • –2
      Возможно минусуют, потому что эту статью уже несколько раз обсуждали в ИТ-подкастах и на нее сделано множество переводов?
      <sarcasm>Или многие видят «Full Stack» и думают, что это какой-то аналог OpenStack (а то и круче него), открывают статью в надежде, а тут очередные разговоры о вечном?</sarcasm>

      Но всеравно спасибо за перевод! Статья отличная. Есть над чем подумать.

      • –1
        Возможно и так, тема давняя, о чем я и упомянул в самом начале, есть размышления на этот счет и из 2008, и из 2010 бородатых лет. Но на хабре я не нашел подобных статей, потому и решил запостить.
  • +4
    Я думаю, что я достаточно близок, но не владею CSS. И не знаю никого, кто умеет всё одинаково хорошо. И не думаю, что это реально возможно.
  • +15
    Full-stack developer — это еще одна попытка «работодателей» получить задешево, то, что никогда дешевым быть не могло. Это такой же психологический прием как и «вы же профессионал! Вы же профессионал?»
    • +1
      по моему опыту, full stack developer — готовый кандидат в tech lead, вряд ли это относится к «дешево».
  • +2
    Я всегда считал, что нормальный Senior Developer должен прекрасно разбираться в первых четырех пунктах, и хотя бы в общих чертах понимать что-то в остальных. Ну и драйвера уметь писать.
    • 0
      черт :)
  • –2
    Стремлюсь как раз к этому.

    Но кажется у меня набирается по чуть-чуть от всего: чуть-чуть администрирования win/nix, чуть-чуть сетей, чуть-чуть C, чуть-чуть побольше PHP, чуть-чуть менеджмента и т.д.
  • 0
    а вот еще один пост по теме radar.oreilly.com/2014/04/full-stack-developers.html

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.