Почему использование новейших классных стеков (не всегда) означает, что вы собираетесь писать лучший код

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

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

Мне понравилось все в нем: настраиваемые элементы, маршрутизация, сервисы, каналы / фильтры и так далее. Работать стало веселее и стало все понятнее.

И чем больше я любил эти инструменты, тем более элитарным я становился. И, оглядываясь назад, я определенно не горжусь собой.

Хотя я чувствую, что избавился от этих чувств за последние несколько лет, я вижу, что то же самое происходит каждый день в тех местах, где я работал, и, очевидно, в еще большей степени в Интернете на таких сайтах, как Github, Reddit, чаты и т. Д.

Техническая элитизм - это плохо

Это действительно так.

Что я имею в виду? Для меня технический элитизм - это чувство человека, который смотрит свысока на стопки, которые он не знает или не любит, и основывает свое мнение на этом и только на этом.

Технический элитист:

  • смеяться над вами за то, что вы используете Angular вместо Vue или за использование React вместо Inferno (или наоборот).
  • оцените свой выбор для (все же!) тестирования с Jasmine, а не Jest, Protractor вместо Cypress
  • жаловаться на то, что вы используете точку с запятой (позор!)
  • … Как правило, смотрите на вас как на разработчика, не зная, с каким кодом вы работаете и что делает ваш продукт

… Но веб-фреймворки - это здорово, не так ли?

Ага! Как я уже сказал, я тоже большой поклонник.

Несмотря на неоднозначную усталость от Javascript, нельзя отрицать, что новейшие доступные инструменты предоставляют потрясающие функции и функции, которые нам нравятся.

Да, фреймворки предоставляют:

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

Но ... важно помнить, что фреймворки предоставляют только часть множества строк кода, составляющих проект.

Я видел, как проекты React закодированы хуже, чем некоторые, использующие jQuery. Или проекты Angular 1.x, написанные лучше других с использованием последней версии Angular.

Почему?

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

Они не использовали:

  • шаблоны проектирования
  • тесты любого рода
  • обзоры кода
  • … Просто базовые методы разработки программного обеспечения

Этому рамки не могут научить. Они очень помогают, они дают рекомендации и примеры, но не намного. Для масштабных проектов нужно больше думать, а это непростая задача.

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

Что действительно важно?

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

Но помимо стека, используемого в компании, в настоящее время у меня есть более широкий набор вопросов для потенциальных сотрудников или людей, с которыми я встречаюсь в сети:

  • ты пишешь тесты? модульные, функциональные, сквозные тесты? насколько это важно для тебя?
  • какие шаблоны проектирования вы используете? [пожалуйста, не говорите, что вы ничего не используете, ПОЖАЛУЙСТА]
  • каков ваш трубопровод?
  • как ты делаешь Agile?
  • сколько у вас унаследованного кода? какой план существует, чтобы исправить это?
  • вы вообще способствуете открытому исходному коду?
  • что такое обзоры кода?
  • какова бизнес-стратегия?

Сопровождается ли ваш крутой стек достойным опытом разработки программного обеспечения?

Тебя это вообще волнует?

Первоначально опубликовано на https://frontend.consulting.