
电子工业出版社
(2006年7月18日更新:第4.3节;下次更新日期:2006年7月25日。敬请期待!)
第四篇 编码

编程大师如是说:“一个写得完美的程序是其自身的天堂,而一个写得糟糕的程序则是其自身的地狱。”
4.1
一个程序应当是轻盈的、灵活的,它的子程序就像一串珍珠一样连接着。它的精神和意图应该贯穿始终。在程序中,内容既不应太多,也不应太少 ;既不该有不需要的循环结构,也不该有冗余的变量;既不缺乏结构性,又不过分僵化。
一个程序应当遵循“最少惊讶原则”。这条原则是什么呢?简单地说,就是指一个程序对用户的指令所做出的反应,应该总是使用户最小程度地惊讶。
一个程序,无论多么复杂,都应该以一个整体的方式运行。程序应以其内在的逻辑为指引,而非外在形态。
如果一个程序不能达到这些要求,它将处于一种杂乱无章和混淆不清的状态。惟一的更正方法就是重写这个程序。
4.2
一位初学者问大师:“我有个程序,有时候可以运行,有的时候却中断。我一直都遵循着编程的规则,结果却整个儿搞糊涂了。这是什么原因呢?”
大师回答说:“因为你没领悟道,所以你迷惑不解。只有傻瓜才会指望从人类身上得到理性的行为。你又能指望一台人类制造的机器怎么样呢?计算机模仿的是决定论 ,只有道才是尽善尽美。
编程用的那些条条框框式的规则仅仅是昙花一现,只有道才是永恒的。因此,在你受到道的启发之前,你必须沉思于道。”
“但我怎样才知道我何时已经受到启发了呢?”初学者问。
“当你的程序运行无误时。”大师回答说。
4.3
一位大师正在向他的一名初学编程的弟子解释道的真谛,“此道体现在所有的软件当中──不管它看上去多么无足轻重。”大师说着。
“此道体现在手掌计算器中吗?”初学者问。
“是的”。
“此道体现在电子游戏中吗?”初学者继续问。
“此道甚至也体现在电子游戏之中。”大师说。
“那么此道体现在个人电脑的DOS系统中吗?”
大师轻咳一声,并稍稍挪动了一下位置,“今天的课就到这里吧。”他说。
第三篇 设计

编程大师如是说:“当程序被测试时,再修改设计方案就太迟了。”
3.1
曾经有个人去参加一次电脑展示会,每天当他进入展馆时,都对门卫说:“我是个大盗,我偷盗的本领是出了名的。事先警告你,这次展示会也在劫难逃。”
这番话让门卫坐立不安,因为里面有价值数百万美元的电脑设备,所以他紧紧地盯住这个人,但这个人只是从一个展摊逛到另一个展摊,嘴里轻轻地哼着小曲。
当这个人出门时,门卫把他拉到一边,搜查他的衣服,但一无所获。
第二天,这个人又来了,并对着门卫嚣张地嚷着:“我昨天满载而归,但今天的收获会更大。”于是,门卫盯他盯得更紧了,但仍一无所获。
在展示会的最后一天,门卫再也抑制不住自己的好奇心了。“大盗先生,”门卫说,“我被你搞糊涂了,实在想不明白。请告诉我,你究竟在偷什么?”
这个人笑了。“我在偷想法。”他说。
3.2
曾经有位编程大师,喜欢编写非结构化的程序。一位初学者试图模仿他,也开始编写非结构化的程序。 当这位初学者请大师评价他的进展时,大师批评了他的做法。他说:“对一位编程高手适合的,对初学者来说并不一定适合。在超越结构化之前,你必须先领悟道。”
3.3
曾经有位程序员被派到IBM的军机大臣手下工作。军机大臣问程序员:“设计一个财务软件包,和设计一个操作系统,哪一个更容易?”
“操作系统。”程序员回答说。
军机大臣立刻发出一种不信任的惊叹,“与一个复杂的操作系统相比,一个财务软件包简直是小巫见大巫。”他说。
“并非如此,”程序员说,“在设计一个财务软件包时,编程人员是作为一个中介者在观念各异的人们之间起作用的 :这个软件必须如何操作,它的报表必须是个什么形式,它必须如何与税法一致,等等。相反,一个操作系统则不为其外观所限制,当设计一个操作系统时,编程人员只要在机器与人的思维之间寻找一种最简单的和谐就可以了。这就是为什么操作系统更容易设计的原因。”
军机大臣点点头,笑了。“说来也是。但要想检测和纠正其中的错误,哪个更容易呢?”
程序员没有回答。
3.4
一位经理到编程大师那里,交给他一份有关一个新应用程序的需求说明。经理问编程大师:“如果我分配五个程序员给你干,你需要多久能设计好这个系统?”
“那将花费一年的时间。”大师立刻回答。
“但我们马上就需要这个系统,甚至要求更快!如果我分配十个程序员给你,你需要多长时间?”
大师皱了皱眉头,“那样的话,需要两年。”
“如果我分配一百个程序员给你怎么样?”
大师耸了耸肩膀,“那么这项设计将永远无法完成。”他说。
第二篇 古代的大师

编程大师如是说:“倘若三天不编程,生活将变得毫无意义。”
2.1
老一辈的程序员是神秘的、深奥的。我们没法揣摩他们的想法,我们所能做的只是描述一下他们的表象。
他们是清醒的,就像一只游过水面的狐狸;他们是警惕的,就像一位战场上的将军 ;他们是友善的,就像一位招待客人的女主人 ;他们是简单的,就像未经刻凿的木头;他们还是难以琢磨的,就像黑暗的洞穴中漆黑的池水。
谁能说出他们心中的秘密?
答案只存在于道中。
2.2
计算机科学巨擎图灵曾经梦到他是一台机器。 当他醒来时,他惊叹道:“我不知道──我是梦到了自己是台机器的图灵,还是一台梦到了自己是图灵的机器?”
2.3
一家大电脑公司的一名程序员参加了一次软件研讨会。他回来后向经理汇报说 :“为其他公司工作的那些程序员都是些什么样的人啊?他们行为拙劣,不顾及自己的仪表。他们的头发又长又乱,衣服又皱又旧。他们闯进我们的会客组,还在我演讲时发出粗鲁的喧闹。”
经理说:“我本不应该让你去参加这个会议,那些程序员是生活在物质世界之外的。他们认为生活是荒唐的,只是一种意外的巧合。他们来去自如。他们只为他们的程序而活着,无忧无虑地活着。为什么要用社会习俗来约束他们呢?他们活在此道之中。”
2.4
一个初学者问大师:“有位程序员,从不构思、编写文档或测试他的程序, 然而所有知道他的人都认为他是世界上最棒的程序员。这是为什么呢?”
大师回答说:“那个人掌握了道。他不需要事先进行构思,当系统崩溃时,他不会因此而闷闷不乐,而是心平气和地接受整个事实。他还从编写程序说明文档的需要之中超脱了出来,不在意是否有人看他的编码。他也不需要进行测试,他的每个程序的内在都完美无缺,宁静而优雅,程序的用途也显而易见。的的确确,他已经进入了道的神奇境界。”
第一篇