代码大全,第三章,软件创建的先决条件,一个软件的质量是由你的准备工作占整个开发流程的时间决定的。
在开始修造一幢房屋之前,建筑工人会评审蓝图,确认所有用料已经备齐,并检查房子的
地基。建筑工人为修建摩天大楼和修建狗舍所做的准备工作是截然不同的。但不管是什么样的
项目,准备工作总是和需要相适应的,并且应在工程正式开始前做完。
本章主要论述在软件创建之前所要做的准备工作,对于建筑业来说,项目的成败往往在开
工前就已经决定了。如果基础打得不好,或者项目计划进行得不充分,你所能做的最多也就是
防止计划失败,根本谈不上做好。如果你想做一件精美的首饰,那么就得用钻石作原料。如果
你用的是砖头,那你所能得到的最好结果不过是块漂亮的砖头而已。
呵呵,这个比喻很贴切
创建一个软件系统与其它需要耗费人力与财力的工程是一样的。如果你要造一幢房子,在 开始砌第一块砖之前,你必须事先画好建筑图与蓝图。在你开始浇铸水泥之前,你必须让人评 审你的蓝图并获得通过,在软件开发中事先做计划也与此类似。 在你把圣诞树立起来后,你才会开始装饰它,在没有修好烟囱之前你也不会点燃炉火的, 同样,也没有人会打算在油箱空空的情况下踏上旅程,在软件开发中,你也必须按照正确的顺 序来进行。 程序员处于软件开发食物链的最后一环。结构设计吃掉需求分析;详细设计者以结构设计 者为食,而他自己又成为编码者的食物。 比较软件食物链和真正的食物链,我们会发现如下事实,在一个正常的生态系统中,海鸥 以沙丁鱼为食,沙丁鱼吃鲜鱼,鲜鱼吃水虱,其结果会形成一个正常的食物链。在编程工作中, 如果软件食物链的每一级都可以吃到健康的食物,其结果是由一群快乐的程序员写出的正确代 码。 在一个被污染了的环境中,水虱在受到核沾染的水中游泳,鲫鱼体内积聚了滴滴涕,而沙 丁鱼生活的水域又遭受了石油污染,那么,不幸的海鸥由于处在食物链的最后一环,因此,它 吃的不仅仅是沙丁鱼体内的石油,还有鲜鱼体内的滴滴涕和水虱体内的核废料。在程序设计中, 第三章 软件创建的先决条件 15 如果需求定义遭受了污染,那么这又会影响结构设计,而这将最终影响创建活动。这将导 致程序员们脾气暴躁而营养不良,同时生产出遭受严重污染而充满缺陷的软件。