略读《大教堂与市集》
《大教堂與市集》(The?Cathedral?and?the?Bazaar: Musings?on?Linux?and?Open?Source?by?an?Accidental?Revolutionary)一書中提到了軟工工程的兩種開發(fā)模式,即大教堂模式和市集模式。作者認(rèn)為“Given?enough?eyeballs,?all?bugs?are?shallow”,也就是支持市集模式。
我沒有讀過這篇文章,只是從維基百科上了稍稍了解了這本書的內(nèi)容。從其觀點來看,我認(rèn)為,作者寫這篇文章,是鑒于當(dāng)時的自由軟件開發(fā)的現(xiàn)狀。他不滿于當(dāng)時開發(fā)軟件的低效率,而且,他認(rèn)為,低效率的原因在于除錯階段花費了大量的時間。由此,他把開源軟件的開發(fā)模式分為兩種,一種是大教堂模式,源碼公開,但是開發(fā)過程有一個團體控制;一種是市集模式,同源源碼公開,且源碼放在互聯(lián)網(wǎng)上供人閱覽,并可以貢獻(xiàn)代碼,進行開發(fā)。并且提倡市集模式,認(rèn)為在足夠的人的檢視之下,BUG將無處藏身。
這篇文章的影響是巨大的。目前,從開源軟件的繁榮課件一斑。不過,這并不意味著市集模式是完美的。POUL-HENNING?KAMP的文章Generation?Lost?in?the?Bazaar(中文版《有人負(fù)責(zé),才有質(zhì)量:寫給在集市中迷失的一代》),就是對于市集模式的批判。這篇文章從目前FreeBSD的雜亂無章的現(xiàn)狀入手,認(rèn)為正式集市模式造成了這一切。Kamp認(rèn)為,作為軟件,所謂質(zhì)量,只有在某人對它負(fù)責(zé)時才有意義,而這個“某人”只能是一個人,不能是幾個人——二重奏除外。而目前的市集模式,沒有一個人對某個東西負(fù)責(zé),或者說所有人都對其負(fù)責(zé),就意味著沒有人負(fù)責(zé)。這就造成了現(xiàn)如今的FreeBSD系統(tǒng)中眾多的軟件沒有規(guī)則的相互依賴,且眾多的軟件功能相似,沒有完成軟件工程一貫追求的代碼復(fù)用。
在我來看,市集模式既然能為全世界所接受,必有其優(yōu)點所在。所謂“眾人拾柴火焰高”,當(dāng)然軟工工程不能類比于“拾柴”,不過道理確實是這個道理。而后來Kamp的文章,則點明了其缺點所在——人多反而礙事。
其實,以我目前的觀點,不論是市集模式還是大教堂模式,都有其優(yōu)缺點所在(這在上文中已經(jīng)可以看出),關(guān)鍵是找到其適用的場景。這個觀點雖然中庸,不過確實是實話。我以為,大教堂模式,適用于小的項目,或者是團隊中有一個技術(shù)大牛帶領(lǐng),不需要過多的人來指點。而市集模式,則是那種涉及的方面比較廣泛的項目,且不論如何,應(yīng)該有一個幾個人的團體對于項目的整體走向、代碼有絕對的控制力,否則,會造成Kamp所說的那種混亂局面。
我們當(dāng)前的項目(學(xué)霸系統(tǒng)的UI之用戶管理部分),可以說是類似于大教堂模式。之所以說,類似,是我們的源碼并非在互聯(lián)網(wǎng)上公開的,只是相像而已。一來因為項目比較小,如果非要應(yīng)用市集模式,可能會有意見無法統(tǒng)一,浪費資源的問題。此外,除了本組的人外,也并沒有人其他的一些人關(guān)注這個項目,不具備市集模式的要求,No enough ebyballs,bugs will not shallow。
題外:在讀這些文章的時候,總是會有想睡覺的沖動。我覺得原因主要是兩個,一是閱讀英文吃力,往往讀了半天都讀不進腦子;二是關(guān)于軟工工程的文章并不是那么的吸引人,既無小說的引人入勝,亦無技術(shù)書籍的技術(shù)提升快感。如何解?
轉(zhuǎn)載于:https://www.cnblogs.com/iEverX/archive/2012/11/13/2768834.html
總結(jié)
以上是生活随笔為你收集整理的略读《大教堂与市集》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2010 单
- 下一篇: appium执行iOS测试脚本并发问题