Почему использование новейших классных стеков (не всегда) означает, что вы собираетесь писать лучший код
С начала этого десятилетия интерфейсные веб-фреймворки кардинально изменили способ создания приложений, имея как плюсы, так и минусы.
С тех пор, как я прочитал пример задач на старом веб-сайте Angular, я стал его большим поклонником, о чем вы, возможно, узнаете, прочитав некоторые из моих предыдущих статей.
Мне понравилось все в нем: настраиваемые элементы, маршрутизация, сервисы, каналы / фильтры и так далее. Работать стало веселее и стало все понятнее.
И чем больше я любил эти инструменты, тем более элитарным я становился. И, оглядываясь назад, я определенно не горжусь собой.
Хотя я чувствую, что избавился от этих чувств за последние несколько лет, я вижу, что то же самое происходит каждый день в тех местах, где я работал, и, очевидно, в еще большей степени в Интернете на таких сайтах, как Github, Reddit, чаты и т. Д.
Техническая элитизм - это плохо
Это действительно так.
Что я имею в виду? Для меня технический элитизм - это чувство человека, который смотрит свысока на стопки, которые он не знает или не любит, и основывает свое мнение на этом и только на этом.
Технический элитист:
- смеяться над вами за то, что вы используете Angular вместо Vue или за использование React вместо Inferno (или наоборот).
- оцените свой выбор для (все же!) тестирования с Jasmine, а не Jest, Protractor вместо Cypress
- жаловаться на то, что вы используете точку с запятой (позор!)
- … Как правило, смотрите на вас как на разработчика, не зная, с каким кодом вы работаете и что делает ваш продукт
… Но веб-фреймворки - это здорово, не так ли?
Ага! Как я уже сказал, я тоже большой поклонник.
Несмотря на неоднозначную усталость от Javascript, нельзя отрицать, что новейшие доступные инструменты предоставляют потрясающие функции и функции, которые нам нравятся.
Да, фреймворки предоставляют:
- инструменты для повторного использования кода, как никогда раньше
- лучшие варианты тестирования
- огромное количество сторонних библиотек
Но ... важно помнить, что фреймворки предоставляют только часть множества строк кода, составляющих проект.
Я видел, как проекты React закодированы хуже, чем некоторые, использующие jQuery. Или проекты Angular 1.x, написанные лучше других с использованием последней версии Angular.
Почему?
Вероятно, это потому, что разработчики, написавшие проект, были не так хороши в архитектуре и проектировании больших и сложных кодовых баз.
Они не использовали:
- шаблоны проектирования
- тесты любого рода
- обзоры кода
- … Просто базовые методы разработки программного обеспечения
Этому рамки не могут научить. Они очень помогают, они дают рекомендации и примеры, но не намного. Для масштабных проектов нужно больше думать, а это непростая задача.
Некоторые из нас думают, что просто используя новейшие технологии, мы избавляемся от размышлений, проектирования и проектирования каждого нажатия клавиши. Но, как выясняется, это неправильно.
Что действительно важно?
Мне не стыдно сказать, что я бы не взялся за старый проект в наши дни, если бы не был уверен, что существует план по продвижению вперед с новыми технологиями.
Но помимо стека, используемого в компании, в настоящее время у меня есть более широкий набор вопросов для потенциальных сотрудников или людей, с которыми я встречаюсь в сети:
- ты пишешь тесты? модульные, функциональные, сквозные тесты? насколько это важно для тебя?
- какие шаблоны проектирования вы используете? [пожалуйста, не говорите, что вы ничего не используете, ПОЖАЛУЙСТА]
- каков ваш трубопровод?
- как ты делаешь Agile?
- сколько у вас унаследованного кода? какой план существует, чтобы исправить это?
- вы вообще способствуете открытому исходному коду?
- что такое обзоры кода?
- какова бизнес-стратегия?
Сопровождается ли ваш крутой стек достойным опытом разработки программного обеспечения?
Тебя это вообще волнует?
Первоначально опубликовано на https://frontend.consulting.