GitHub 星级对您来说值多少?

判断一个开源项目的最好也是最显而易见的方法就是查看代码,但这可能有点乏味,而且有时你并不喜欢看到的东西,所以我们自然而然地自己开发出了另一种方法,或者有人建议我们这样做,那就是查看有多少人给一个项目打了星,然后选出星数最多的那个。

“例如,React.js 有 20.7 万颗星,而 Angular 只有区区 8.8 万颗星,因此我们可以得出结论:React.js 是一个更好的框架”–Ben Awad

虽然上面说的是一个笑话(并不是说 React 不是一个更好的前端框架),但通过一个开源项目有多少颗星来判断它的质量并不是一个好主意。

有多少次,你凝视着一个开源项目,胡思乱想着获得的星星数量与项目实际价值之间的相关性?

如果是零,那么好吧,你是一个比我更好的人。

但如果不是,那么请允许我向你介绍我最近的实验和研究。这很可能是你第一次接触这个奇异的市场。

购买 GitHub Stars

没错!这是一件事。就像购买 Instagram likes 是一种众所周知的营销手段一样,购买 GitHub stars 也同样有形。

购买 Instagram likes 海报

但我不会直接告诉你购买 GitHub stars 是真的。那就太让人失望了,对吧?

所以我就做了!我尝试了两个平台。我不会说出任何名字或链接,因为我绝不会鼓吹这样的事情。

我认为这将是一个非常有吸引力、非常有教育意义的实验(不过对我的钱包来说可不是!)。那么,让我们深入了解一下吧!

高级星级

请听我说。我知道你在想 “这到底是怎么回事?还有不同类型的星星?没错,是有的!

高级明星的价格要贵得多,看起来也最合法,最重要的是,这些明星有更高的机会长期留下来。

于是,我开启了 “隐姓埋名 ”模式,用我的第二身份 “Boogeyman ”开始狩猎。

Premium Stars Reciept

我花了 20 欧元买了 25 颗星星,每颗星星 0.8 欧元,价格不菲(如果从税款中扣除就不贵了),但我马上就会向你们展示它们的样子。

我的订单花了六个小时才完成,这些账户看起来都是合法的;每个账户都有一张个人照片、为不同的公司工作、几个软件源,以及对一个或多个开源项目的贡献,此外,他们还是一年以上的 GitHub 会员。

Premium Stargazers On Github

廉价星级

“每当你看到高档商品时,请记住,廉价商品也不远了!” – 可能是我

还有更便宜的选择,比如这个:

Cheap Stars Reciept

我花了 8.19 欧元购买了 100 颗星星,每颗星星 0.08 欧元。

从收据上可以看到,我的订单号是 #57189,所以这绝对不是偶尔才会用到的东西🙂。

现在,有什么区别呢?

最大的区别在于,这些都是全新的账户–它们是在我下订单时创建的。他们没有任何虚假的个人信息、资源库或贡献。

一个月后,它们都消失了。GitHub 发现并封禁了他们。

最疯狂的是,你可以联系他们 ,他们会免费重做你的订单 🙂

检测假星级

然后我就在想,有没有什么工具可以揭露这些仓库 🤔

然后我发现了 Astronomer,一个从 GitHub 项目上的僵尸账户中检测非法明星的工具。

它的工作原理是,从每一个给某个仓库加星的 GitHub 用户那里获取数据,然后计算这些用户是真人的可能性有多大。它使用的是 “信任算法”。

信任分数基于不同的因素计算:

  • 追星者终身贡献的平均值
  • 私人贡献的平均值
  • 公开创建的问题的平均值
  • 公开撰写的提交的平均值
  • 公开打开的拉取请求的平均值
  • 公开代码审查的平均值
  • 平均加权贡献分值(通过加权使较老的贡献更值得信任)
  • 加权贡献分值的第 5 个百分位数,从 5 到 95
  • 平均账户年龄–较老的账户更值得信任

因此,我在三个版本库上试用了 Astronomer,看看结果如何。

高级星级

Fetching contributions for 69 users up to year 2013
Building trust report...ok

Averages                             Score           Trust
--------                             -----           -----
Weighted contributions:              18268             B
Private contributions:               370               A
Created issues:                      91                A
Commits authored:                    259               C
Repositories:                        41                A
Pull requests:                       36                A
Code reviews:                        6                 C
Account age (days):                  1619              B
5th percentile:                      12                A
10th percentile:                     16                C
15th percentile:                     20                D
20th percentile:                     20                E
25th percentile:                     24                E
30th percentile:                     24                E
35th percentile:                     24                E
40th percentile:                     28                E
45th percentile:                     332               D
50th percentile:                     1106              B
55th percentile:                     1692              B
60th percentile:                     2770              A
65th percentile:                     6422              A
70th percentile:                     10958             A
75th percentile:                     15598             A
80th percentile:                     26596             A
85th percentile:                     34116             A
90th percentile:                     69967             A
95th percentile:                     85147             A
----------------------------------------------------------
Overall trust:                                         B

廉价星级

Fetching contributions for 24 users up to year 2013
Building trust report...ok

Averages                             Score           Trust
--------                             -----           -----
Weighted contributions:              856             E
Private contributions:               21              E
Created issues:                      3               E
Commits authored:                    87              E
Repositories:                        4               E
Pull requests:                       3               E
Code reviews:                        1               E
Account age (days):                  36              E
5th percentile:                      3               D
10th percentile:                     3               E
15th percentile:                     3               E
20th percentile:                     3               E
25th percentile:                     3               E
30th percentile:                     3               E
35th percentile:                     3               E
40th percentile:                     3               E
45th percentile:                     3               E
50th percentile:                     3               E
55th percentile:                     3               E
60th percentile:                     3               E
65th percentile:                     3               E
70th percentile:                     3               E
75th percentile:                     3               E
80th percentile:                     4               E
85th percentile:                     4               E
90th percentile:                     4               E
95th percentile:                     4               E
----------------------------------------------------------
Overall trust:                                       E

合法星级(作为对照检查):

Fetching contributions for 139 users up to year 2013
Building trust report...ok

Averages                             Score           Trust
--------                             -----           -----
Weighted contributions:              118821            A
Private contributions:               2407              A
Created issues:                      72                A
Commits authored:                    1300              A
Repositories:                        74                A
Pull requests:                       101               A
Code reviews:                        69                A
Account age (days):                  2538              A
5th percentile:                      145               A
10th percentile:                     711               A
15th percentile:                     2726              A
20th percentile:                     4144              A
25th percentile:                     8535              A
30th percentile:                     13650             A
35th percentile:                     20728             A
40th percentile:                     23322             A
45th percentile:                     28244             A
50th percentile:                     37636             A
55th percentile:                     42536             A
60th percentile:                     55776             A
65th percentile:                     78956             A
70th percentile:                     93676             A
75th percentile:                     129164            A
80th percentile:                     194463            A
85th percentile:                     231380            A
90th percentile:                     286798            A
95th percentile:                     559934            A
----------------------------------------------------------
Overall trust:                                         A

这太可怕了。优质星级的得分尚可,为 B 级,但廉价星级的得分最低,为 E 级。谁知道呢,也许有一种超高级星级服务能得 A 分呢?

经验教训

正如不能以封面来判断一本书的好坏一样,也不能以追星族的数量来判断一个开源项目的好坏。正如我们在这篇文章中所看到的,这是他们不合法的一种选择。这就像其他社交媒体平台一样,存在虚假账户和虚假点赞。

相反,你可以在 Twitter 上询问你的同事或社区,为什么要选择这个项目而不是另一个。您还可以在 GitHub 上发起新的讨论或创建一个问题,询问其他人的经验。如果这还不够,你还可以查看项目代码。不过,我们都知道,这不是我们每天都有时间和精力去做的事情。

选择一个高质量的开源项目可能是一项具有挑战性的任务。不过,在做出这样的决定时,我们需要考虑一些关键因素。由于 The Guild 的整个架构是为开发长期开源项目而创建的,因此我们也总结出了一套如何根据长期可持续性和每个人的合作想法来识别优秀开源项目的方法。

我们建议考虑以下几点:

  1. 长期可持续性: 寻找那些致力于持续开发和维护的项目。GitHub 上的贡献者选项卡是一个很好的开始,因为它可以显示项目的整个时间跨度。例如,GraphQL MeshGraphQL Codegen 已持续开发多年;Hive 的工作量在逐步持续增加;在 GraphQL Yoga 上,你可以看到它是如何开始的,然后被放弃,后来又在 The Guild 从之前的维护者手中接过维护工作后强势回归;Nextra 项目我们加入成为 v2 维护者后,工作量显著增加。
  2. 社区参与: 评估项目中社区参与和协作的程度。您可以查看 GitHub 上的讨论选项卡GitHub 社区图
  3. 代码质量: 评估代码库的质量,包括可读性、可维护性以及是否符合最佳实践。
  4. 响应性: 检查项目维护者对问题、拉取请求和社区反馈的响应程度。GitHub 上的 “脉搏 ”选项卡可以提供帮助。
  5. 知名度和声誉: 考虑项目在社区中的声誉,包括贡献者的数量、星级和正面评价。

通过遵循这些准则,您可以增加选择高质量开源项目的机会。

 

你也许感兴趣的:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注