《大教堂与市集》(The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary)一书中提到了软工工程的两种开发模式,即大教堂模式和市集模式。作者认为“Given enough eyeballs, all bugs are shallow”,也就是支持市集模式。

我没有读过这篇文章,只是从维基百科上了稍稍了解了这本书的内容。从其观点来看,我认为,作者写这篇文章,是鉴于当时的自由软件开发的现状。他不满于当时开发软件的低效率,而且,他认为,低效率的原因在于除错阶段花费了大量的时间。由此,他把开源软件的开发模式分为两种,一种是大教堂模式,源码公开,但是开发过程有一个团体控制;一种是市集模式,同源源码公开,且源码放在互联网上供人阅览,并可以贡献代码,进行开发。并且提倡市集模式,认为在足够的人的检视之下,BUG将无处藏身。

这篇文章的影响是巨大的。目前,从开源软件的繁荣课件一斑。不过,这并不意味着市集模式是完美的。POUL-HENNING KAMP的文章Generation Lost in the Bazaar(中文版《有人负责,才有质量:写给在集市中迷失的一代》),就是对于市集模式的批判。这篇文章从目前FreeBSD的杂乱无章的现状入手,认为正式集市模式造成了这一切。Kamp认为,作为软件,所谓质量,只有在某人对它负责时才有意义,而这个“某人”只能是一个人,不能是几个人——二重奏除外。而目前的市集模式,没有一个人对某个东西负责,或者说所有人都对其负责,就意味着没有人负责。这就造成了现如今的FreeBSD系统中众多的软件没有规则的相互依赖,且众多的软件功能相似,没有完成软件工程一贯追求的代码复用。

在我来看,市集模式既然能为全世界所接受,必有其优点所在。所谓“众人拾柴火焰高”,当然软工工程不能类比于“拾柴”,不过道理确实是这个道理。而后来Kamp的文章,则点明了其缺点所在——人多反而碍事。

其实,以我目前的观点,不论是市集模式还是大教堂模式,都有其优缺点所在(这在上文中已经可以看出),关键是找到其适用的场景。这个观点虽然中庸,不过确实是实话。我以为,大教堂模式,适用于小的项目,或者是团队中有一个技术大牛带领,不需要过多的人来指点。而市集模式,则是那种涉及的方面比较广泛的项目,且不论如何,应该有一个几个人的团体对于项目的整体走向、代码有绝对的控制力,否则,会造成Kamp所说的那种混乱局面。

我们当前的项目(学霸系统的UI之用户管理部分),可以说是类似于大教堂模式。之所以说,类似,是我们的源码并非在互联网上公开的,只是相像而已。一来因为项目比较小,如果非要应用市集模式,可能会有意见无法统一,浪费资源的问题。此外,除了本组的人外,也并没有人其他的一些人关注这个项目,不具备市集模式的要求,No enough ebyballs,bugs will not shallow。

题外:在读这些文章的时候,总是会有想睡觉的冲动。我觉得原因主要是两个,一是阅读英文吃力,往往读了半天都读不进脑子;二是关于软工工程的文章并不是那么的吸引人,既无小说的引人入胜,亦无技术书籍的技术提升快感。如何解?

转载于:https://www.cnblogs.com/iEverX/archive/2012/11/13/2768834.html

略读《大教堂与市集》相关推荐

  1. 第二章 大教堂与市集

    Linux是颠覆性的.就是五年以前(1991),谁能想得到散布在全球各地的几千名开发者,仅靠细细的互联网连接,能够在业余时间魔术般地铸成一个世界级的操作系统呢? 反正我没想到.在1993年初Linux ...

  2. Web3.0这个故事,要从《大教堂与市集》讲起

    <The Cathedral and the Bazaar>(大教堂与市集)被誉为开源运动的「圣杯」,是作者 Eric Steven Raymond 所撰写的软件工程方法论,以 Linux ...

  3. 大教堂与市集(中文版)

    From Wikisource 中文> GNU 大教堂和市集 -- Eric Raymond, HansB翻译 目录 一. 大教堂和市集  二. 邮件必须得通过 2.1 1.每个好的软件工作都开 ...

  4. 读 Eric S. Raymond 大教堂与市集

    "你常常在第一次实现一个解决方案之后才能理解问题所在,第二次你也许才足够清楚怎样做好它,因此如果你想做好,准备好推翻重来至少一次." 我有一句相似的话:第一次购买总会失败,所以不要 ...

  5. Eric S.Raymond 五部曲之:Hacker文化简史 教堂与市集

    较早知道Eric S.Raymond 的<如何成为一名Hacker>,今天偶然间知到原来这是他的五部曲之一.便找来了他的五部全集,分别是:<Hacker 文简史>.<教堂 ...

  6. 女装、退学、离职谷歌,他活成了别人不敢想的样子

    总有一些特立独行的人,践行着大多数人不愿尝试的事情.今天采访的这位嘉宾,是圈内知名的天才型程序员,小岛. 他拥有着独特的性格和个人经历,但作为一个热爱代码的极客,他一直在接受着有挑战的事情,并逐渐走出 ...

  7. python3菜鸟教程中文-Python3菜鸟教程 1.介绍

    对简明Python3教程 1.介绍感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! Python是少有的几种既强大又简单的编程语言.你将惊喜地发现通过使用Python即可轻松 ...

  8. 计算机专业人士读好书(30本经典)

    1. <代码大全> 史蒂夫·迈克康奈尔 推荐数:1684 code complete 代码大全 "优秀的编程实践的百科全书,<代码大全>注重个人技术,其中所有东西加起 ...

  9. 硬核致敬Linux !30岁生日快乐!

    1991年8月25日,21岁的Linus Torvalds(以下简称Linus)做了一个免费的操作系统"Linux",并在这一天向外界公布这个由"业余爱好"主导 ...

最新文章

  1. 360金融沈赟:只有适配实践的技术才能实现价值掘金
  2. 中国移动这个编程大赛来了!
  3. 使用vi/vim编辑时按ctrl-s后客户端假死解决方法
  4. iservice封装有哪些方法_5w大功率led白光灯珠参数,5w大功率led灯珠有哪些?
  5. 服务器重装后怎么装系统,服务器如何安装系统,小编教你如何安装
  6. linux系统使用国内清华镜像下载安装Anaconda3
  7. Atitit 2017年的技术趋势与未来的大技术趋势
  8. 数模美赛常用算法matlab代码总结+数模大礼包
  9. java base64转Binary
  10. 前端基础知识体系之项目经验篇
  11. 流量变现|谁能拒绝私藏一套app流量变现的攻略呢?
  12. C# 如何在Excel表格中插入、编辑和删除批注(二)修改、隐藏Excel批注
  13. 解决应用程序正常初始化(0xc0000135)失败
  14. 如何快速部署静态页面?
  15. android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
  16. leetcode-460:LFU 缓存
  17. 打开浏览器显示找不到服务器DNS地址,电脑浏览器找不到服务器dns地址
  18. Localization of Classified Objects in SLAM using NonparametricStatistics and Clustering(2018,IROS)
  19. 01前端入门HTML5 +Css3+电商网页制作:HTML5
  20. 微信开发者.js.json_非中国开发者如何利用微信的1.1B每月活跃用户

热门文章

  1. 最新的Windows phone Developer tools RTW 发布了
  2. Hive的内置数据类型
  3. mysql 1449 : The user specified as a definer ('usertest'@'%') does not exist 解决方法 (grant 授予权限)...
  4. “换标”Intel的穷则思变
  5. sublime 3143 注册码
  6. 背景图处理,这是个好东西记录一下
  7. Javascript验证上传图片大小[前台处理]
  8. html调用servlet(JDBC在Servlet中的使用)(2)
  9. 使用WCF建立起Silverlight客户端与服务端的桥梁
  10. 贝叶斯 朴素贝叶斯_手动执行贝叶斯分析