《梦断代码》读后感
这是老师推荐阅读的第三本书,该书以chandler项目的诞生开头,以chandler项目的落幕而结束。描述了软件开发所遇到的种种艰难和挑战。
我很粗略地看完,印象比较深的故事有三个:
1.编程的本质。一位软件开发人员曾经在85年的时候写过一篇论文,说美国的星球大战计划绝不可能实现,因为导弹防御系统天生无法在真实的工作条件下测试。而编程却是一种试错功夫,人们在写程序时,从不指望一次就写对,他们会犯错,然后再改正,测试和修正,如是反复。
2.注释。注释是给读程序的人看的。实际上它不仅是说明性的文字,也是程序员情绪发泄的阀门。windows 2000 某个版本的部分源代码泄露到网上,大家发现微软的程序员们写的注释有很多这样的句子:we have to do this only because Exchange is a moron.(必须这么做,因为Exchange太白痴)
3.白板上的即时贴。如此,在程序开发的过程中,我们可能会出现偏离原先的计划的情况,毕竟开发需要创造力,我们难免会忘了初心。
《梦断代码》书中讨论了“软件时间”这一概念,布鲁克斯在书中提出了一个十分著名的观点,“往以延误的项目中补充人力,只会使其继续厌恶”,经过了无数年间的实践,这一观点都成了程序员和开发经理的梦魇。布鲁克斯指出了其中要害,”只有在任务能分派给许多相互之间无须沟通的工作者时,人和月才是可互换品。“制作软件的大量工作受困与”序列约束“”,它限制的任务分解的程度:完成某项任务是处理其他任务的先决条件,这与人力投入多少无关。
整本书以一个发生在当下的真实的故事写成,不仅仅是写给程序员的,也是写给软件产品经理和其他与软件开发相关的或对此感兴趣的人的。每一个经历过软件开发过程的人,对书中的生动描述都会感同身受。
最后韩磊的译后记中已经提到了Chandler项目的结局,它失败了,它成了众多失败软件项目中的一个。这个结局也更加表明了做软件的不易。