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

Если вы хоть раз занимались Node или интерфейсным JavaScript, вы, вероятно, знакомы с NPM и знаете, что есть сотни тысяч модулей на выбор.

Аналитический паралич описывает индивидуальный или групповой процесс, когда« чрезмерный анализ или чрезмерное обдумывание ситуации может привести к параличу поступательного движения или принятия решения , что означает, что решение или план действий не принимаются». - Википедия

NPM (диспетчер пакетов узлов)

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

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

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

Зависимости проекта

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

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

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

Когда я должен использовать один?

Допустим, вы разрабатываете «следующее отличное приложение». Вы сталкиваетесь с проблемой и решаете, что не хотите или не знаете, как писать ту или иную функцию.

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

«Должна быть классная внешняя библиотека, которую кто-то уже написал».

Хорошо, вы, вероятно, правы, но имейте в виду, что один из недостатков NPM заключается в том, что в реестре нет процесса проверки для подачи. Это означает, что найденные там пакеты могут быть некачественными, небезопасными или вредоносными.

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

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

Вместо того, чтобы тратить время на поиски в Google, просмотр npmjs.org и тратить больше времени, НЕ создавая свое приложение, было бы здорово знать, какие модули и когда выбрать. - Кори Клири

Поиск подходящего пакета NPM для вас

Погуглив или выполнив поиск на веб-сайте NPM, вы можете найти свои первоначальные кандидаты в пакеты. Как только вы их найдете, веб-сайт NPM предоставит вам информацию об этих пакетах.

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

Критерий выбора

Прежде чем выбрать и использовать пакет, вы можете рассмотреть следующие параметры.

Популярность

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

Спроси себя:

  • Сколько скачиваний еженедельно?
  • Зависят ли от этого другие важные пакеты?
  • Сколько пользователей GitHub использовали его?
  • Сколько у него звезд на GitHub?
  • Запустили ли его проверенные разработчики и сопровождающие?

Авторы

Проверьте количество участников каждого проекта. Больше взглядов на код - это только хорошо.

Спроси себя:

  • Сколько участников?
  • Способствуют ли этому проверенные разработчики?

Обслуживание

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

Также проверьте количество выпусков. Пакет с большим количеством выпусков - хороший показатель того, что он более активен.

Спроси себя:

  • Как недавно он обновлялся?
  • Как часто бывают обновления?
  • Сколько сейчас выпусков?
  • Закрываются ли проблемы на GitHub или одни и те же проблемы остаются открытыми в течение длительного времени?

Размер

Размер пакета увеличивается с увеличением объема кода и используемых им зависимостей. Большой размер пакета может повлиять на ваше приложение и его производительность.

Чтобы этого избежать, вы можете проверить размер пакета перед его установкой. Вы можете сделать это на веб-сайте NPM или с помощью отличного инструмента под названием BundlePhobia, который поможет вам увидеть, соответствует ли пакет вашим требованиям к производительности.

Спроси себя:

  • Приемлем ли размер упаковки?
  • Время загрузки слишком велико для вашего варианта использования?

Качество

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

Спроси себя:

  • Хорошо ли задокументирован пакет и есть ли у него собственный веб-сайт?
  • Есть ли у модуля тестовое покрытие?
  • Есть ли в пакете уязвимости?

Сравнение похожих пакетов

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

тенденции npm

Один из лучших инструментов для сравнения пакетов - npm Trends. Этот инструмент от Джона Поттера позволяет искать пакеты и видеть на графике количество загрузок вместе с временной шкалой, статистикой GitHub и т. Д.

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

NPMCompare

Еще один отличный инструмент - NPMCompare. Он показывает очень подробное параллельное сравнение двух пакетов и подчеркивает, какой пакет является лучшим по каждой метрике (сообщенные проблемы, среднее время обновления, размер и т. Д.). Наконец, дается сводная оценка.

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

Заключение

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

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

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

Хорошего дня! Спасибо за прочтение!