内容和作者简介

《大教堂与市集》(The Cathedral and the Bazaar)是埃里克·斯蒂芬·雷蒙(Eric Steven Raymond)所撰写的软件工程方法论。《大教堂与集市》是开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者Eric S. Raymond是开源运动的旗手、***文化第一理论家,他讲述了开源运动中惊心动魄的故事,提出了大量充满智慧的观念和经过检验的知识,给所有软件开发人员带来启迪。

关于大教堂和集市,阮一峰的博客有一篇精彩的笔记点评:http://www.ruanyifeng.com/blog/2008/02/notes_on_the_cathedral_and_the_bazaar.html

大教堂与集市

代表了两种不同的开发模式:绝大多数商业公司所采用的是大教堂模式,而Linux世界所采用的是集市模式。

从fetchmail中学到的

1.好的软件作品,往往源自于开发者的个人需要。

2.优秀的程序员知道写什么,卓越的程序员知道改写(和重用)什么。比如linux就是从unix内核改过来的。

3.“计划好扔掉一个吧,迟早你会这么做的。”(Fred Brooks,《人月神话》第11章)。这句话的意思是指在同质化的开源软件库当中,我们所做的第一个选择,并不一定是最合适的选择。但凡事都有一个过程,如果没有第一次的选择,就不会有后面更好的选择。

4.如果你有正确的态度,有趣的事情自然会找到你。

5.当你对一个程序不再感兴趣时,你最后的责任就是把它交给一个可以胜任的接棒者。

6.把你的用户当成开发合作者对待,如果想让代码质量快速提升并有效排错,这是最省心的途径。

7.早发布,常发布,倾听用户的反馈。

8.如果有足够多的beta测试者和合作开发者,几乎所有问题都会很快显现,然后自然有人会把它解决。

9.聪明的数据结构配上愚笨的代码,远比反过来要好得多。

10.如果你把beta测试者当做最珍贵的资源对待,他们就会成为你最珍贵的资源。

11.仅次于拥有好主意的是,识别来自用户的好主意,有时后者会更好。

12.通常,那些最有突破性和最有创新力的解决方案来自于你认识到你对问题的基本观念是错的。

13.“设计上的完美不是没有东西可以再加,而是没有东西可以再减。”

14.任何工具都应具备预期内的功能,但一个伟大的工具能给你带来预期外的功能。

15.写网关类软件时,尽可能不要干扰数据流,而且绝不要扔掉信息,除非接收方强迫你这么做。

16.当你的语言还远不是图灵完备(Turing-complete)的时候,语法糖会让你受益良多。

17.系统的安全性只取决于它所拥有的秘密。谨防虚假的秘密。

18.想要解决一个有趣的问题,先去找一个让你感兴趣的问题。

19.如果开发协调者有一个至少像Internet这样好的沟通媒介,并且知道如何不靠强制来领导,那么多人合作必然强于单兵作战。

集市模式成功的关键

Linux操作系统很好的践行了集市模式的概念,一方面是因为他赶上了internet兴起的东风,另外一方面,社区的领导力很关键,这种领导力不是强制的,集权的那种模式,而是非常民主和谐的一种沟通方式。

系统中每个个体都追求自身效用的最大化,在其共生的过程中,能够自然建立起一种具备自我纠错能力的秩序,这种秩序比任何集中式规划都要精妙和高效。这里,正是“共识原则”达成的地方。

开源***社会实际上是一种礼物文化

礼物文化并不是对物质稀缺的适应,而是对物质充裕的适应。产生于没有生活必需品稀缺问题的人群中,在气候宜人且物产丰富的生态环境中,我们经常可以在其原居民文化中观察到礼物文化。我们也能在自身所处的社会中观察到这点,特别是娱乐行业和富豪阶层。

充裕性会使命令关系难以维持,会使交换关系变成无意义的游戏。在礼物文化中,社会地位并不取决于你控制了什么,而是你给予了什么。

***的三个禁忌

如果一个人的作品被他人占用或者乱改,他的声誉就会受到不公平的损害;禁忌(以及相关习惯)倾向于阻止这种情况发生。

第一个是,项目不要有太多的分支。

第二个是,发布流氓补丁。

第三个是,偷偷的将某人的姓名从项目中移除。

声誉竞争

声誉竞争模型解释了一个常被引用的格言,即“自称是***不代表你就是***,只有其他***认为你是***,你才是***”10。从这个角度看,所谓***,是一个通过贡献礼物表现出他(或她)既拥有技术能力又懂得声誉竞争如何运转的人。对是否为***的判断是一种感知和认同,只能由那在文化中已经做得很好的人给出。

好礼物的标准

1.如果它不能像我所预期的那样工作,那就不是好的——不管它多么聪明和有原创性。

2.在心智层的拓展性工作要比在某功能域内(对现有作品)的重复性工作好。

3.能进入主要发行版的作品比不能进入的好。在所有主要发行版中都包含的作品最令人尊敬。

4.“使用”是最真实的赞美,类别杀手比同类竞争者好。

5.相比那些只挑有趣和简单工作的人,长期致力于艰苦和乏味工作(如调试、写文档)的人更令人钦佩。

6.重要的功能扩展比低层次的修补好。

开源项目的决策和冲突处理

从习惯上讲,如果项目有合作开发者,“独裁者”或项目领导人应该在关键决策上征询合作开发者的意见,尤其当决策关乎某个合作开发者所“拥有”(也即投入了时间并为之负责)的子系统时。一个有智慧的领导者,会认识到项目内部财产边界的作用,不会轻易干扰或推翻子系统所有者做出的决定。

若想让这些冲突解决机制生效,需要整个***社区愿意执行它们,唯一可用的执行机制是“批判”和“放逐”——公开谴责那些破坏习俗的人,并拒绝和他们再次合作。

开源盈利模式

开源软件不仅在技术上,而且也在经济上挑战着现有秩序。将软件“免费”所带来的效果,看来会强制我们进入以服务费为主导的世界,并让我们清楚了解,闭源软件一直以来依靠软件销售价值的做法是多么脆弱。

开放源码的条件

1.可靠性/稳定性/可扩展性非常重要。

2.除了独立的同行评审,没有其他便捷易行的方法验证设计和实现的正确性。

3.该软件对客户的业务非常关键。

4.该软件创建或运转一个公共计算或通信基础架构。

5.关键方法(或能实现同等功能的方法)属于公共知识。

linux不会分裂

所有发行商都不得不在同一个公用开源代码库上操作。他们中的任何一个都不可能在事实上保持差异化,因为许可证(Linux代码的有效成长得益于此)要求他们将代码与其他各方共享。任何发行商一旦开发出一个新功能,所有竞争者都可以免费克隆它。

作者观点的极端性

作者预测,windows企业级服务器操作系统面世将不会成功,然而现实的情况是,目前windows服务器操作系统已经发展成为云操作系统,最新的版本已经迭代到了windows server 2019。所以作者对于闭源软件的预测也存在偏颇之处。但因为作者是开源运动的死忠粉,所以这一点也能理解。

保持中立客观和专注

专注就意味着不要游走到其他有诱惑性的分支上,这一点是我经常觉得需要向***们强调的,因为我们过去的代表们表现出了强烈的意识形态化倾向,他们原本可以把精力集中在相对更有效和更务实的内容上。

***精神

***精神并不局限在软件文化中。人们会把***态度用在其他事情上,比如电子或音乐。事实上,对任何科学和艺术,在其最高水平的活动中都可以发现***精神。软件***若是识别出其他领域的同道中人,也会称他们为“***”。所以有人说***的天性其实是独立于他们所从事工作的。

***与骇客的区别

有一群人高调声称自己是***,但他们并不是。这些人(大多是些毛头小子)的主要目的是攻入他人计算机或者破解电话系统。真正的***称他们为“骇客”(cracker),而且完全不想搭理他们。

如何成为***

1.这个世界充满了迷人的问题等待人们去解决。

2.不要解决一个问题两次。

3.无聊和乏味是有害的。

4.自由是好事。

5.态度不能代替能力。

***的基本技能

1.学习如何编程。如果你只懂一两种语言,那你不会达到***的技能水平,甚至连程序员都称不上——你需要学会以一种独立于任何语言的一般方式来思考编程问题。要成为一名真正的***,你需要到达这样的程度:你能把手册上的东西和你已经知道的东西联系起来,从而可以在几天之内学会一门新语言。学习编程就像学习如何写好自然语言。最好的方式是阅读大师们写的东西,然后写你自己的东西,多读一些,多写一些,再多读些,再多写些……如此循环往复,直到你写的东西开始发展出你在经典中所体会到的力量和简洁。

2.找一个开源UNIX,学习使用和运行它。

3.学习如何使用WWW和写HTML。

更多资讯请关注下方微信公众号:

读书笔记-大教堂与集市相关推荐

  1. 大教堂与集市读书笔记

    大教堂与集市,比喻两种软件的开发模式.大教堂:比喻开发软件像建造大教堂一样,在与世隔绝的环境下,由天才式专家或几个行家里手精心打造.集市:比喻开源社区里面,充满了各种不同的计划和方法,就像一个乱糟糟的 ...

  2. 《大教堂和集市》笔记

    1. Eric Raymond有一篇著名文章<大教堂和集市>(The Cathedral and the Bazaar). 他说,世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到 ...

  3. 大教堂和集市--两种不同的软件开发模式 论文阅读笔记

    该博文来自<The Cathedral and the Bazaar>一文的阅读总结,再加入一些自己的理解. 今天又发现网上的一个资料,可以说是对本文的一个纲领吧:大教堂与集市--维基语录 ...

  4. 大数据之路读书笔记-16数据应用

    大数据之路读书笔记-16数据应用 全球知名咨询公司麦肯锡称:"数据,已经 透到当今每一个行业和业务职能领域,成为重要的生产要素.人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈 ...

  5. 《自律100天,穿越人生盲点》读书笔记

    大家好,我是烤鸭:     <自律100天,穿越人生盲点>,读书笔记. 第一章 "自律100天"的华丽开启 第一节 "自律100天"的底层逻辑 习惯 ...

  6. 本来面目——大教堂、集市,与作坊

    本文刊发在<程序员>杂志09年第三期上.讨论了三种不同背景下的软件工程方法.本文恢复了发表时(因为篇幅)删除掉的一些文字内容. 本来面目 --大教堂.集市,与作坊 一.两本书 ===== ...

  7. 东野圭吾梦幻花读后感_东野圭吾《梦幻花》读书笔记

    东野圭吾的书,<梦幻花>,读书笔记 这本书看完好久了,记得是在去哪儿的路上看完的,让我再来回顾一下. 这本小说有两章序幕,三十九章内容,一章尾声. 单看题目的话,<梦幻花>,一 ...

  8. 《农民的终结》读书笔记优秀范文2700字

    2019独角兽企业重金招聘Python工程师标准>>> <农民的终结>读书笔记优秀范文2700字: <农民的终结>这本书分为两个部分,第一部分阐释了传统农民社 ...

  9. 《管理的实践》66条读书笔记

    前后用两个月读完了德鲁克的这本管理学奠基之作.<管理的实践>出版于1954年,标志着管理学的诞生.所谓经典,就是即便过去半个世纪,仍然让人受用. 读德鲁克的几个关键词:绩效(即结果.目标导 ...

  10. 大数据之路读书笔记-09阿里巴巴数据整合及管理体系

    大数据之路读书笔记-09阿里巴巴数据整合及管理体系 面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性, 直是 ...

最新文章

  1. KMP算法求回溯数组的步骤
  2. mongodb教程二
  3. .NET CF WM上创建快捷方式
  4. Python面向对象-特殊成员
  5. ubuntn终端缩小_缩小可以通过终端执行的工具
  6. Oracle获取月初/月末/季初/季末/半年初/半年末/年初/年末
  7. 请把ios文件解压出来是什么意思_【张小亮】最新版本行会3。中文版本。解压即玩。...
  8. python手写数字识别实验报告_python实现识别手写数字 python图像识别算法
  9. Azure Machine Learning的新特性
  10. 《如何写好科研论文》章节答案(清华)学堂在线(2020秋最新网课答案)
  11. 【NA】高斯积分公式(二)
  12. dedecms分页样式修改 内容页 上一页 下一页
  13. matlab画分散点图,Matlab怎么绘制离散图? matlab画散点图的教程
  14. 阿里、腾讯决战商业“OS”
  15. 分布式高可用:故障恢复
  16. Retinex图像增强算法的优势分析
  17. 梦幻手游服务器维护摆摊公示时间,梦幻西游手游3月24日维护更新公告
  18. box-sizing与盒模型
  19. 胶原蛋白市场爆发,德国vikki如何在市场异军突起?
  20. 互联网发展的成功经验,以及面临的挑战

热门文章

  1. python动态网页爬取——四六级成绩批量爬取
  2. python+openCV滑动条的使用
  3. html在线考试系统论文,在线考试系统
  4. html link canonical
  5. 联想p720装系统_联想发布ThinkStation P920和P720至强处理器推荐
  6. linux防护勒索病毒的补丁,抵御Petya勒索病毒的最新办法
  7. 录屏怎么录,这2个方法不容错过!
  8. WIN10 + Ubuntu18.04 双系统安装教程(新机)
  9. 【第十六篇】Flowable事件之结束事件
  10. 注册微信小程序并开通微信支付流程