Выбор подходящего пакета из бесконечного количества модулей может быть непростой задачей. Это может помочь
Если вы хоть раз занимались 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. Он показывает очень подробное параллельное сравнение двух пакетов и подчеркивает, какой пакет является лучшим по каждой метрике (сообщенные проблемы, среднее время обновления, размер и т. Д.). Наконец, дается сводная оценка.
Он также содержит подробное описание сравнения, которое вы можете отправить своему менеджеру, чтобы объяснить, почему вы выбрали этот конкретный пакет по сравнению с другим.
Заключение
Хотя использование готовых пакетов, переданных на аутсорсинг, не всегда решает ваши проблемы, часто проще полагаться на готовые инструменты, чем заново внедрять решение с нуля.
Поскольку репозитории программного обеспечения с открытым исходным кодом стали более доступными во всем мире, для разработчиков не имело бы никакого смысла не полагаться друг на друга.
Я надеюсь, что с помощью этого руководства вы теперь лучше понимаете, как правильно выбирать пакеты для своих проектов.
Хорошего дня! Спасибо за прочтение!