1. 程式人生 > >你見過最大的Python專案是多大?十萬行的你見過?還說程式碼量少?

你見過最大的Python專案是多大?十萬行的你見過?還說程式碼量少?

上表已經按程式碼行數排了序。有意思的一點是, 程式碼規模最大的前4名中除了 CPython 之外其他三個全部是運維性質的專案,本來我猜測程式碼應該比較多的專案比如 Odoo 排名反而很靠後。我對運維專案瞭解有限,不太清楚為什麼這些專案的程式碼規模會名列前茅,或許是因為要支援的內容比較多而雜?

本次統計中純 Python 程式碼量最大的 Sentry 幾乎達到了 70W 行,這是相當有規模的專案了。30W~50W 行程式碼的專案有三個,包括基礎專案 CPython 在內。20W 和 10W 行程式碼規模的分別有三個,剩下 7 個則在 10W 行以內。

看過這個列表你應當相信,動態語言至少在幾十W行程式碼的專案上是完全沒有問題的。

這也是絕大多數普通應用的上限了,如果程式碼真的達到數百萬行規模的話,那麼無論用什麼語言,都勢必面臨著拆分專案的問題。

第一個指標是每個檔案的平均程式碼行數。按照模組化的觀點,單個檔案中堆砌太多內容顯然是不合理的,這通常意味著耦合太多、難於理解和修改。然而到底多少算是合適,並沒有一個明確的標準。我希望通過這些專案的分析,瞭解一下開源作者們在實踐中做出的選擇。

第二個指標是註釋和程式碼的比例,這個問題也有著類似的情況。註釋並非越詳盡越好,但總是需要一定量的註釋來解釋 Why 的問題。註釋太少,說明專案的作者沒有給後來的維護人員留下足夠的線索,可能會造成維護上的問題。另一方面,我們考察的全部是開源專案,沒有公司考核或者 KPI 的約束,所以我們可以放心的相信不會存在作者故意多寫註釋的問題。

前面提到的 Sentry 毫無爭議的因為註釋太少排到了最後,這未必說明這個專案很差,但至少是一個訊號,說明該專案在維護方面可能是存在問題的。而對於那些作者願意投入精力來寫註釋的專案(Ansible, NumPy, Fabric, Salt 等),足以反映作者在專案上投入了相當大的心力,這是一個好的訊號,說明這些專案是值得信賴的。

最後一項統計是關於檔案型別的。Python 專案中絕大多數應該是 Python 程式碼,這點沒有什麼疑問,但同時我也想看看除了 Python 程式碼之外,一個專案還包括哪些主要檔案。C/HTML/Javascipt 的上榜是毫不意外的,但有一種檔案我事先沒有想到,那就是 .PO

(開源專案常用的語言資原始檔)。

對於 Django 和 Django-CMS 這兩個專案, PO 程式碼數量甚至比 Python 程式碼還要多。大概看了一下,Django 支援 90 種以上的語言,這也無怪乎語言檔案的數量如此之多了。

進群:125240963   即可獲取神祕大禮包!