Когда мы проводим исследование фреймворков, вы, вероятно, начнете с того, что введете в Google соответствующие ключевые слова, чтобы получить некоторые результаты, а затем посмотрите соответствующую тему на GitHub, чтобы выбрать подходящий фреймворк. Я считаю, что большинство людей
При выборе фреймворка вы не просто используете его, вы смотрите на некоторые метрики репозитория, чтобы решить, стоит ли выбирать его, или сравниваете несколько фреймворков.
Предисловие
Мы знаем, что в сообществе уже есть некоторые инструменты сравнения веб-репозиториев, например star-history
для звездных трендов, но нет инструментов для сравнения репозиториев GitHub.
Когда мы рассматриваем репозиторий, мы обычно смотрим на следующие метрики, чтобы понять, стабилен он или нет?
- количество звезд (звезды)
- частота обновлений (релизы)
- активность сообщества (вкладчики)
- цикл решения проблем (решение проблем)
- продолжительность создания репозитория (возраст)
- Организация (organization)
Давайте выберем фреймворк микросервисов Golang в качестве примера, чтобы сравнить некоторые из более популярных фреймворков в текущем сообществе
- go-zero
- kratos
- go-micro
- kit
Перед использованием инструмента, мы можем перейти в каждый репозиторий по очереди из вышеуказанных показателей на их домашнюю страницу репозитория, чтобы увидеть соответствующие данные, что покажется утомительным, если вам нужно приземлиться в некоторые сравнительные данные, это более необходимо вручную перейти к
Если вам нужно сделать некоторые сравнительные данные, вам нужно написать таблицу вручную.
Давайте посмотрим на результаты github-compare.
┌─────────────────────────┬─────────────────────┬───────────────────────┬──────────────────────┬──────────────────┐
│ METRICS │ ZEROMICRO/GO-ZERO │ GO-KRATOS/KRATOS │ ASIM/GO-MICRO │ GO-KIT/KIT │
├─────────────────────────┼─────────────────────┼───────────────────────┼──────────────────────┼──────────────────┤
│ 🏠 homepage │ https://go-zero.dev │ https://go-kratos.dev │ https://go-micro.dev │ https://gokit.io │
│ 🌎 language │ Go │ Go │ Go │ Go │
│ 📌 license │ MIT License │ MIT License │ Apache License 2.0 │ MIT License │
│ ⏰ age │ 655 days │ 1231 days │ 2688 days │ 2668 days │
│ 🌟 stars │ 17778(27/d) │ 17856(14/d) │ 18233(6/d) │ 23084(8/d) │
│ 📊 latestDayStarCount │ 33 (up) │ 7 (down) │ 2 (down) │ 10 (up) │
│ 📉 latestWeekStarCount │ 227 (up) │ 64 (down) │ 31 (down) │ 44 (down) │
│ 📈 latestMonthStarCount │ 916 │ 531 │ 176 │ 235 │
│ 👏 forks │ 2520(3/d) │ 3446(2/d) │ 2087(0/d) │ 2315(0/d) │
│ 👀 watchers │ 266 │ 424 │ 510 │ 690 │
│ 💪 issues │ 50/741 │ 51/793 │ 76/914 │ 35/548 │
│ 💯 pull requests │ 13/1155 │ 10/1221 │ 0/1513 │ 9/627 │
│ 👥 contributors │ 132 │ 198 │ 166 │ 221 │
│ 🚀 releases │ 63 │ 49 │ 206 │ 12 │
│ 🔭 release circle(avg) │ 10 days │ 25 days │ 13 days │ 222 days │
│ 🎯 lastRelease │ 24 day(s) ago │ 1 day(s) ago │ 5 day(s) ago │ 8 month(s) ago │
│ 🕦 lastCommit │ 2 day(s) ago │ 2 hour(s) ago │ 5 day(s) ago │ 6 day(s) ago │
│ 📝 lastUpdate │ 47 minute(s) ago │ 16 minute(s) ago │ 1 hour(s) ago │ 1 hour(s) ago │
└─────────────────────────┴─────────────────────┴───────────────────────┴──────────────────────┴──────────────────┘
На этом графике хорошо видны метрики репозитория GitHub, поэтому давайте посмотрим, как работает инструмент.
github-compare
Инструмент командной строки для статистики репозиториев GitHub
Установите
$ go install github.com/anqiansong/github-compare@latest
Пример
$ github-compare zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit
┌─────────────────────────┬─────────────────────┬───────────────────────┬──────────────────────┬──────────────────┐
│ METRICS │ ZEROMICRO/GO-ZERO │ GO-KRATOS/KRATOS │ ASIM/GO-MICRO │ GO-KIT/KIT │
├─────────────────────────┼─────────────────────┼───────────────────────┼──────────────────────┼──────────────────┤
│ 🏠 homepage │ https://go-zero.dev │ https://go-kratos.dev │ https://go-micro.dev │ https://gokit.io │
│ 🌎 language │ Go │ Go │ Go │ Go │
│ 📌 license │ MIT License │ MIT License │ Apache License 2.0 │ MIT License │
│ ⏰ age │ 655 days │ 1231 days │ 2688 days │ 2668 days │
│ 🌟 stars │ 17778(27/d) │ 17856(14/d) │ 18233(6/d) │ 23084(8/d) │
│ 📊 latestDayStarCount │ 33 (up) │ 7 (down) │ 2 (down) │ 10 (up) │
│ 📉 latestWeekStarCount │ 227 (up) │ 64 (down) │ 31 (down) │ 44 (down) │
│ 📈 latestMonthStarCount │ 916 │ 531 │ 176 │ 235 │
│ 👏 forks │ 2520(3/d) │ 3446(2/d) │ 2087(0/d) │ 2315(0/d) │
│ 👀 watchers │ 266 │ 424 │ 510 │ 690 │
│ 💪 issues │ 50/741 │ 51/793 │ 76/914 │ 35/548 │
│ 💯 pull requests │ 13/1155 │ 10/1221 │ 0/1513 │ 9/627 │
│ 👥 contributors │ 132 │ 198 │ 166 │ 221 │
│ 🚀 releases │ 63 │ 49 │ 206 │ 12 │
│ 🔭 release circle(avg) │ 10 days │ 25 days │ 13 days │ 222 days │
│ 🎯 lastRelease │ 24 day(s) ago │ 1 day(s) ago │ 5 day(s) ago │ 8 month(s) ago │
│ 🕦 lastCommit │ 2 day(s) ago │ 2 hour(s) ago │ 5 day(s) ago │ 6 day(s) ago │
│ 📝 lastUpdate │ 47 minute(s) ago │ 16 minute(s) ago │ 1 hour(s) ago │ 1 hour(s) ago │
└─────────────────────────┴─────────────────────┴───────────────────────┴──────────────────────┴──────────────────┘
Использование
Подготовка
- Создание персонального маркера доступа
- Установите маркер доступа
- Скопируйте токен доступа и экспортируйте в среду
- Или вы можете установить токен доступа, передав
github-compare
аргумент--token
.
Выполните
# set access token through the flag --token
# zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit --token ${accessToken}
# or export access token to environment (recommended)
$ export GITHUB_ACCESS_TOKEN=${GITHUB_ACCESS_TOKEN}
$ zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit
Примечание
- Требуется персональный токен доступа GitHub.
- Если вы предпочитаете экспортировать маркер доступа в среду, вы должны использовать ключ среды
GITHUB_ACCESS_TOKEN
.
Последнее
Если этот репозиторий может помочь вам, поставьте звезду, пожалуйста!
Спасибо всем!