《代码大全》摘抄
转载
3.3.2 稳定需求的神话
稳定的需求可以说是软件开发的法宝。有了稳定的需求,软件开发工作可能从结构设计到详细设计到编码,都平稳、顺利的进行。这简直是造就了软件开发的天堂。你可以预测开支,不必担心最终会冒出一个让你多花 100 倍钱的错误来。
用户一旦接受了写好的需求文件,便再也不会提出更改需求,这简直是太好了。然而事实上,在实际项目中,用户在代码写出来之前,往往并不能确切可靠地描述出他想要的到底是什么,这倒并不是说用户是一种低级生物。正如随着工作的进行,你对其理解越来越深刻一样,用户对自己想要的东西,也是随着项目的进行而越来越清楚的,这也是需求变动的主要原因。一个从不变更需求的计划,事实上是一个对用户的需求不予理睬的计划。
典型的变动有多少呢?根据 IBM 的调查,对于一个典型的有一百万字的需求分析,大约25%的内容在开发过程中要进行变动。
或许你认为卡迪拉克小汽车是空前绝后的,帝国大厦将万古永存,如果真是这样的话,那你就相信你的项目需求永远不会更好了。如果不是这样,那么或许我们可以采取一些措施,使得由于需求变更所造成的冲击最小。
28.2 代码调整介绍
用代码调整的另一个原因是:掌握写出高效的代码的艺术是一个优秀程序员的必经之路,在网球中,你不会通过捡球得任何分,但是你仍需要学习正确的捡球方法,你不能只会弯下腰用手捡球。如果是你好的网球手,你应该拍头重击网球,等它反弹至腰部高度时接住它。重击超过三次,或第一次球没弹起都算捡球失败。捡网球并不是一个重要问题,但在网球文化中,捡球的方法能给你带来一定的声望,同样,除了你和其它程序员,没有人关心代码的紧凑程度,虽然这样,在编程文化中,写一个短小有效的代码,能证明你是一个极好的程序员。
昨天晚上在厕所看到的,不过懒得敲了,今天又下了个老版《代码大全》的 pdf,找来这段
Update in 2006.07.19
17.7.1 程序复杂性的重要性
计算机科学起码在二十年前就注意到了程序复杂性的重要了。二十年前,Edager Dijkstra 就意识到复杂性的危险,他说:“一个聪明的程序员总是清楚地知道自己的脑力容量有限,因此他得十分小心谨慎地完成编程任务”(1972)。这并不意味着为了处理很复杂的问题你得增大你的脑力,而是说你得想办法尽可能降低复杂性。