Как стать автором
Обновить

Больше комитов, хороших и разных

Время на прочтение2 мин
Количество просмотров7.6K
На мой взгляд, самый лучший способ освоить что-нибудь новое в программировании — изучать комиты в публичные репозитории.
Тут вам и предельная практичность, best practices, большое разнообразие и прочее. Есть только один неприятный момент — далеко не каждое изменение в репозиторий можно считать поучительным или хоть сколько нибудь информативным.
Более того, практически никогда нельзя восстановить полный контекст, в котором появилось то или иное изменение — его может знать только сам автор. Можно ли в таких условиях все-таки вытащить крохи полезной информации?

Итак, еще раз сформулирую исходное положение:

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


Возникает вопрос, как отделить «мух от котлет» — можно ли выделить из общей кучи те изменения, которые будут нам полезны? Первая мысль, которая приходит в голову — придумать правило, согласно которому ранжировать поступающие комиты и отбирать из них «лучшие» (те, которые лучше соответствуют придуманному правилу). Это самое правило, конечно, не может быть одним — это слишком просто) Скорее всего, оно должно быть совокупностью более мелких правил, которые ограничивают определенные параметры. Например:

  • Размер изменения. Врядли кто-то будет читать огромные комиты в тысячи строк
  • Соответствие языку программирования. Для каждого репозитория есть основной язык программирования, и весь основной код пишется на нем. Но есть еще и куча сопровождающих файлов (скрипты для автоматизации, конфигурационные файлы, документация), которые тоже подвержены изменениям. Конечно, они не представляют особого интереса без контекста
  • Отношение автора к сделанному изменению. Это единственное, что можно выдернуть из контекста — никто не может оценить сделанную работу лучше, чем сам программист. Поэтому если он пишет в комментарии «magic (ugly dirty hack)!», врядли стоит рассматривать данный комит, как предел совершенства. Помимо комментария к комиту также полезно проанализировать комментарии в самом изменении


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

Примерно такие мысли крутились у меня в голове некоторое время назад, и я решил воплотить их в виде web сервиса thebestcommits.info. Это еще очень сырой прототип, в котором реализован только основной функционал. Сервис в почасовом режиме забирает с githubarchive.org данные о комитах на Github, анализирует их и отображает в виде слайдов презентации на странице браузера. Внутренности состоят из Golang и Python, графическое представление реализовано с помощью reveal.js

Мне интересно мнение сообщества об этой идее. Является ли она достаточно интересной, чтобы развивать ее дальше?
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Интересна ли вам эта идея?
60% Да, интересна — возможно, буду пользоваться150
40% Нет, бесполезная штука100
Проголосовали 250 пользователей. Воздержались 92 пользователя.
Теги:
Хабы:
Всего голосов 21: ↑19 и ↓2+17
Комментарии11

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург