大教堂与集市读后感10篇
《大教堂与集市》是一本由[美] Eric S. Raymond著作,机械工业出版社出版的平装图书,本书定价:59.00元,页数:194,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。
说起软件工程这档事,我总有种不知从何说起的感觉。作为计算机专业的学生,早年都学过一门叫做软件工程的课,背下来一些流水线式的项目开发阶段,首先是在项目定义阶段要做可行性分析、需求分析这些事,再来进入到开发阶段要做概要设计、详细设计、设计实现等步骤,最后是维护阶段的运行与维护。仿佛软件开发就像《摩登时代》里的工厂流水线,分工明确。井然有序。目的是让程序员成为流水线上的工人,使他们成为生产机器中的一个螺丝钉,无需创意,无需个性,只要够熟练就行。很多大型企业的开发项目也确实是按照这个路数走的,很多程序员被戏称【码农】也正是这个原因。
但是,等我工作了若干年之后再来看这套工程管理模型,感觉这基本上就是个【计划经济】。首先,绝大部分软件在开发初期根本不会有那么多人参与,通常是两三个人要做所有的事情。分那么多阶段,那么多工序是没有意义的。再来,就算是有了一定规模的公司,他们会让很多人参与一个项目,往往都是为了维护已有的软件,程序员的主要任务是维护该软件的版本,并在此基础上开发新的版本,在这种情况下,他们其实已经有了现成的开发框架,这些人只需要根据特定的需求将该框架填充成具体的专用软件即可。对于原框架来说,这更像是增加了一个特性分支。例如说,eclipse是一个通用的IDE框架,而android studio是专用于android开发的IDE,它就是基于eclipse开发出来的。我们可以将它视为eclipse的一个分支。这更像是某种意义上的维护工作,它的可行性,需求是一目了然的,也不需要概要设计,只需要按照其原有的插件体系把功能实现即可。然后,bug修复是这个项目的主要工作。所以,如何让那么多人一块有效地,有序地发现bug,报告bug,解决bug成为了主要问题。
上世纪的七十年代和八十年代爆发了两次所谓的[软件危机](https://zh.wikipedia.org/wiki/软件危机)。那时候的许多软件项目都出现了预算超支、发布时间严重拖延、质量管理缺失等问题。大量的项目因此而失败,问题很严重,以致于北约这样的组织都要开会来讨论这个问题。但这些高高在上的人物讨论出来的东西就是我们上面所说的软件工程理论。按照《人月神话》作者布鲁克斯的说法,这需要大量的银弹,人员来支撑。这只有大型企业,科研机构才能做到。当然对于这些机构来说,这套理论确实能解决一些问题。尤其在互联网时代来临之前,这似乎也是我们唯一的选择。
但大型机构都存在官僚主义的问题,效率低下,随着时间的推移它们往往都会离人们的实际需求越来越远,就像是基督教的大教堂,高高在上,定期发布信息,内容庞杂而臃肿。对于以创意为主导的中小软件开发是毫无帮助。于是Linux之父林纳斯在独自开发Linux内核的过程中走出了一条新的道路:开源社区。简单来说,就是由软件项目的创始人开发出一个不成熟的初始版本,然后将其丢到一个开发者社区中,让其在开发者自发性的修改和分享中自然生长。最后,项目创始人会根据其生长情况将自己认可的部分纳入到项目的主分支中。这种乱中有序的组织形式让Linux项目获得了巨大的成功。给软件开发的工程实践提供了另一种选择。
上世纪九十年代末期,网景公司在与微软公司的浏览器大战中败下阵来,面临着公司的生存危机。他们决定试试开源的方式。《大教堂与集市》这本书就是在这样的时空环境下写就的。它的作者埃里克雷蒙就是网景公司践行开源运动时所聘请的顾问。这本书为开源运动奠定了理论基础。他系统阐述了互联网条件下的协作模式,同行审评的优势,回答了《人月神话》中提出的银弹问题,人员管理成本问题。如今,微软、苹果这些曾经的大教堂都纷纷进入了开源领域。开源软件作为软件工程的另一种组织形式已经毋庸置疑。
最后需要提醒的是,开源运动和理查德斯托曼领导的自由软件运动不是一回事。开源运动更多的是一种软件的开发方式,虽然也强调开放源码、免费分享的黑客精神。但并不排斥世俗、商业。而自由软件运动则更像是一种意识形态的运动,非常的理想主义。非常激烈地反对商业化,有点乌托邦化。这客观上其实给源代码的分享带来了不少的阻力。
《大教堂与集市》读后感(二):大教堂与集市读书笔记
书摘:
黑客文化及其所取得的成功,对于研究人类动机、工作组织方式、专业主义的未来、公司形态等一些基础性问题,以及这些内容在21世纪信息充裕的后稀缺经济时代中如何变化和演进,都提供了一个很好的研究范例。
这里所说的“黑客”并非是记者们滥用的电脑犯罪分子的代称,而是指对某种事物的狂热爱好者、艺术家、古怪的天才发明家、问题解决高手和技术专家。
KISS(Keep It Simple,Stupid)哲学
绝大多数商业公司所采用的“大教堂”模式和Linux世界采用的“集市”模式。两种模式的根本不同点在于他们对软件排错有着完全对立的认识。
好的软件作品,往往源自于开发者的个人需要。
优秀的程序员知道写什么,卓越的程序员知道改写(和重用)什么。
当你对一个程序不再感兴趣时,你最后的责任就是把它交给一个可以胜任的接棒者。 尽管并没有明确提及,但Carl Harris和我
当你对一个程序不再感兴趣时,你最后的责任就是把它交给一个可以胜任的接棒者。
在一个已经延期的项目上增加人手,只会让项目更加延期。”更为一般地讲,Brooks定律指出,随着开发人员数目的增长,项目复杂度和沟通成本按照人数的平方增加,而工作成果只会呈线性增长。
让我看你的流程图但不让我看表,我会仍然搞不明白。给我看你的表,一般我就不再需要你的流程图了,表能让人一目了然。
通常,那些最有突破性和最有创新力的解决方案来自于你认识到你对问题的基本观念是错的。
设计上的完美不是没有东西可以再加,而是没有东西可以再减。
Linux黑客们致力于最大化的“效用函数”,其目的并不是经典意义上的经济价值,而是自我满足和黑客声望这些无形的东西。
最有才华的程序员和那些刚刚及格的程序员之间,生产率能相差100倍。
一个快乐的程序员是一个既没有被浪费也没有被压垮(由于不适当的目标或过程中充满压力与冲突)的人,乐趣预示着效率。
大多数的人类组织模式都是为了适应稀缺和匮乏,每种模式有其不同的社会地位获取途径。
最简单的模式是“命令体系”。在命令体系中,稀缺物品被中心化的权力分配并以武力为后盾。这种体系的延展性很差
我们的社会显然是一个“交换经济”,这是一种对稀缺性的微妙适应。与命令体系不同,它的延展性相当好,稀缺物品的分配主要是通过贸易和自愿合作
黑客,是一个通过贡献礼物表现出他(或她)既拥有技术能力又懂得声誉竞争如何运转的人。对是否为黑客的判断是一种感知和认同,只能由那在文化中已经做得很好的人给出。
如果它不能像我所预期的那样工作,那就不是好的——不管它多么聪明和有原创性。
至于“什么是正确的事”,其实不太算个问题。因为对于任何这种问题,要么有一个所有相关方都接受的客观的决策方法,要么没有。如果有的话,问题解决,皆大欢喜。如果没有,它就会归入到“谁来做决定”这个问题。
责任背后是权力
在整个项目中投入工作最多的一方(也即在整个项目中拥有最多领土权的一方)胜出。
软件很大程度上是一个服务行业,虽然长期以来都毫无根据地被错认为是制造行业。
使用价值和销售价值之间的差别,让我们注意到这样一个关键事实:在从闭源转向开源的过程中,受到威胁的仅仅是销售价值,而非使用价值。
总结:
《大教堂与集市》读后感(三):十五年前的关于开源与封闭的软件开发模式的思考
作者熟悉开源软件的开发模式,总结了一些开源社区的特征。比如说开源软件的贡献者们(书中称为黑客)其实在乎的是声誉,其实开源社区还是有一些约定俗成的行为准则的。
后面作者谈到他参与到了开源对闭源的商业战斗中。他的演讲让Netscape高层下了开源的决心。作者在2000年前对开源做了一些预测,认为应用级软件很可能继续闭源,中间件会分化,开源闭源都可以,基础架构比如操作系统、Web Server,开源软件的份额将增加。现在看这个预言是说对了。
个人感觉这一类比较老的经典的缺憾在于:时间过去这么久了,书中说的观点事实有哪些需要修正补充,虽然不指望出版者和译者给出来,但是希望能给出一些相关文献。既然是圣经,不至于没人来尝试修正补充吧。
《大教堂与集市》读后感(四):此人种名曰:黑客(Hacker)
一直以来,我就很奇怪
大众眼中的程序员,一般是呆头呆脑,按逻辑办事,终日沉浸在自己世界,沉默寡言,高智商低情商,为哪种编程语言或框架比另一种要好争论不休
哦,还有最重要的一条:木有妹纸
因为纵观国外的一些大牛,他们除了代码精湛之外,还写 Blog、出书、营销、开公司、拉风投、潜水、登山、旅行...
而且并非浅尝辄止,只能用逆天来形容
这...还是程序员么
看了此书才明白,此人种名曰:黑客(Hacker)
上次看《黑客与画家》时,就很鸡冻
还记得刚学 C 语言时,就和我哥说,不想当一名黑客,也不想搞安全相关的东东
毕竟当时学校那破图书馆里都是《黑客攻防实践》《黑客反汇编》之类的东东
时隔多年,现在是知道了,原来我不想成为的是 骇客(cracker)
对于 骇客,Eric 文中给出了一些建议:
gt; 如果你想成为一名黑客,请接着读下去。如果你想成为一名骇客,去读alt.2600新闻组(news:alt.2600),如果你发现自己并没有想象中那么聪明,做好准备去蹲上5到10次监狱吧。这就是我想对骇客说的。
关于这个,我是存有疑问的,以后有时间看下 2000 年之前他们分别是什么版本
gt; Java也是一个不错的学习编程的语言。它比Python要难,但可以产生比Python更快的代码,我想它可以作为一个优秀的第二语言
没看`Python` 的直接来看 `Ruby` 吧,这是一门让你爽的语言,还有,此书由于出版时间,iOS & Android 尚未出现
gt;最好把这五种语言(Python、Java、C/C++、Perl和LISP)都学了。它们不只是最重要的黑客语言,还代表了截然不同的编程方法,每一种都会让你受益匪浅
gt;创造性头脑是无比珍贵的有限资源,它们不应浪费在重新发明轮子这种事上,尤其是还有这么多迷人的新问题在那里等着的时候
GUI
gt;问题主要出在人机工程学设计和界面心理学上,黑客在这些方面从来就很弱。黑客在为其他黑客设计接口时做得很好,但他们往往不善于为另外95%人群的思维过程建模
下面是书摘,附录很有意思
- - -
##2. 大教堂与集市
1. 好的软件作品,往往源自于开发者的个人需要
2. 优秀的程序员知道写什么,卓越的程序员知道改写(和重用)什么
3. “计划好扔掉一个吧,迟早你会这么做的。”(Fred Brooks,《人月神话》第11章)
4. 如果你有正确的态度,有趣的事情自然会找到你。
5. 当你对一个程序不再感兴趣时,你最后的责任就是把它交给一个可以胜任的接棒者
6. 把你的用户当成开发合作者对待,如果想让代码质量快速提升并有效排错,这是最省心的途径。
7. 早发布,常发布,倾听用户的反馈。
8. 如果有足够多的beta测试者和合作开发者,几乎所有问题都会很快显现,然后自然有人会把它解决。
- Linus定律道出了大教堂模式和集市模式最关键的区别:在大教堂建筑者看来,bug是棘手的、难以发现的、隐藏在深处的,要经过几个人数月的全心投入和仔细检查,才能有点信心说已经剔除了所有错误。而发布间隔越长,倘若等待已久的发布版本并不完美,人们的失望就越发不可避免。
- 对集市模式而言则完全不同,在上千名合作开发者热切钻研每个新发布版本的情况下,你可以假定bug是浅显易找的,或者至少可以很快变得浅显易找。所以你会频繁发布以获取更多的修正,其副作用是良性的:即便发布中有些小问题,你也不会损失太多。
9. 聪明的数据结构配上愚笨的代码,远比反过来要好得多。
10. 如果你把beta测试者当做最珍贵的资源对待,他们就会成为你最珍贵的资源
11. 仅次于拥有好主意的是,识别来自用户的好主意,有时后者会更好
12. 通常,那些最有突破性和最有创新力的解决方案来自于你认识到你对问题的基本观念是错的。
13. “设计上的完美不是没有东西可以再加,而是没有东西可以再减。”
14. 任何工具都应具备预期内的功能,但一个伟大的工具能给你带来预期外的功能。
15. 写网关类软件时,尽可能不要干扰数据流,而且绝不要扔掉信息,除非接收方强迫你这么做
16. 当你的语言还远不是图灵完备(Turing-complete)的时候,语法糖会让你受益良多。
17. 系统的安全性只取决于它所拥有的秘密。谨防虚假的秘密。
18. 想要解决一个有趣的问题,先去找一个让你感兴趣的问题。
19. 如果开发协调者有一个至少像Internet这样好的沟通媒介,并且知道如何不靠强制来领导,那么多人合作必然强于单兵作战
- 如果你在工作过程中感到恐惧和厌恶(即便你以自嘲的形式来表达——比如悬挂呆伯特玩偶),就应该意识到过程已经出了问题。快乐、幽默和玩兴是真正的资产
- 玩”是创造性活动中最具经济效能的工作模式。
##3. 开垦心智层
- 在礼物文化中,社会地位并不取决于你控制了什么,而是你给予了什么
1. 如果它不能像我所预期的那样工作,那就不是好的——不管它多么聪明和有原创性。
2. 在心智层的拓展性工作要比在某功能域内(对现有作品)的重复性工作好。
3. 能进入主要发行版的作品比不能进入的好。在所有主要发行版中都包含的作品最令人尊敬。
4. “使用”是最真实的赞美,类别杀手比同类竞争者好。
5. 相比那些只挑有趣和简单工作的人,长期致力于艰苦和乏味工作(如调试、写文档)的人更令人钦佩。
6. 重要的功能扩展比低层次的修补好。
##4. 魔法锅
1. 可靠性/稳定性/可扩展性非常重要。
2. 除了独立的同行评审,没有其他便捷易行的方法验证设计和实现的正确性。
3. 该软件对客户的业务非常关键。
4. 该软件创建或运转一个公共计算或通信基础架构。
5. 关键方法(或能实现同等功能的方法)属于公共知识
##5. 黑客的反击
- 理论和语言的缺乏在两个方面对我们不利:一是我们不能系统性地思考如何改进我们的方法,二是我们难以向别人解释和推销我们的方法
##附录A:如何成为一名黑客
###黑客搞建设,骇客搞破坏
###黑客的态度
1. 这个世界充满了迷人的问题等待人们去解决。
2. 不要解决一个问题两次。
3. 无聊和乏味是有害的
4. 自由是好事
5. 态度不能代替能力。
###黑客的基本技能
1. 学习编程
- 想要获得将知识转化为技能的思维模式,只能通过实践和跟随大师。做法就是读代码和写代码
2. 找一个开源UNIX,学习使用和运行它。
3. 学习如何使用WWW和写HTML。
###地位之于黑客文化
1. 写开源软件。
2. 协助测试和调试开源软件
3. 发布有用的信息。
4. 帮助做一些基础工作。
5. 服务黑客文化自身。
###格调问题
- 学习很好地使用你的母语写作。尽管有一种陈旧的看法认为程序员写作不行,但很多黑客(包括我所知道的那些最优秀的黑客们)写得一手好文章,而且其数量多得让人吃惊。
- 阅读科幻小说,参加科幻小说集会(这是认识黑客和潜在黑客的好方法)。
- 研习禅修,并且/或者学习武术。(心智训练似乎在很多重要方面都是类似的。)
- 培养起对音乐的鉴赏力。学会欣赏一些独特类型的音乐。学习很好地演奏乐器,或者学习如何唱歌。
- 培养出你对双关语和俏皮话的欣赏能力。
但这些事与左右脑技能的结合有关,这可能是问题的关键所在(黑客不仅需要有很强的逻辑推理能力,而且要能够很快从问题的具体逻辑中跳脱出来)
###不要
不要使用愚蠢、浮夸的用户名或昵称。
不要卷入Usenet(或其他任何地方)的网络骂战。
不要自称为“电脑朋克”,也不要浪费时间交往那些自称电脑朋克的人。
不要让你的贴子或email充满错误的拼写和糟糕的语法。
最后:
**“只有其他黑客认为你是黑客时,你才是黑客”**
所表达出来的价值观,类似于中世纪欧洲骑士时代精英团体所宣称的理想(通常总是无法实现),这些社会精英有足够的财力超脱于所处的稀缺经济。像人们期望的那样,一个有抱负的骑士为正义而战,他追求荣誉而非获取钱财,他站在弱势和受压迫者一边,不断寻求机会挑战自己英勇才能的极限。也正因如此,他会认为自己(并被别人认为)是人中翘楚——前提是他的能力和品行已获得其他骑士的承认和正式认可。在亚瑟王传奇(Arthurian tales)和武功歌(chansons de geste)所颂扬的骑士精神中,我们看到了理想主义、对自我的不断挑战和对地位的追求,这与当今激励黑客的要素是类似的。
《大教堂与集市》读后感(五):很好的思想,很烂的翻译
这本书在发布时(2000年前)想法是相当不错的,当时我也是刚接触开发,对开源软件的动因很不理解,也不太相信。作者很有真知灼见,对开源的意义和动力有独特的见解。10多年来开源的发展证明了作者的远见,即开源的规模,质量不比闭源的差,甚至于更好。
但是我不得不说,译者太专注于字面翻译,原著很多内容如果字面翻译太晦涩,使得中文版看的好累,对于翻译的书籍,是需要译者加上自己的见解和语言,来帮助中国人阅读,而不是找到最合适的单词连成句子。这本书是少有的非技术类计算机书籍我看的那么累的。另外,第三章注解的顺序都不对,感觉做的很粗糙。在这种情况下,180页的书,还卖59块钱,太恶心了。果断打最低分。建议大家不要买中文版。
《大教堂与集市》读后感(六):让“开源”上纲上线
早年就看过《如何成为一名黑客》,只是对作者其人无甚了解,应该说根本没有注意到作者是谁。多年后读过此书,才真正知道了雷蒙德。
简单对全书做出一些评价:
这本书算上序言和结尾的注释,占去全书近20%的篇幅。
这本书成书非常早,所述事件基本在2000年之前,总得来说很老。
全书分为五个章节(不算两个附录),分别为:
“黑客圈简史”——简单梳理了一遍黑客的历史,大概都是Unix,Linux,MIT,Web这些故事。
“大教堂与集市”——与书同名,也是本书的重点章节之一。本章给出了两种开发软件的模式——大教堂模式与集市模式,分别对应闭源与开源两种,通过作者自身的开源项目(fetchmail),给出了一些实用的经验以及开源的好处。
“开垦心智层”——另外一个重点章节,给出了开源可行和成功的原因,是真正的开源方法论。比如如何处理所有权,我想这是只有真正做到一定程度的开源软件的拥有者才会考虑的问题,而作者给出了很好的解答。作者还细致的分析了开发者参与开源的动力,这是一般书籍很少涉猎的部分。
“魔法锅”——这一章主要介绍了开源背后最容易让人诟病的经济问题,通过分析,回应了许多对于开源的误解。
“黑客的反击”——主要讲述作者对开源的影响和贡献,包括Mozilla的开源与开源软件的成功。
这本书尽管在时间上已经落后,但其讲述的思想却不落后,这也正是此书与其他这类书籍的重要区别,它讲述了很多开源背后深层次的东西。这本书不是教你如何成为黑客(好吧,不能算附录那一节),也没有任何黑客的故事让我们一窥究竟。这本书是从一个较高的角度,较深的层次对开源做出了深入的探讨(毕竟作者是最早一批做开源的)。对于一般的开发者来说,可能了解开源,可能参与开源,但很少会从较高较深的角度去思考开源。为什么开源这种没有组织的开发方式可行甚至效果很好(完全是对人类行为的一种探讨),又是什么让这些开发者自愿的贡献自己的精力参与开源,而“开源”的方式对整个软件行业的发展到底起到一种什么样的作用。此书对这些问题都给出了精彩的解答,它不似一般的讲述黑客或开源的书籍,而是真正把“开源”上升到一种理论高度,使开源不再是一种仅仅在实践上可行的经验方法。
这就是雷蒙德比一般软件开发者或者书籍作家的高杆的地方,他真正做到了将“开源”这件事情达到上纲上线的程度,成就了一部历久不衰的作品。
《大教堂与集市》读后感(七):副标题《对Linux和开源革命的沉思》更像是书的主题
2015/1/15 也就第二章《大教堂与集市》和附录A如何成为一名黑客比较精彩吧,翻译不是太地道,有些地方读起来不是太爽,东西不多,定价59对销售影响应该也不小~
读书笔记不整理了,收获不太大。
由五篇同一主题(黑客&开源)相互独立的文章构成。
第一章《黑客圈简史》黑客历史,没什么意思。
第二章《大教堂与集市》精彩!结合Linux和自己FetchMail开源项目的经验,讲了开源是如何颠覆《人月神话》里描述的传统软件开发Brooks定律,爆发出极大生产力的故事,把开源的"集市"概念讲得很透彻。
第三章《开垦心智层》写的是黑客写开源软件的动力所在。
第四章《魔法锅》开源经济学,讲了开源软件获得持续资助的九种模型。
第五章《黑客的反击》作者在这场开源革命中做的一些工作。
附录A《如何成为一名黑客》精彩!讲了黑客文化~
本书有个副标题,印在了封面,并没有翻译,是“musings on Linux and open source by an accidental revolutionary”(对Linux和开源革命的沉思),更像是书的主题。