Специально для предприятий

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

Первое, что обычно делают разработчики, — проверяют звездный рейтинг проекта. Несмотря на то, что это может указывать на некоторый интерес со стороны сообщества, это не всегда может быть подлинным. Полезным инструментом для отслеживания роста проекта является star-history.com, который позволяет различать органический рост и всплески после маркетинговых кампаний. В этой статье я расскажу о главных факторах, которые следует учитывать при изучении OSS.

Юридический

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

Документация

Необходима хорошая документация для пользователей и разработчиков. Спросите себя: Являются ли предварительные требования программного обеспечения четко определенными, простыми для получения и развертывания, и соответствуют ли они вашим требованиям? Есть ли только документация по API или есть примеры кода/учебники? Понятно ли, что содержит каждая версия?

Живость

Активно ли он разрабатывается и поддерживается? Добавляют ли сопровождающие новые функции или просто исправляют ошибки и уязвимости в системе безопасности?

Для этого у вас есть пульс, где вы можете увидеть статистику за последний месяц/неделю: сколько новых PR было открыто и объединено, например, facebook/reactpulse:

Вы можете убедиться, что количество коммитов в последнее время по какой-то причине не упало, перейдя в аналитикаучастники, например, хелм/хелм коммиты:

Наличие активного и многочисленного сообщества пользователей/разработчиков может быть положительным показателем.

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

Версии

Насколько зрел проект? Это в альфе? Бета? Предрелиз? Проверьте версию OSS и посмотрите, насколько часты и активны обновления. Если ошибки активно исправляются, периодически производятся обновления и т. д. Мы должны помнить, что номера версий мало что значат, когда речь идет об OSS. Версия 1.0 OSS не обязательно должна быть программным обеспечением для производственного использования. Нет никаких норм, связанных с номерами версий, и поэтому проверка правильной версии путем чтения и исследования в одиночку помогает определить последнюю и текущую версию.

Поддерживать

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

Вклад

В какой-то момент может наступить момент, когда вы обнаружите ошибку, критическую для вас, но менее важную для сообщества OSS, и вам нужно будет исправить ее самостоятельно. Для этого вам нужно будет разветвить репо, собрать/отладить код и создать PR с вашими изменениями. Количество вилок указывает на потенциальных внешних участников, таких как вы. Проверьте, как быстро PR вливается в репо. У них есть шаблон PR? Насколько легко собрать код и есть ли у него соответствующая документация?

Безопасность

Проверьте открытые уязвимости безопасности в открытых проблемах. Сканируйте пакет с помощью инструментов SAST, таких как snyk.io. Не склоняйтесь к автоматическому принятию любых обновлений исходного кода. Если да, то сначала прочитайте рассказ о библиотеке colors.js.

Бонусные факторы

Тестовое покрытие

Какое у него покрытие? Некоторые репозитории публикуют свой отчет codcov с меткой в ​​​​Readme, например vuejs/vue:

Владелец

Владелец иногда может указать, насколько серьезно сопровождающие относятся к коду, будь то предприятие, такое как facebook/react, или частная компания, такая как igorgov/auto-inc-ver.

Принятие библиотеки

Какие продукты используют его? Сколько у него загрузок?

Сопровождающие

Вы можете провести комплексную проверку сопровождающих, перейти к их профилю на GitHub и найти их в LinkedIn. Узнайте, где они работают и насколько они опытны в использовании языков, технологий и предметной области.

Тенденции использования

Интересно узнать, выросла ли популярность библиотеки или нет. Для этого вы можете использовать Google Trends и узнать об эволюции библиотеки на протяжении многих лет. Вот тренд React javascript library:

Краткое содержание

Вот жизненно важные вопросы, которые вы должны задать себе, прежде чем интегрировать OSS в свой проект:

  1. Подходит ли мне лицензия?
  2. Доволен ли я документацией?
  3. Буду ли я продолжать получать исправления ошибок и обновления безопасности?
  4. Это производственное использование программного обеспечения?
  5. По каким проектам она принята и как?
  6. Насколько поддерживает сообщество?
  7. Сможете ли вы внести свой вклад в репо?
  8. Какие открытые уязвимости безопасности существуют?

Ресурсы

R.B.Tekale, Выбор программного обеспечения с открытым исходным кодом