首页 > 其他分享 >人月神话读书笔记3

人月神话读书笔记3

时间:2023-03-31 20:34:45浏览次数:39  
标签:神话 软件开发 读书笔记 复杂度 进度 软件 银弹 bug

第十三章—整体部分。防范bug的定义。系统各个组成部分的开发者都会做出一些假设,而这些假设之间的不匹配,是大多数致命和难以察觉的bug的主要来源。

好的自顶向下设计从几个方面避免了bug:

首先,清晰的结构和表达方式更容易对需求和模块功能进行精确的描述。

其次,模块分割和模块独立性避免了系统级的bug。

另外,细节的隐藏使结构上的缺陷更加容易识别。

第四,设计在每个精化步骤的层次上是可以测试的,所以测试可以尽早开始,并且每个步骤的重点可以放在合适的级别上。

第十四章-祸起萧墙。当人们听到某个项目的进度发生了灾难性的偏离时,可能会认为项目一定遭受了一系列重大灾难。然而,灾祸来自白蚁的肆虐,而不是龙卷风的侵袭。同样,项目进度经常以一种难以察觉,但是残酷无情的方式慢慢落后。这个真的深有感触,一般都是很小的地方跟自己说,这个地方有特殊处理先放一下,那个地方回头再测试,结果最后报进度的时候就落后了。这个主要还是靠项目经理把握,有些明确的节点一定要亲自检查成果并及时调整计划,不然后果不堪设想。 第十六章,第十七章-没有银弹。狼这种民间传说中存在的怪物,会在月圆之夜由我们熟悉的人类面孔变成可怕的狼脸。我们熟悉的软件项目也有着人狼的特性,看似简单明了的外表,但是却可能随时变成一个进度落后、超出预算、存在大量缺陷的怪物。在民间传说中对付人狼唯一可靠的武器就是银弹。所以银弹在软件项目中就是比喻这种使得软件成本像计算机硬件成本一样迅速降低的尚方宝剑。然而,作者在40年前悲观的告诉我们,没有银弹。40年后我们回首望去,这个预言恐怕是真的。在软件开发中存在着4个天生的根本困难——复杂度、一致性、可变性和不可见性。现代软件工程中通过高级语言、分时系统、面向对象程序设计、使用开源库、敏捷开发等新的理论实践不断在克服软件开发中的次要困难,同时也减轻了一些根本困难。但始终不能消除软件复杂度这样的根本性困难。因为随着软件工具能力不断的提升,软件开发中需要面对的复杂度其实也是在不断提升的。所以,我们在软件生产效率上的提升需要的是逐步的进步,而不是期待一个一蹴而就的突破。 第十九章—20年后的人月神话。 软件工程的焦油坑在将来很长一段时间内会继续使人们举步维艰,无法自拔。软件系统可能是人类创造中最错综复杂的事物,只能期待人们在力所能及的活在刚刚超越力所能及的范围内进行探索和尝试。这个复杂的行业需要:进行持续的发展;学习使用更大的要素来开发;新工具的最佳使用;经论证的工程管理方法的最佳应用;良好的自我判断以及能够使我们认识到自己的不足——上帝所赐予的谦卑。  

标签:神话,软件开发,读书笔记,复杂度,进度,软件,银弹,bug
From: https://www.cnblogs.com/zzfdbk/p/17277411.html

相关文章

  • 人月神话阅读笔记(三)
    第4章:贵族专制、民主政治和系统设计概念的完整性是系统设计中最重要的考虑因素第5章:画蛇添足在开发第1个系统时,结构师倾向于简洁,之后不断产生装饰和润色。第二个系统是最“危险”的,往往会过度设计。而随后的系统由于之前的经验会相互验证,因此能识别出不够通用的部分。第6章:贯彻......
  • 人月神话读书笔记2
    第七章—为什么巴比伦会失败?巴比伦的失败是因为缺乏交流。他们无法交谈,从而无法合作,以至于工作陷入停顿。因为不知道对方在做什么,许多小组修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定。由于对其他人的各种假设,团队成员之间的理解......
  • 2023年3月31日(软件工程日报)人月神话读书笔记3内容
    第8章:胸有成竹软件工作量是根据规模成指数型增长的,指数大约是1.5,即:工作量=常数×指令的数量1.5工作量=常数\times指令的数量^{1.5}工作量=常数×指令的数量1.5实践是最好地老师实践是最好地老师,但智者还能从其他地方有收获。第9章削足适履这一章讨论了内存......
  • 人月神话读后感3
    对于工作量和工作时间的估算,对于所有的设计者来说都是一个难题。因此我们也在思考一个问题,对于产品的设计,第一次可能因为经验不足出现各类问题和各种错误,第二次会不会比第一次好一些。毕竟我们默认一个人在某个领域的深耕会获得大量的经验,从而有助于他将工作做好。然而《人月神话......
  • 人月神话读后感2
    “人月”难道真的无法换算吗?添加人手对于项目的进展难道一点作用都没有吗?对此,书中也是予以了解答“人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。”上述的条件在编程领域几乎是不可能的,可以想见,在实际的工作中也极少存在有这些既......
  • 《人月神话》读后感(二)
    第七章的主题是为什么巴比伦塔会失败?书中写道巴比伦塔项目的失败是因为缺乏交流,以及交流的结果——组织。在日常编码中我们要明白团队的重要性,团队在一个完美的项目中是不可缺少的存在,在团队中要学会交流,不要“因为左手不知道右手在做什么,从而进度灾难、功能的不合理和系统缺陷纷......
  • 人月神话读后感1
     为什么“人月”是“神话”。小学的时候我们都做过这样的应用题:“工厂需要加工一批零件,安排5名工人的话需要10小时完成,那么安排25名工人加工,多少小时可以完成”之类的。对于这类题目,小学一二年级的学生都可以轻松得到答案。也正是如此,如今的工作中,仍有不少同仁秉持这样的小学生......
  • 人月神话阅读笔记(二)
    《人月神话》是一本软件工程领域的经典著作,作者是著名的计算机科学家弗雷德里克·布鲁克斯。这本书主要讲述了软件开发过程中的一些问题和解决方法,以及如何管理一个软件项目。以下是我对这本书的一些阅读笔记。首先,布鲁克斯在书中提到了一个非常重要的概念,即“人月”。他指出,软......
  • 人月神话阅读笔记(一)
    《人月神话》讲了什么一开始我觉得这本书重点是在软件工程,但后来我觉得更准确的说法是,《人月神话》是讲软件工程中人与团队关系的。一个由个人完成的“小”程序,和一个由团队完成的“大”程序,有根本性的不同,《人月神话》将讨论的是那些由团队进行开发的大型程序。另外,软件工程的项......
  • 人月神话读书笔记
    第一章作者将软件系统开发比作吞噬了恐龙、剑齿虎等史前巨兽的焦油坑,许多大大小小的团队被软件开发的焦油坑所吞噬。作者首先介绍了变成系统产品的演进,指出程序、编程系统、编程产品、编程系统产品几个概念间的区别,其中只有编程系统产品才是真正可用的面向用户的产物。然后作者......