《人月神话》读书笔记

序言

首先谈一下书的作者Frederick P.Brooks,Jr.是北卡罗来纳大学 Kenan-Flagler商学院的计算机科学教授,北卡来罗来纳大学位于美国北卡来罗来纳州的查布尔希尔。Brooks 被认为是“IBM 360系统之父”,他担任了 360 系统的项目经理,以及 360 操作系统项目设计阶段的经理。凭借在上述项目的杰出贡献,他、Bob Evans 和Erich Bloch 在 1985 年荣获了美国国家技术奖(National Medal of Techology)。早期,Brooks 曾担任IBMStretch 和 Harvest 计算机的体系结构师。

再次打开这本书,心情各种的复杂,索性这次一口气读完这本书,第一次读这本书没有太多的心理准备,也没有太多的耐心,读了没有20页就放弃了,只是觉得有点晦涩难懂。最近天气转凉,一个人在宿舍,索性就打开这本书进行观摩,一天时间包括吃饭在内,基本上没有离开宿舍半步,一口气读完。也就即兴写下读书感悟,供大家批评、指教。

个人感悟

在作者生活的时代,那个时期电脑的配置相当低,最快速的电脑,内存也只有差不多4MB,所以在那个时期计算机硬件会很大程度上制约着软件的发展。作者恰恰就是当时的软件开发人员。

在书中,首先阐述了程序员这个职业的乐趣、以及职业的苦恼。同样对程序代码和编程系统产品之间的关系进行分析。将程序员乐观的原因进行解释。还对相关名词进行释义:人月、系统测试、空泛的估算等。将一个项目所有的成员比作外科手术队伍(因为一个成熟的系统需要分工,每一个模块都需要一个小组去完成,然后通过接口进行拼接),外科顾名思义,就是简单的进行拼接。然而一个好的系统需要有项目经理的统筹兼顾,必须保证概念一致性,否则做出来的产品要么BUG超多,要么就是牛头蛇尾四不像。不能给用户带来良好的体验,那么你的产品便是失败的!中间还大手笔讲了一个产品经理应该如何进行交互,以及交互所带来的效益。

同时也提到在结构设计师在进行第一个系统进行设计的时候,往往会加倍小心,所以第一个系统总是成功的。但设计第二个系统时,往往会轻车熟路,喜欢加这样那样些新鲜的功能,第二个系统设计时同样是危机重重的,大部分的功能可能没有被用户所用到。你可能疑惑了,没用到就没用到能怎样?但在当时,计算机的硬件性能有限,而且系统所占用的内存有时候需要致富昂贵的租赁成本。所以一个错误的或者说无用的设计,有可能会带来巨大的成本代价。

书中有这样一个问题:为什么巴比伦塔会失败?据《创世纪》记载,巴比伦塔是人类继诺亚方舟之后的第二大工程壮举,但巴比伦塔同时也是第一个彻底失败的工程。失败的原因是上帝让这些人彼此之间不能交流,渐渐的,这一群人类彼此变的孤立,分散在世界各地。所以这样一个宏伟的工程失败了。一个大型的项目也是如此,如果项目成员彼此没有进行交流,那么这个巨大的项目就会像巴比伦塔一样,失败的很彻底。同样的一个项目组成员之间的交流也不是肆无忌惮的闲聊,而是有目的、有组织的进行项目相关的交流。

书中更多是作者当时工作的感悟,以及做系统产品相关的项目经验,包括为人处世,怎样横向的协调好同级之间的关系,以及向上处理好跟领导的关系。

在书的最后,作者对20年后的计算机领域进行了预测,预言到parnas提出的封装,将代码模块化,这些模块的内部结构应该是程序员的私有财产,外部是不可见的。编程人员被屏蔽而不是暴露在他人模块内部结构面前。这样也推动了编程的发展。这也恰恰印证了,面向对象程序设计的价值所在。本人文笔有限,有很多不周的地方望大家见谅~

  经典语录

(1)美酒的酿造需要年头,美食的烹调需要时间;片刻等待,更多美味,更多享受.

(2)聚沙成塔,集腋成裘。

(3)实践是最好的老师,但是,如果不能从中学习,再多的实践也没有用。

(4)不变只是愿望,变化才是永恒。

(5)普遍的做法是,选择一种方法,试试看;如果失败了,没关系,再试试别的。不管怎么样,
重要的是先去尝试。

(6)巧匠因为他的工具而出名。

(7)不了解,就无法真正拥有。

(8)那些想看到完美方案的人,其实在心底里就认为它们以前不存在,以后也不可能出现。

(9)我们理解的也好,不理解的也好,描述都应该简短精练。

(10)只能根据过去判断将来,然而永远无法根据过去规划将来。

你可能感兴趣的:(剑指offer)