Рубрики
Без рубрики

Что спросить себя перед добавлением пакета NPM к вашему проекту

Джейкоб волнул, что спросить себя перед добавлением пакета NPM к вашему проектному кредиту Andreas Gursky, Amazon, 2016One величайших вещей о том, чтобы быть разработчиком JavaScript сегодня – это способность использовать свою невероятно богатую экосистему. С почти миллионом пакетов в реестре NPM, это

Автор оригинала: FreeCodeCamp Community Member.

Джейкоб Вурел

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

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

TL; доктор

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

Насколько это популярно? Посмотрите на еженедельные загрузки на NPM & Stars на Github.

Как это зрелое? Посмотрите на дату первой опубликованной версии на НПМ и количество открытых вопросов против закрытых вопросов на GitHub.

Это активно поддерживается? Посмотрите на историю совершения и Совершает и Частота кода Диаграммы (под вкладкой Insights) на Github. Проверьте дату «Последнее опубликованное» на НПМ.

Насколько оно большое? Проверьте размер пучка на Bundlephobia Отказ

У него есть тестовое покрытие? Проверьте наличие значков покрытия на NPM/Github. Откройте тестовые файлы.

Насколько это популярно?

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

И хотя эти две метрики могут дать вам пульс на том, сколько тяги есть проект в сообществе, вы должны определенно принять эти номера с зерном соли. Имейте в виду, что звезда GitHub в основном эквивалентна «вроде» на сайтах социальных медиа, и многие разработчики посудут, как конфеты. Я виновен в этом сам, и только потому, что я снял REPO, не означает, что я проверил качество кода и дал ему свое полное одобрение.

Когда дело доходит до загрузки, даже NPM допускает их статистику « наивно по дизайну », поскольку они включают загрузки на автоматизированные серверы сборки, зеркала и ботами. Тем не менее, вы должны начать где-то, так что вы могли бы получить этот вопрос с дороги. Просто осознайте, что это, наверное, наименее важное (и часто самое вводящее в заблуждение!) Фактор, поэтому обязательно сделайте свою должную осмотрительность и определенно не останавливайтесь там.

Как это зрелое?

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

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

Следующий и, вероятно, лучший показатель зрелого проекта – это количество открытых и закрытых проблем на Github. Обычно это хорошая идея, чтобы посмотреть на эти два числа вместе, так как не совсем ничего не значит без другого. Большое количество открытых вопросов не обязательно плохо, если количество закрытых вопросов даже выше. Чтобы дать вам кадр оформления, поскольку это написание, Реагировать имеет около 400 открытых вопросов, но более 6500 закрыто. Node.js Имеет около 600 открытых вопросов и почти 9000 закрытых.

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

Это активно поддерживается?

Если только проект уже не очень зрелый и не добавляет новые функции, или делает что-то относительно небольшое в объеме, важно, чтобы он активно поддерживал. Помните правило 80/20? Единственное Way Software идет от нового и экспериментального для стабильного и зрелого – это активное обслуживание, означают регулярные исправления ошибок и дополнительные улучшения.

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

Если вы похожи на меня, и вы предпочитаете видеть этот вид визуализации данных, нажмите на вкладку Insights, где вы можете GLAN всевозможные данные о репо. Я мог бы написать целое сообщение в блоге об этой функции в одиночку, поэтому все, что я собираюсь сказать, это, если вы еще не использовали это, прекратите чтение, перейдите на страницу Github Project с открытым исходным кодом и начните играть с ним Отказ

Я особенно люблю Совершает и Частота кода Графики, поскольку они говорят мне с первого взгляда, насколько проект работает над. Помните, хотя, только потому, что нет много последних коммит, не означает, что код нельзя доверять. Напротив, это иногда признак зрелости – на скриншоте выше, частота Code Chard для Express является отличной визуализацией для того, как выглядит зрелый проект.

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

Насколько оно большое?

Никто не любит раздутый пучок. И хотя легко продолжать добавлять модули узлов в проект, это может прийти на Стоимость Отказ Минификация, сжатие и кодовое распределение очень помогает, но в конце дня все сводится к тому, сколько JavaScript вы отправляете клиенту.

Мой ходи в ресурс для этого Bundlephobia , прекрасный сайт, который не только показывает вам размер пакета пакета NPM, но всевозможные другие причудливые вещи. На фото выше, вы можете увидеть предполагаемое время загрузки в медленных сетях, эволюцию размера пучка по ходу разных версий и состав зависимостей. Он также скажет вам, оптимизирован, если пакет оптимизирован, чтобы использовать дерево, встряхивая деревьями с современными блоками, такими как WebPack, и даже предлагает подобные модули, с статистиками, сравнивающими, как они составляют размеры!

В идеале вы хотите использовать модули с небольшим размером и небольшим количеством зависимостей, если таковые имеются. Конечно, размер является относительным, поэтому убедитесь, что вы сравниваете яблоки к яблокам – если вы смотрите на библиотеку графиков, например, убедитесь, что вы сравниваете его с другими библиотеками Charting (которые, как правило, находятся на большем конце спектра).

У него есть тестовое покрытие?

Это может показаться очевидным, но всегда, всегда, всегда проверяя на тестовое покрытие. Код вы не можете проверить, это код, который вы не можете доверять.

В наши дни, гораздо проще получить высокую картину освещения, благодаря инструментам, как Комбинезоны и Кодеков – Какое покрытие треки со временем и предоставляет авторы блестящими значками, которые они могут с гордостью отображать на своих страницах GitHub и NPM. Помните, хотя этот тестовый охват инструментов только проверяет, сколько кода выполняется во время тестов и может быть вводить в заблуждение во время. Если вы действительно хотите спуститься в Nitty-Gritty, нет заменителя для открытия тестовых файлов и чтение сквозных спецификаций.

И конечно …

Следует ли это семантической версию?

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

Какая лицензия?

Если бы вы были рядом в течение всего РЕАКТИВНОСТЬ ЛИЦЕНЗИИ РЕБЕНОЙ , вы, вероятно, узнали, что это хорошая идея, чтобы проверить лицензию, прежде чем начать использовать любое программное обеспечение с открытым исходным кодом, чтобы некоторые, казалось бы, доброжелательную организацию пытается вытащить на вас. Вы можете найти их в исходном коде, обычно в корневом каталоге проекта. Ищите разрешительные лицензии, такие как Лицензия MIT , в котором в основном позволяет делать все, что вы хотите, кроме, подать в суд, автор. Подробнее о лицензиях здесь Отказ

Это верно, прочитайте исходный код!

Хотя вопросы, обсуждаемые выше, – это хороший способ получить взгляд на общее состояние здоровья пакета NPM, наилучшим способом определить качество кода на любом проекте, на самом деле посмотрите на исходный код. Конечно, это требуется значительно больше времени, чем проницательно через страницы NPM/GitHub проекта/Github/Bundlephobia, поэтому вы вряд ли сделаете это для каждой зависимости. Однако, вероятно, окупается, если модуль имеет решающее значение для вашего приложения. Это может даже спасти вас от главной головной боли позже, если вы обнаружите, что некоторые выключатели сделки, который в противном случае, возможно, осталось незамеченным.

ПРИМЕЧАНИЕ На 3-х компонентах интернет-пользовательских интерфейсов

Если вы используете компонент, приводвая передней конечной структурой, например, React, Vue или Angular, Chance У вас есть 3-й компонент пользовательского интерфейса для вечеринок в вашем Package.json зависимости. И хотя все вопросы, поднятые в этом посте, все еще применяются, компоненты пользовательского интерфейса требуют некоторого дополнительного контроля, которые я планирую по адресату в будущем посте, поэтому оставайтесь на месте!