大教堂和市集
《大教堂与市集》(The Cathedral and the Bazaar)是埃里克·斯蒂芬·雷蒙(Eric Steven Raymond)所撰写的软件工程方法论。以Linux的核心开发过程以及作者自己主持开发的开放源代码软件──Fetchmail为讨论案例。文章在1997年5月27日发表,并在1999年出版成书。
简介
本书讨论两种不同的自由软件开发模式:
- 大教堂模式(The Cathedral model):源代码在软件发行后公开,但在软件的每个版本开发过程中是由一个专属的团队所控管的。作者以GNU Emacs及GCC这两软件为例。
- 市集模式(The Bazaar model):源代码在开发过程中即在互联网上公开,供人查看及开发。作者以Linux核心的创始者林纳斯·托瓦兹带领Linux核心的开发为例,亦引用fetchmail的开发为例。
此书的要义是“让够多人看到源代码,错误将无所遁形”(Given enough eyeballs, all bugs are shallow)林纳斯定律。作者表示大教堂模式的软件开发让程序调试的时间大幅增加,因为只有少数的开发者可参与修改工作。市集模式则相反。
从开发自由软件所学到的教训
雷蒙指出了19点在他开发多个软件项目中所学到的 "教训"。每个学到的教训都跟开放软件所使用的最佳实践有关:
- 好软件都是起源于程序发展者要解决切身之痛。
- 优秀的程序师知道要写程序,伟大的程序师知道要改写(和重复利用)程序。
- 计划好如何舍弃一条路吧,你迟早会想尽办法这么做的(引自《人月神话:软件项目管理之道》)。
- 抱持正确的态度,就会发现有趣的问题。
- 当你对一个问题不再感兴趣时,你最后的责任就是找位能胜任的接棒人。
- 把用户视为共同开发者来对待,可以让你伤最少的脑筋,但做到源代码的快速改善和有效率地调试。
- 尽早且经常发表新版本,并且倾听用户的意见。
- 在一群足够多的 beta 测试者与共同开发者的情况下,几乎程序中的每一个问题都可以很快地找出来,并且由某个人很直觉的解决。
- 聪明的数据结构配上笨拙的代码要比相反的组合好。
- 如果你视 beta 版测试者如同你最珍贵的资源,那么他们会以此做为回报。
- 体认用户提供的巧思,以获取好点子,有时候越后到的越好。
- 通常,最适切和最有创意的解题法来自于发觉自己对问题原先的观念是错误的。
- 设计上完美,不是“没有东西能再被加入”,而是“没有东西能再被移出”。
- 任何的工具以我们所知道的方法来使用都会有用,但一个真正了不起的工具会以你从未想过的使用方法来发挥它的功能。
- 写作任何的通信闸软件时,要尽可能地不去扰动到通信的资料流 -- 并且绝对不要丢掉其中任何的信息,除非接收方强迫你这么做。
- 当你设计的语言不是严谨到“Turing-complete”,你可以采用比较平易的语法。
- 一个保密系统是否安全依存于它隐藏的秘密,注意不要有“虚拟秘密”。
- 解决一个有趣的问题,由找到一个你觉得有趣的问题开始。
- 假如项目发展协调者拥有至少跟互联网一样好的媒体,而他也不靠强制力来领导,那么一群人必定胜过一个人。
影响
此文让大部分的开放源代码及自由软件的开发项目采用市集模式,甚至原来采用大教堂模式的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(平装本)。
参考资料
- ^ Epilog: Netscape Embraces the Bazaar. [2016-01-07]. (原始内容存档于2016-03-03).
- ^ 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).
- ^ Louis Suárez-Potts, Interview: Frank Hecker, openffice.org, 2001-05-01 [2016-01-07], (原始内容存档于2017-07-26)
- ^ Poe, Marshall. The Hive. The Atlantic. 2006-09 [2012-07-05]. (原始内容存档于2012-06-15).
外部链接
- http://crazyangelo.github.io/Cathedral-and-Bazaar/(页面存档备份,存于互联网档案馆)(繁体中文版,由谢志昌翻译,crazyangelo更新,CC授权)
- http://www.angeloliu.org/read-37.html(简体中文全译版,刘安辙翻译)
- The Cathedral and the Bazaar(页面存档备份,存于互联网档案馆)(在线阅读版)
- The Cathedral and the Bazaar .PS(页面存档备份,存于互联网档案馆)(可供打印的Postscript版)
- The Cathedral and the Bazaar(页面存档备份,存于互联网档案馆)(O'Reilly出版社的书本介绍页)
- Open Source Software Development as a Special Type of Academic Research (Critique of Vulgar Raymondism)(Nikolai Bezroukov, First Monday, 第4卷第10期, 1999年10月)
- Response to Nikolai Bezroukov(页面存档备份,存于互联网档案馆)(Eric S. Raymond, 1999年10月)
- A Second Look at the Cathedral and the Bazaar(Nikolai Bezroukov, First Monday, 第4卷第12期, 1999年12月)
- 《大教堂和市集》(洛基开放文化实验室翻译)