‧
4 分鐘閱讀
頂尖 GitHub 專案的巴士指數
Metabase 團隊
‧ 4 分鐘閱讀

分享這篇文章
「公車因素」是指專案中必須被公車撞到(或離職)的人數,專案才會陷入嚴重困境。我們對 GitHub 上排名前 1,000 名專案(依星號數)的公車因素感到興趣。
觀察
看看我們的儀表板,或繼續閱讀以了解我們的發現。
資料集
- 我們使用 GitHub API 和 truckfactor 來取得並計算 GitHub 上星號數排名前 1,000 名儲存庫的公車因素。
- 由於記憶體限制,我們只能計算 GitHub 上約 95% 儲存庫的公車因素。
- 為了排除無程式碼儲存庫(例如學習資源或主題的精選列表),我們移除了無法判斷主要程式語言的專案,或者儲存庫主要由以下檔案類型組成:Makefile、TeX、Dockerfile 和 Markdown。
- 如果您想自行操作資料,請繼續下載並探索資料集。
我們如何計算公車因素
我們使用一個名為 truckfactor 的程式庫來計算公車/卡車因素。以下是 truck factor 的計算方式。對於每個儲存庫,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。
公車因素的分佈
幾乎一半的專案的公車因素為 2 或更低。
只有 10% 的專案的公車因素為 6 或更高。
儲存庫星號數與公車因素之間沒有關聯
我們最初認為,較熱門的專案應該有更多貢獻者,因此公車因素會更高,但情況似乎並非如此。
常用頂級語言的平均公車因素
我們在這裡談論的是一般語言,因此 HTML 和 CSS 等語言也包含在內。
- 超過一半的專案使用 Shell 指令碼語言(Bash 指令碼)。
- 最常見的語言是基於 Web 的工具:JavaScript、HTML、CSS 和 Typescript。頂級通用語言包括 Python、C 和 Java。
- 以基於 Web 的開發語言(JavaScript、HTML、CSS、TypeScript 和 SCSS)編寫的專案,與以通用程式語言(Python、C、Java 和 C++)編寫的專案相比,往往具有較低的公車因素
最熱門的標籤
在星號數最多的儲存庫中,JavaScript
是最熱門的標籤,由熱門的 Web 框架和程式庫(如 React
、Vue
、Bootstrap
和 Angular
)領先。如果我們合併 Go
和 Golang
,則以 Go 編寫的專案將成為第二大標籤語言(儘管有些儲存庫可能同時包含 Go
和 Golang
標籤,這會誇大標籤計數)。
Hacktoberfest
是第二常見的標籤,這很合理。Hacktoberfest 是為期一個月的開源專案慶祝活動,旨在鼓勵人們為開源專案做出貢獻,因此儲存庫維護者有動力新增該標籤以吸引貢獻者。
按軟體類型劃分的公車因素
我們也按軟體類型劃分了公車因素,而機器學習的公車因素達到兩位數的專案最多。
後端專案
前端專案
機器學習專案
商業智慧專案
結論
- Metabase 支援大眾運輸。
- 軟體建立在紙牌屋之上。
- 為您的程式碼編寫文件。
- Metabase 的公車因素還不錯 (4)。此外,我們是一個完全分散的團隊,因此公車事故必須在全球範圍內協調,才能使專案陷入任何危險。
- 但是我們的公車因素可以更好,所以,您知道,我們正在徵人。