编程之道(翻译)4
三, 设计
编程大师说: "当你开始测试一个程序时, 作设计上的修改已经太晚了"
3.1
有个人去参加一个计算机展示会. 每天他进场的时候他对门卫说: "我是
一个大盗, 我从来没有失过手, 这次展览也别想例外."
门卫很害怕, 因为里面有价值成百上千万的计算机设备, 所以他很留心的
看着那个人, 但他只是到处闲逛, 嘴里还在自言自语.
当他要走的时候, 看门人把他叫到一边, 仔细的搜查他的衣服, 但是什么
都没找到.
第二天,这人又来了, 他一来就嚷道, "昨天我收获颇丰, 但是今天我的收获
会更多.", 于是门卫盯得更紧, 但是还是没有发现任何可疑之处.
展览会的最后一天, 门卫再也忍不住自己的好奇心了. "伟大的盗贼", 他说,
"我完全给搞糊涂了, 请告诉我, 您到底偷到了些什么?"
这人笑了, "我在偷思想."
3.2
曾经有个编程大师总是写非结构化的程序. 一个崇拜他的新手也学者写非
结构化的程序. 当他请自己的老师评价他的工作时, 他的老师批评了他的这
种做法. 他说: "适合大师的编程方法不一定适合一个新手. 在你想超越
结构化编程之前, 你必须先理解编程之道."
3.3
以前有个程序员在吴国的将军那里干活, 这个将军问那个程序员: "一个
财务软件和一个*作系统之间, 哪个更容易写?"
"一个*作系统", 程序员答道.
将军非常惊奇, "财务软件的复杂程度不如*作系统的万一, 你怎么
说*作系统更容易写呢?"
"并非是这样", 程序员答道, "设计一个财务软件包, 程序员要和不同的人
打交道: *作界面如何, 报表应当使用什么格式, 如何使它符合税务法的
要求. 相反, 一个*作系统是不受其外观限制的. 当设计一个*作系统时,
程序员在机器与人的思想间寻找一种最简单的交流方法, 所以*作系统的
设计要简单得多."
将军颔首笑道, "说得很有道理, 但是哪一个更容易排错呢?"
程序员沉默不语.
3.4
一个经理到编程大师那里去, 给他看一个新软件的需求分析. 他问道: "如果
我给你五个程序员, 你需要多长时间去设计这个系统?"
"需要一年时间." 编程大师立刻答道.
"不过我们非常迫切的需要这个系统, 如果我给你十个人, 你需要多少时间?"
编程大师皱了皱眉, "这样我需要两年."
"如果我给你100个人呢?"