大教堂和市集

大教堂与市集》(The Cathedral and the Bazaar)是埃里克·斯蒂芬·雷蒙(Eric Steven Raymond)所撰写的软体工程方法论。以Linux的核心开发过程以及作者自己主持开发的开放原始码软体──Fetchmail为讨论案例。文章在1997年5月27日发表,并在1999年出版成书。

本书平装本的封面

简介

本书讨论两种不同的自由软体开发模式:

  • 大教堂模式(The Cathedral model):源代码在软件发行后公开,但在软体的每个版本开发过程中是由一个专属的团队所控管的。作者以GNU EmacsGCC这两软体为例。
  • 市集模式(The Bazaar model):源代码在开发过程中即在网际网路上公开,供人检视及开发。作者以Linux核心的创始者林纳斯·托瓦兹带领Linux核心的开发为例,亦引用fetchmail的开发为例。

此书的要义是“让够多人看到原始码,错误将无所遁形”(Given enough eyeballs, all bugs are shallow)林纳斯定律。作者表示大教堂模式的软体开发让程式除错的时间大幅增加,因为只有少数的开发者可参与修改工作。市集模式则相反。

从开发自由软体所学到的教训

雷蒙指出了19点在他开发多个软体专案中所学到的 "教训"。每个学到的教训都跟开放软体所使用的最佳实践有关:

  1. 好软体都是起源于程式发展者要解决切身之痛。
  2. 优秀的程式师知道要写程式,伟大的程式师知道要改写(和重复利用)程式。
  3. 计画好如何舍弃一条路吧,你迟早会想尽办法这么做的(引自《人月神话:软体专案管理之道》)。
  4. 抱持正确的态度,就会发现有趣的问题。
  5. 当你对一个问题不再感兴趣时,你最后的责任就是找位能胜任的接棒人。
  6. 把使用者视为共同开发者来对待,可以让你伤最少的脑筋,但做到原始码的快速改善和有效率地除错。
  7. 尽早且经常发表新版本,并且倾听使用者的意见。
  8. 在一群足够多的 beta 测试者与共同开发者的情况下,几乎程式中的每一个问题都可以很快地找出来,并且由某个人很直觉的解决。
  9. 聪明的资料结构配上笨拙的程式码要比相反的组合好。
  10. 如果你视 beta 版测试者如同你最珍贵的资源,那么他们会以此做为回报。
  11. 体认使用者提供的巧思,以获取好点子,有时候越后到的越好。
  12. 通常,最适切和最有创意的解题法来自于发觉自己对问题原先的观念是错误的。
  13. 设计上完美,不是“没有东西能再被加入”,而是“没有东西能再被移出”。
  14. 任何的工具以我们所知道的方法来使用都会有用,但一个真正了不起的工具会以你从未想过的使用方法来发挥它的功能。
  15. 写作任何的通信闸软体时,要尽可能地不去扰动到通讯的资料流 -- 并且绝对不要丢掉其中任何的资讯,除非接收方强迫你这么做。
  16. 当你设计的语言不是严谨到“Turing-complete”,你可以采用比较平易的语法。
  17. 一个保密系统是否安全依存于它隐藏的秘密,注意不要有“虚拟秘密”。
  18. 解决一个有趣的问题,由找到一个你觉得有趣的问题开始。
  19. 假如专案发展协调者拥有至少跟网际网路一样好的媒体,而他也不靠强制力来领导,那么一群人必定胜过一个人。

影响

此文让大部份的开放原始码及自由软体的开发计画采用市集模式,甚至原来采用大教堂模式的GNU Emacs及GCC也是如此。Netscape网页浏览器后来释出原始码,并启动Mozilla计画,也或多或少受到这篇文章的启发[1][2][3]

大教堂与市集也被延伸到非电脑软体的开发上面。例如维基百科就是市集模式,而Nupedia大英百科全书就是大教堂模式[4]

出版

欧莱礼出版社于1999年发行此书的创举是,首次商业印刷出版的书以Creative Commons授权模式出版。

本书(原文)的国际标准书号ISBN 978-1-56592-724-7(精装本)、ISBN 978-0-596-00108-7(平装本)。

参考资料

  1. ^ Epilog: Netscape Embraces the Bazaar. [2016-01-07]. (原始内容存档于2016-03-03). 
  2. ^ Jim Hamerly and Tom Paquin with Susan Walton. Freeing the Source: The Story of Mozilla. Open Sources: Voices from the Open Source Revolution 1st. 1999-01 [2016-01-07]. ISBN 1-56592-582-3. (原始内容存档于2014-09-02). 
  3. ^ Louis Suárez-Potts, Interview: Frank Hecker, openffice.org, 2001-05-01 [2016-01-07], (原始内容存档于2017-07-26) 
  4. ^ Poe, Marshall. The Hive. The Atlantic. 2006-09 [2012-07-05]. (原始内容存档于2012-06-15). 

外部链接