SlideShare a Scribd company logo
1 of 75
Download to read offline
Open-Source Software.
Что в мешке?
RAILS CLUB 2016
Sergey Dolganov, Evil Martians
Опасности стороннего кода
https://robots.thoughtbot.com/to-gem-or-not-to-gem
— Вы ничего не знаете о качестве и безопасности кода.
— Вы ничего не знаете о его поддержке в дальнейшем.
— Вы не знаете, сколько ресурсов потребует в работе
сторонний гем.
— Вам необходимо использовать гем в соответствии с его
лицензией.
— Вам придется мириться с его DSL/API.
— Возможно, вам придется тащить слишком большой
багаж.
1. На Rubygems порядка 100 000 гемов, при этом большая
часть загрузок приходится на ~1%
Проблемы open-source зависимостей
2. У Node.js, передовика open-source, дела обстоят хуже:
“The average open source node.js project has a dependency
graph more than 3 times bigger than the average ruby
project!”
Проблемы open-source зависимостей
https://twitter.com/teabass/status/763325955486146560
1. Ruby Toolbox — альтернативы, популярность, динамика
2. RubyGems — информация о версиях
3. Github — сommits, issues & pulls, контрибьюторы
4. CodeClimate — качество кода
5. coveralls.io — покрытие документацией
6. Rubocop — cоответствие стилю
Стандартный цикл оценки
Ruby OSS-проекта
— Rubygems
— GitHub
— Ruby Toolbox
— Bestgems.org
— Issue Stats
— Dependency CI & Libraries.io
— RecordNotFound.com
Инструменты для подбора
сторонних решений
— rubocop — проверка на соответствие стилю
— simplecov, coveralls, rcov — тестовое покрытие
— yard, inch — покрытие кода документацией
— Code Climate, cane/flog/flay — качество кода
— Бейджики с загрузками за последний период или с
пометкой об устаревании кода
Инструменты для анализа
кодовой базы
Open-Source Maturity Model
https://en.wikipedia.org/wiki/OpenSource_Maturity_Model
— Наличие хорошей документации
— Качественная архитектура
— Наличие инструмента взаимодействия с
потребителем/пользователем/контрибьютором
— Наличие и качество тестового покрытия
— Наличие Roadmap (или долгосрочных планов развития)
— Количество открытых багов
— Число подписчиков на mailing list
Примеры метрик
для оценки зрелости
http://www.dmst.aueb.gr/dds/pubs/conf/2008-OSS-qmodel/html/SGSS08.htm
1. Популярность проекта
2. Качество поддержки
3. Характеристики кода
4. Характеристики документации
Направления «созревания»
open-source
1. Подвижность проекта
— количество и динамика изменений в коде
— релизы
— открытые/закрытые Pulls & Issues
2. Участники проекта
— сколько контрибьюторов
— кто и в чем участвует
— сколько загрузок
Ключевые группы метрик
поддерживаемости
1. Rubygems:
— зависимости
— релизы
— ссылки на исходники, wiki
— описание
— другие метаданные из gemspec
2. Bestgems:
— данные о загрузках за каждый день
— данные о рейтинге по загрузкам за каждый день
Данные из открытых источников (1/2)
3. Github:
— pull requests (статусы, комментарии, пользователи,
даты)
— issues (статусы, комментарии, пользователи, даты)
— commits за последний год
— contributors
— и другая интересная информация
Данные из открытых источников (2/2)
Open-Source Software
Certification Service
Ossert
Hanami vs Sinatra, Padrino, Ramaze
…
и Rails
Отчет
1. Hanami — 46,27%
2. Sinatra — 29,47%
3. Padrino — 23,27%
4. Ramaze — 1,05%
Рейтинг по числу коммитов
— Sinatra — уровень стабилизировался с 2014
— Padrino — спад начиная с 2014
— Hanami — рост с 2014, пик в конце 2015
Треды по пользователям
создающим Issues
1. Sinatra — 49,84% (~100 активных участников за квартал)
2. Hanami — 27,71% (~85)
3. Padrino — 21,6% (<35)
4. Ramaze — 0,84%
Рейтинг по количеству
активных участников
1. Hanami — 38,56% (~70%)
2. Padrino — 30,09% (~50%)
3. Sinatra — 27,87% (~50%)
4. Ramaze — 0,75%
Рейтинг по проценту
закрытых Issues
1. Padrino — 51,75% (~60 issues за квартал)
2. Hanami — 23,47% (~35)
3. Sinatra — 22,08% (~30)
4. Ramaze — 3,48%
Рейтинг по числу Issues
— Hanami — лидер по коммитам и проценту закрытия Issues
— Sinatra — лидер по числу вовлеченных в проект людей
— Padrino — лидер по потоку Issues
Предварительный итог
1. Rails — 83,76%
2. Sinatra — 8,84%
3. Hanami — 4,08%
4. Padrino — 2,6%
Рейтинг по количеству
активных участников
1. Rails — 63,85%
2. Sinatra — 35,74%
3. Padrino, Hanami — <1%
Рейтинг по числу загрузок
Slim vs Haml
Отчет
1. Slim — 54,77% (~20)
2. Haml — 45,23% (~16-17)
Рейтинг по числу fork'ов
1. Slim — 68,29% (~180)
2. Haml — 31,71% (~80)
Рейтинг по числу «звезд» на GitHub
1. Slim — 55,94% (~180)
2. Haml — 44,06% (~80)
Рейтинг по числу
активных участников
1. Slim — 72,23% (~85%)
2. Haml — 27,77% (~20%)
Рейтинг по проценту
закрытия Pull Request'ов
1. Haml — 68,67% (~25)
2. Slim — 31,33% (~10)
Рейтинг по числу Pull Request'ов
1. Haml — 90,65% (max — 15)
2. Slim — 9,35% (max — 2)
Рейтинг по числу
старых Pull Request'ов
1. Slim — 80% (36)
2. Haml — 20% (9)
Рейтинг по числу
коммитов за год
1. Haml — 72,29% (6,260,388)
2. Slim — 27,71% (2,903,900)
Рейтинг по числу загрузок
— У обоих проектов невысокая активность разработки
— Haml — лидер по количеству загрузок и числу реквестов
— Slim — лидер по количеству участников и их вкладу
Итог
Rspec vs Minitest
Отчет
1. Minitest — 57,36% (~194M загрузок за прошедший год)
2. Rspec — 42,64% (~175M)
Рейтинг по числу загрузок
1. Minitest — 79,25% (~75 “звёзд” каждый квартал)
2. Rspec — 20,75% (~20)
Рейтинг по числу «звезд» на GitHub
1. Rspec — 64,07% (~80 человек каждый квартал)
2. Minitest — 35,93% (~50)
Рейтинг по количеству
активных участников
1. Rspec — 60,54% (~90%)
2. Minitest — 39,46% (~65%)
Рейтинг по проценту
закрытия Pull Request'ов
1. Rspec — 78,13% (50-60 Pull Request'ов в среднем)
2. Minitest — 21,87% (~20)
Рейтинг по количеству
Pull Request'ов
— Minitest — лидер по количеству загрузок и “звёзд”
— Rspec — лидер по количеству участников и их вкладу
Итог
Ossert
ossert.evilmartians.io/gon
Ossert
ossert.evilmartians.io/gon
— Инструмент оценки зрелости и поддерживаемости
проекта на Ruby в полноценном режиме
— Анализ зависимостей
— Агрегация с метриками по качеству кода и документации
— Рекомендации проектам по шагам для роста зрелости
— Поддержка Elixir, Python и других языков
Дальнейшие шаги
1. Находим альтернативы на Ruby Toolbox
2. Выбираем достаточно зрелые проекты, тут поможет
Ossert или другой способ разностороннего анализа
3. Выбираем тот, проект чей DSL ближе, не забывая про
рекомендации он Thoughtbot
«Зрелый» цикл оценки
Ruby OSS-проекта
Присоединяйтесь!
github.com/ossert/ossert
github.com/ossert/ossert-web
@ss_dolganov
@evilmartians
sclinede@evilmartians.com

More Related Content

Viewers also liked

Modul pembelajaran simulasidgx
Modul pembelajaran simulasidgxModul pembelajaran simulasidgx
Modul pembelajaran simulasidgxramla_paic
 
サンティアゴ巡礼(Santiago Pilgrimage)
サンティアゴ巡礼(Santiago Pilgrimage)サンティアゴ巡礼(Santiago Pilgrimage)
サンティアゴ巡礼(Santiago Pilgrimage)Takehiro Wakebe
 
[SRS] BUBW - Let's reduce stigma in NUS v3
[SRS] BUBW - Let's reduce stigma in NUS v3[SRS] BUBW - Let's reduce stigma in NUS v3
[SRS] BUBW - Let's reduce stigma in NUS v3Charmaine Lim
 
Ejemplos de los signos de puntuación
Ejemplos de los signos de puntuaciónEjemplos de los signos de puntuación
Ejemplos de los signos de puntuaciónYamilka Chan Reyes
 

Viewers also liked (8)

Modul pembelajaran simulasidgx
Modul pembelajaran simulasidgxModul pembelajaran simulasidgx
Modul pembelajaran simulasidgx
 
photo page
photo pagephoto page
photo page
 
サンティアゴ巡礼(Santiago Pilgrimage)
サンティアゴ巡礼(Santiago Pilgrimage)サンティアゴ巡礼(Santiago Pilgrimage)
サンティアゴ巡礼(Santiago Pilgrimage)
 
[SRS] BUBW - Let's reduce stigma in NUS v3
[SRS] BUBW - Let's reduce stigma in NUS v3[SRS] BUBW - Let's reduce stigma in NUS v3
[SRS] BUBW - Let's reduce stigma in NUS v3
 
Mecanismos de participacion
Mecanismos de participacionMecanismos de participacion
Mecanismos de participacion
 
2035 Darshana Sayre
2035 Darshana Sayre2035 Darshana Sayre
2035 Darshana Sayre
 
Logi vision
Logi visionLogi vision
Logi vision
 
Ejemplos de los signos de puntuación
Ejemplos de los signos de puntuaciónEjemplos de los signos de puntuación
Ejemplos de los signos de puntuación
 

Similar to RailsClub 2016. Dolganov Sergey. Open-Source Software. What's in a bag?

AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013Roman Pavlushko
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Timur Shemsedinov
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.Olesya Shelestova
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...OWASP Russia
 
Кругом обман или использование стандартных протоколов для нестандартных вещей
Кругом обман или использование стандартных протоколов для нестандартных вещейКругом обман или использование стандартных протоколов для нестандартных вещей
Кругом обман или использование стандартных протоколов для нестандартных вещейAlexander Klestoff
 
Система анализа работы приложений и протоколов Riverbed Cascade
Система анализа работы приложений и протоколов Riverbed CascadeСистема анализа работы приложений и протоколов Riverbed Cascade
Система анализа работы приложений и протоколов Riverbed CascadeКРОК
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Ontico
 
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...Игорь Мызгин
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...Procontent.Ru Magazine
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Evgeny Kokovikhin
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Ontico
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
 

Similar to RailsClub 2016. Dolganov Sergey. Open-Source Software. What's in a bag? (19)

AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.RuSIEM. Потребители. Состав продукта. Отличия. Применение.
RuSIEM. Потребители. Состав продукта. Отличия. Применение.
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
 
Кругом обман или использование стандартных протоколов для нестандартных вещей
Кругом обман или использование стандартных протоколов для нестандартных вещейКругом обман или использование стандартных протоколов для нестандартных вещей
Кругом обман или использование стандартных протоколов для нестандартных вещей
 
Rails for dummies
Rails for dummiesRails for dummies
Rails for dummies
 
Система анализа работы приложений и протоколов Riverbed Cascade
Система анализа работы приложений и протоколов Riverbed CascadeСистема анализа работы приложений и протоколов Riverbed Cascade
Система анализа работы приложений и протоколов Riverbed Cascade
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Migrate!
Migrate!Migrate!
Migrate!
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
 
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 

RailsClub 2016. Dolganov Sergey. Open-Source Software. What's in a bag?

  • 1. Open-Source Software. Что в мешке? RAILS CLUB 2016 Sergey Dolganov, Evil Martians
  • 2.
  • 3. Опасности стороннего кода https://robots.thoughtbot.com/to-gem-or-not-to-gem — Вы ничего не знаете о качестве и безопасности кода. — Вы ничего не знаете о его поддержке в дальнейшем. — Вы не знаете, сколько ресурсов потребует в работе сторонний гем. — Вам необходимо использовать гем в соответствии с его лицензией. — Вам придется мириться с его DSL/API. — Возможно, вам придется тащить слишком большой багаж.
  • 4.
  • 5.
  • 6. 1. На Rubygems порядка 100 000 гемов, при этом большая часть загрузок приходится на ~1% Проблемы open-source зависимостей
  • 7. 2. У Node.js, передовика open-source, дела обстоят хуже: “The average open source node.js project has a dependency graph more than 3 times bigger than the average ruby project!” Проблемы open-source зависимостей https://twitter.com/teabass/status/763325955486146560
  • 8.
  • 9. 1. Ruby Toolbox — альтернативы, популярность, динамика 2. RubyGems — информация о версиях 3. Github — сommits, issues & pulls, контрибьюторы 4. CodeClimate — качество кода 5. coveralls.io — покрытие документацией 6. Rubocop — cоответствие стилю Стандартный цикл оценки Ruby OSS-проекта
  • 10. — Rubygems — GitHub — Ruby Toolbox — Bestgems.org — Issue Stats — Dependency CI & Libraries.io — RecordNotFound.com Инструменты для подбора сторонних решений
  • 11. — rubocop — проверка на соответствие стилю — simplecov, coveralls, rcov — тестовое покрытие — yard, inch — покрытие кода документацией — Code Climate, cane/flog/flay — качество кода — Бейджики с загрузками за последний период или с пометкой об устаревании кода Инструменты для анализа кодовой базы
  • 13. — Наличие хорошей документации — Качественная архитектура — Наличие инструмента взаимодействия с потребителем/пользователем/контрибьютором — Наличие и качество тестового покрытия — Наличие Roadmap (или долгосрочных планов развития) — Количество открытых багов — Число подписчиков на mailing list Примеры метрик для оценки зрелости http://www.dmst.aueb.gr/dds/pubs/conf/2008-OSS-qmodel/html/SGSS08.htm
  • 14. 1. Популярность проекта 2. Качество поддержки 3. Характеристики кода 4. Характеристики документации Направления «созревания» open-source
  • 15. 1. Подвижность проекта — количество и динамика изменений в коде — релизы — открытые/закрытые Pulls & Issues 2. Участники проекта — сколько контрибьюторов — кто и в чем участвует — сколько загрузок Ключевые группы метрик поддерживаемости
  • 16.
  • 17.
  • 18. 1. Rubygems: — зависимости — релизы — ссылки на исходники, wiki — описание — другие метаданные из gemspec 2. Bestgems: — данные о загрузках за каждый день — данные о рейтинге по загрузкам за каждый день Данные из открытых источников (1/2)
  • 19. 3. Github: — pull requests (статусы, комментарии, пользователи, даты) — issues (статусы, комментарии, пользователи, даты) — commits за последний год — contributors — и другая интересная информация Данные из открытых источников (2/2)
  • 21. Hanami vs Sinatra, Padrino, Ramaze … и Rails Отчет
  • 22.
  • 23. 1. Hanami — 46,27% 2. Sinatra — 29,47% 3. Padrino — 23,27% 4. Ramaze — 1,05% Рейтинг по числу коммитов
  • 24.
  • 25. — Sinatra — уровень стабилизировался с 2014 — Padrino — спад начиная с 2014 — Hanami — рост с 2014, пик в конце 2015 Треды по пользователям создающим Issues
  • 26.
  • 27. 1. Sinatra — 49,84% (~100 активных участников за квартал) 2. Hanami — 27,71% (~85) 3. Padrino — 21,6% (<35) 4. Ramaze — 0,84% Рейтинг по количеству активных участников
  • 28.
  • 29. 1. Hanami — 38,56% (~70%) 2. Padrino — 30,09% (~50%) 3. Sinatra — 27,87% (~50%) 4. Ramaze — 0,75% Рейтинг по проценту закрытых Issues
  • 30.
  • 31. 1. Padrino — 51,75% (~60 issues за квартал) 2. Hanami — 23,47% (~35) 3. Sinatra — 22,08% (~30) 4. Ramaze — 3,48% Рейтинг по числу Issues
  • 32. — Hanami — лидер по коммитам и проценту закрытия Issues — Sinatra — лидер по числу вовлеченных в проект людей — Padrino — лидер по потоку Issues Предварительный итог
  • 33.
  • 34. 1. Rails — 83,76% 2. Sinatra — 8,84% 3. Hanami — 4,08% 4. Padrino — 2,6% Рейтинг по количеству активных участников
  • 35.
  • 36. 1. Rails — 63,85% 2. Sinatra — 35,74% 3. Padrino, Hanami — <1% Рейтинг по числу загрузок
  • 38.
  • 39. 1. Slim — 54,77% (~20) 2. Haml — 45,23% (~16-17) Рейтинг по числу fork'ов
  • 40.
  • 41. 1. Slim — 68,29% (~180) 2. Haml — 31,71% (~80) Рейтинг по числу «звезд» на GitHub
  • 42.
  • 43. 1. Slim — 55,94% (~180) 2. Haml — 44,06% (~80) Рейтинг по числу активных участников
  • 44.
  • 45. 1. Slim — 72,23% (~85%) 2. Haml — 27,77% (~20%) Рейтинг по проценту закрытия Pull Request'ов
  • 46.
  • 47. 1. Haml — 68,67% (~25) 2. Slim — 31,33% (~10) Рейтинг по числу Pull Request'ов
  • 48.
  • 49. 1. Haml — 90,65% (max — 15) 2. Slim — 9,35% (max — 2) Рейтинг по числу старых Pull Request'ов
  • 50.
  • 51. 1. Slim — 80% (36) 2. Haml — 20% (9) Рейтинг по числу коммитов за год
  • 52.
  • 53. 1. Haml — 72,29% (6,260,388) 2. Slim — 27,71% (2,903,900) Рейтинг по числу загрузок
  • 54. — У обоих проектов невысокая активность разработки — Haml — лидер по количеству загрузок и числу реквестов — Slim — лидер по количеству участников и их вкладу Итог
  • 56.
  • 57. 1. Minitest — 57,36% (~194M загрузок за прошедший год) 2. Rspec — 42,64% (~175M) Рейтинг по числу загрузок
  • 58.
  • 59. 1. Minitest — 79,25% (~75 “звёзд” каждый квартал) 2. Rspec — 20,75% (~20) Рейтинг по числу «звезд» на GitHub
  • 60.
  • 61. 1. Rspec — 64,07% (~80 человек каждый квартал) 2. Minitest — 35,93% (~50) Рейтинг по количеству активных участников
  • 62.
  • 63. 1. Rspec — 60,54% (~90%) 2. Minitest — 39,46% (~65%) Рейтинг по проценту закрытия Pull Request'ов
  • 64.
  • 65. 1. Rspec — 78,13% (50-60 Pull Request'ов в среднем) 2. Minitest — 21,87% (~20) Рейтинг по количеству Pull Request'ов
  • 66. — Minitest — лидер по количеству загрузок и “звёзд” — Rspec — лидер по количеству участников и их вкладу Итог
  • 67.
  • 70. — Инструмент оценки зрелости и поддерживаемости проекта на Ruby в полноценном режиме — Анализ зависимостей — Агрегация с метриками по качеству кода и документации — Рекомендации проектам по шагам для роста зрелости — Поддержка Elixir, Python и других языков Дальнейшие шаги
  • 71.
  • 72.
  • 73. 1. Находим альтернативы на Ruby Toolbox 2. Выбираем достаточно зрелые проекты, тут поможет Ossert или другой способ разностороннего анализа 3. Выбираем тот, проект чей DSL ближе, не забывая про рекомендации он Thoughtbot «Зрелый» цикл оценки Ruby OSS-проекта
  • 74.

Editor's Notes

  1. Привет. Меня зовут Долганов Сергей, я работаю backend-разработчиком в Evil Martians. Сегодня я хочу поговорить о наших &amp;quot;котах в мешке&amp;quot; - гемах.
  2. Именно с Rubygems и Bundler&amp;apos;а создание open-source библиотек для решения любых задач стало таким популярным. Использовать сторонний код - это всегда риск, вот, например, советы по этому поводу от thoughtbot.
  3. При этом очень часто ключевым критерием выбора гема становится его популярность, оцените статистику, из более ~100_000 проектов на Rubygems бОльшая часть загрузок приходится на менее чем 1%. (слайд) Сейчас эстафету open-source активности перехватило сообщество Node.js
  4. у них еще острее проявились кризисы высоких темпов роста кол-ва библиотек. Вспомним, инцидент с left-pad. Когда из-за отката одной библиотеки в несколько строк упало огромное количество веб-приложений, т.к. дерево зависимостей оказалось сломанным (пауза) :
  5. Чтобы стало понятнее, почему так происходит - напомню как мы ищем библиотеки на Ruby
  6. мы обычно идем на Ruby Toolbox, где нам в лучшем случае предложат несколько альтернатив. Остается только выбрать. Правда для окончательного решения нам придется заглянуть на Rubygems ... И на Github, чтобы посмотреть что же именно происходило ... в последнее время... И глянуть лицензию, Code of Conduct. Readme и Wiki (вдруг повезет и будет пример использования и описание DSL). Т.е. мы очень доверяем собственным &amp;quot;экспертным&amp;quot; суждениям о проектах, при этом имея совсем немного объективной информации для принятия решения.
  7. - libgrader - ныне почивший, инструмент показывал статус по коммитам, лицензию, readme, code of conduct - Bestgems - инструмент для наблюдения за рейтингом проектов по кол-ву загрузок - Экспериментальный проект Issue Stats - показывает среднее время реакции на issue - Dependency CI - пометки от создателя Устарело, Удалено, Не поддерживается - и, напоследок, самый интересный NPMS (npm search). Поиск с ранж. Поддержка, Качество, Популярность. По каждому из них дается оценка от 0 до 100%. К сожалению, не прозрачен алгоритм оценки и работает только для Node.js. Действительно, цельной картины по таким данным не складывается. Сделаем новый агрегатор
  8. классификация проблема весьма сложная, т.к. с одной стороны у нас уже есть множество аспектов оценки open-source’а: С другой, используются это средства в разнобой и не всегда, а мне хотелось привнести в этот зоопарк что-то новое и полезное Так я откопал историю об Open-Source Maturity Model или Модели Зрелости Открытого ПО.
  9. Capability Maturity Model - метод оценки субподрядчиков для разработки ПО В сентябре 1987 года SEI выпустил краткий обзор процессов разработки ПО с описанием их уровней зрелости, а также опросник, предназначавшийся для выявления областей в компании, в которых были необходимы улучшения.
  10. мы обычно идем на Ruby Toolbox, где нам в лучшем случае предложат несколько альтернатив. Остается только выбрать. Правда для окончательного решения нам придется заглянуть на Rubygems ... И на Github, чтобы посмотреть что же именно происходило ... в последнее время... И глянуть лицензию, Code of Conduct. Readme и Wiki (вдруг повезет и будет пример использования и описание DSL). Т.е. мы очень доверяем собственным &amp;quot;экспертным&amp;quot; суждениям о проектах, при этом имея совсем немного объективной информации для принятия решения.