2022年11月14日于 数据探索

阅读时间:4分钟

GitHub顶级项目的总线因子

The Metabase Team Portrait
Metabase 团队
‧ 2022年11月14日于 数据探索

‧ 4分钟阅读

Bus factor of top GitHub projects Image
分享这篇文章

“巴士因素”是指在项目中,需要有多少人(或者退出)才会使项目陷入严重困境的人数。我们对GitHub上(按星标计)前1000个项目的巴士因素很感兴趣。

观察结果

查看我们的仪表板,或继续阅读以了解我们的发现。

数据集

  • 我们使用了GitHub API和truckfactor来获取和计算GitHub上按星标计的前1000个仓库的巴士因素。
  • 由于内存限制,我们只能计算大约95%的GitHub仓库的巴士因素。
  • 为了排除无代码仓库(如学习资源或主题精选列表),我们移除了主要编程语言无法确定的项目,或者仓库主要由以下文件类型组成:Makefile、TeX、Dockerfile和Markdown。
  • 如果您想亲自尝试这些数据,请下载并探索数据集

我们如何计算“巴士因子”

我们使用了一个名为truckfactor的库来计算巴士/卡车因子。以下是卡车因子如何进行计算。对于每个仓库,truckfactor(以下直接引用自仓库)

  • 读取仓库的git日志
  • 计算每个文件的“知识所有权”。
    • 当一个贡献者编辑了文件中的最多行时,她就有该文件的知识所有权。
    • 这种计算方法受到了A. Tornhill 的《Your Code as a Crime Scene》的启发。
    • 注意,只有对于文本文件,才计算知识所有权。对于仅包含二进制文件的仓库,该工具可能无法返回正确答案。
  • 然后,类似于G. Avelino 等人 A novel approach for estimating Truck Factors,在仍然超过一半的文件有知识所有者的情况下,移除低贡献者。剩余的知识所有者数量是该仓库的卡车因子。

为了提供一些背景,2015年和2016年进行的研究计算了133个流行GitHub项目的巴士/卡车因子。结果表明,大多数项目巴士因子较小(65%的巴士因子≤2),并且这些项目中只有不到10%的巴士因子大于10。

巴士因子的分布

几乎一半的项目巴士因子为二或更低。

只有10%的项目巴士因子为6或更高。

仓库星级与巴士因子之间没有相关性

我们最初认为,更受欢迎的项目应该有更多的贡献者,因此巴士因子应该更高,但似乎并非如此。

最常用语言的平均巴士因子

我们在这里讨论的是通用语言,因此像HTML和CSS这样的语言也在考虑范围内。

  • 超过一半的所有项目使用Shell脚本语言(Bash脚本)。
  • 最常用的语言是网络工具:JavaScript、HTML、CSS和TypeScript。最常见的一般用途语言包括Python、C和Java。
  • 使用基于网络开发语言(JavaScript、HTML、CSS、TypeScript和SCSS)编写的项目,与使用通用编程语言(Python、C、Java和C++)编写的项目相比,巴士因子往往较低。

在最受欢迎的仓库中,JavaScript是最受欢迎的标签,由流行的Web框架和库如ReactVueBootstrapAngular引领。如果我们把GoGolang合并,用Go编写的项目将是第二受欢迎的标签(尽管有些仓库可能同时包含GoGolang标签,这可能会增加标签计数)。

Hacktoberfest是第二常见的标签,这是有道理的。Hacktoberfest是一个为期一个月的庆祝开源项目活动,旨在鼓励对开源项目的贡献,因此仓库维护者有动力添加标签以吸引贡献者。

软件类型相关的总线因子

我们还根据软件类型进行了总线因子的细分,机器学习在具有总线因子的项目中占比最多,达到两位数。

后端项目

前端项目

机器学习项目

商业智能项目

结论

  • Metabase 支持公共交通。
  • 软件建立在纸牌屋之上。
  • 记录你的代码。
  • Metabase 的总线因子还算不错(4)。此外,我们是一个完全分布式团队,因此总线事故必须全球协调,才能对项目构成任何威胁。
  • 但我们的总线因子还可以更好,所以,你知道的,我们在招聘

你可能还会喜欢

所有文章
数据堆栈的隐藏成本图片 2023年5月12日,在数据探索

数据堆栈的隐藏成本

维护数据堆栈的一些不太明显的成本清单,以及一些可以用来控制这些成本的方法。

The Metabase Team Portrait
Metabase 团队

阅读时间:9分钟

数据旅行指南图片 2022年10月4日,在数据探索

数据旅行指南

我们从谷歌地图抓取了一些数据,以找出世界上访问量最高的目的地的热门景点。

The Metabase Team Portrait
Metabase 团队

阅读时间:4分钟

所有文章
Close Form Button

订阅我们的通讯

保持与 Metabase 的更新和新闻的联系。绝不发送垃圾邮件。