Express.js влюблен в @hotpockets

Хотите знать, почему ваша веб-страница так долго загружается в эти дни?

На днях я дурачился на GitHub, просматривая некоторые библиотеки кода, о которых я более подробно изучил на этой неделе. Мне было любопытно, с чем связаны эти значки на его странице README, поэтому я открыл самый интересный (подчеркнутый ниже).

Их бизнес-модель связана с постом на Medium здесь, написанным Jordan Scales.

TL;DR

Джордан подробно описывает, как многие из самых популярных пакетов JavaScript, используемых сегодня, были замусорены ненужными зависимостями кода.

От модуля, который просто экспортирует изображение Гая Фиери до модуля, который полностью загружает Британскую энциклопедию, эти упущения трудно объяснить простой наивностью. На самом деле Express.js использовал API Твиттера, чтобы поставить лайк сообщению из Hot Pockets для вас. Кто этого не замечает?

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

Этот феномен бесполезного кода (или «мертвого кода») все еще жив и здоров, вызывая ненужную нагрузку на все сетевые подключения. Разработчики, прочтите статью. Конечно, он был написан и опубликован в 2016 году, но сегодня его призыв к действию как нельзя более актуален.

Подробнее об антипаттерне Dead Code и о том, как его исправить, читайте на SourceMaking.

«Вам может и не понадобиться — вставьте какую-нибудь новомодную штуку-»

Мы, разработчики, всегда ищем следующую версию JS, интерфейсный фреймворк или упаковщик, чтобы сделать нашу работу проще, более «инновационной» или полнофункциональной. Если бы это было не так, мы бы перестали разрабатывать новые вещи для себя.

Становится нелогичным делать шаг назад и спрашивать, почему мы используем новый стандарт или пакет. У нас, по-видимому, был способ сделать это до этой новой вещи. Это было неадекватно? Потребовалось ли это больше строк кода, больше времени, больше тестирования? Почему мы предпочитаем новое старому, кроме того, что оно новое.

Многие из нас хотя бы заглядывали в Вам может не понадобиться JQuery, Вам не нужен JavaScript, Вам не нужен Lodash/Underscore или Вам не нужен графический интерфейс. Сейчас в сети много таких репозиториев и статей.

На самом деле мне никогда не приходилось использовать jQuery для чего-либо. Мне никогдане приходилось использовать клиент с графическим интерфейсом для Git. На самом деле мне никогда не приходилось использовать Lodash или Underscore, но я все равно использовал их (кроме jQuery).

Каждое дополнение, которое мы не используем, намного быстрее веб-страницы или приложения.

Давайте начнем с подхода к плагинам, более похожего на обращение к подозреваемому в суде: Бесполезны, пока не доказано, что они полезны.

Всем удачного кодинга!

Дэниел Сендер — разработчик программного обеспечения, студент и писатель из DFW, штат Техас. Узнайте, чем он занимается, и присоединяйтесь к нему в Linkedin, Instagram или в его блоге.

Первоначально опубликовано на daninworld.wordpress.com 19 августа 2018 г.