引子:開源項(xiàng)目那么多,哪些是值得我們學(xué)習(xí)的?
這里聲明一下,僅僅是學(xué)習(xí)一下:他們是用哪些工具,來管理自己的項(xiàng)目的?
開源項(xiàng)目多如牛毛,值得分析的項(xiàng)目也很多很多。從哪里入手呢?幸運(yùn)的是,在開源社區(qū),有一個(gè)著名的網(wǎng)站,過去叫oloho,現(xiàn)在改名叫openhub。在他的網(wǎng)站首頁,有這么四行字,以表明他們的數(shù)據(jù)庫是多么的全面、豐富:
- Indexing 669,008 open source projects
- Connecting 3,742,793 open source contributors
- Tracking 679,761 source control repositories
- Counting 31,158,335,454 lines of code
這么說來,事情就變得比較“簡單”了,我需要把openhub的數(shù)據(jù),都抓回來。
數(shù)據(jù)的篩選過程
具體的數(shù)據(jù)抓取過程,簡直不忍詳述(我的內(nèi)心,幾乎是崩潰的)。總而言之,我只抓到了289,631個(gè)項(xiàng)目。openhub雖然號(hào)稱自己索引了66萬的開源項(xiàng)目,其實(shí)這僅僅是他的數(shù)據(jù)庫里的最大ID號(hào)!當(dāng)我順著這個(gè)ID一個(gè)一個(gè)的去抓的時(shí)候,有很多ID,都已經(jīng)被刪除了。
在抓取到的項(xiàng)目數(shù)據(jù)中,有兩個(gè)數(shù)值,特別值得參考:contributors(參與開發(fā)者的數(shù)量);users(該軟件的用戶數(shù)量)。相對(duì)而言,users的數(shù)據(jù),可以認(rèn)為是一個(gè)樣本,即該開源項(xiàng)目的所有用戶中,愿意并且知道該如何來openhub點(diǎn)擊I use this的人。因此,即使是排名第一的Firefox,在openhub也只有13158個(gè)用戶?紤]到Firefox的用戶數(shù),已經(jīng)超過5億(來源于維基百科英文版),因此,我們相信這個(gè)數(shù)據(jù)僅僅是一個(gè)4萬分之一的采樣結(jié)果。
隨后,我觀察了這28萬多個(gè)項(xiàng)目的users數(shù)據(jù)與contributors數(shù)據(jù),頓時(shí)驚訝的發(fā)現(xiàn),絕大多數(shù)項(xiàng)目,都小的可憐,用戶也少得可憐。
- 當(dāng)我以“select count(*) from projects where contributors>30”查詢時(shí),只搜到了 1662個(gè)項(xiàng)目...
- 當(dāng)我以“select count(*) from projects where users>30”查詢時(shí),只搜到了1260個(gè)項(xiàng)目...
- 當(dāng)我合并以上兩個(gè)條件查詢時(shí),只搜到了335個(gè)項(xiàng)目。
- 再從這335個(gè)項(xiàng)目中,排除掉最近一年已經(jīng)不再有活動(dòng)的項(xiàng)目,于是只剩下了331個(gè)了。
三個(gè)感想
- 成功的開源項(xiàng)目,真是鳳毛麟角
- 絕大多數(shù)開源項(xiàng)目都是少數(shù)人開發(fā)的小項(xiàng)目
- 這331個(gè)項(xiàng)目,也許可以作為我們的重要參考
第一個(gè)問題:他們用什么配置庫?
這是331個(gè)項(xiàng)目,使用配置庫的情況(有些項(xiàng)目,同時(shí)使用多種配置庫),有兩個(gè)現(xiàn)象值得注意:
- 接近92%的項(xiàng)目,已經(jīng)在使用git——git的統(tǒng)治地位,已經(jīng)無可動(dòng)搖
- 只有53%的項(xiàng)目,在使用Github——那些用git卻不用Github的項(xiàng)目,是什么原因?
通過數(shù)據(jù)來分析:是否使用Github與項(xiàng)目創(chuàng)建時(shí)間的關(guān)系
通過這個(gè)圖,可以看出兩個(gè)現(xiàn)象:
- 越是新創(chuàng)建的開源項(xiàng)目,hosting在Github上比例越高
- 越是新創(chuàng)建的開源項(xiàng)目,事實(shí)上成功的也越多(當(dāng)然,2010年以后的數(shù)量銳減,我們懷疑是好酒也要陳釀的原因)