博文
编程之道四(2007-09-24 10:38:00)
摘要:编码
编程大师如是说:“一个写得完美的程序是其自身的天堂,而一个写得糟糕的程序则是其自身的地狱。”
一个程序应当是轻盈的、灵活的,它的子程序就像一串珍珠一样连接着。它的精神和意图应该贯穿始终。在程序中,内容既不应太多,也不应太少;既不该有不需要的循环结构,也不该有冗余的变量;既不缺乏结构性,又不过分僵化。
一个程序应当遵循“最少惊讶原则”。这条原则是什么呢?简单地说,就是指一个程序对用户的指令所做出的反应,应该总是使用户最小程度地惊讶。
一个程序,无论多么复杂,都应该以一个整体的方式运行。程序应以其内在的逻辑为指引,而非外在形态。
如果一个程序不能达到这些要求,它将处于一种杂乱无章和混淆不清的状态。唯一的更正方法就是这个程序。
一位项目经理手下的一名程序员正在编写软件。他的手指在键盘上飞舞着,在程序的编译过程中没有出现任何错误信息。程序运行起来就像一阵和见。
“太好了!”经理高兴地大叫起来,“你的技艺简直是完美无缺。”
“技艺?”程序员说着便从他的终端机前转过身来,“我遵循的是道--所有的技艺远不能及!当我刚开始编程时,我眼前看见的是整个问题乱成一团。三年之后,我再也看不见这种一团糟的情形了。相反,我用了各种各样的子程序。但现在,我什么也看不见了。我的整个身心存在于一种无形的虚空里,我的知觉是空荡荡的。
我的精神随其本能而动,不......
编程之道三(2007-09-22 16:39:00)
摘要:设计
曾经有位程序员被派到IBM的军机大臣手下工作。军机大臣问程序员:“设计一个财务软件包,和设计一个操作系统,哪一个更容易?”
“操作系统。”程序员回答说。
军机大臣立刻发出一种不信任的惊叹:“与一个复杂的操作系统相比,一个财务软件包简直是小巫见大巫。”他说。
“并非如此,”程序员说,“在设计一个财务软件包时,编程人员是作为一个中介者在观念各异的人们之间起作用的:这个软件必须如何操作,它的报表必须是什么形式,它必须如何与税法一致,等等。相反,一个操作系统则不为其外观所限制。当设计一个操作系统时,编程人员只要在机器与人的思维之间寻找一种最简单的和谐就可以了。这就是为什么操作系统更容易设计。”
军机大臣点点头,笑了。“说来也是。但要想检测和纠正其中的错误,哪个更容易呢?”
程序员没有回答。
一位经理到编程大师那里,交给他一份有关一个新应用程序的需求说明。经理问编程大师:“如果我分配五个程序员给你,你需要多久能设计好这个系统?”
“那将花费一年的时间。”大师立刻回答。
“但我们马上就需要这个系统,甚至要求更快!如果我分配十个程序员给你,你需要多长时间?”
大师皱了皱眉头,“那样的话,需要两年。”
“如果我分配一百个程序员给你怎么样?”
大师耸了耸肩膀,“那么这项设计将永远无法完成。”他说。......
编程之道二(2007-09-21 09:36:00)
摘要: 一家大电脑公司的一名程序员参加了一次软件研讨会。他回来后向经理汇报说:“为其它公司工作的那些程序员都是些什么样的人啊?他们行为拙劣,不顾及自己的仪表。他们的头发又乱又长,衣服又皱又旧。他们闯进我们的会客组,还在我演讲时发出粗鲁的喧闹。”
经理说:“我本不应该让你去参加这个会议。那些程序员是生活在物质之外的。他们认为生活是荒唐的,只是一种意外的巧合。他们来去自如。他们只为他们的程序而活着,无忧无虑地活着。为什么要用社会习俗来约束他们呢?
他们活在此道之中。”
一个初学者问大师:“有位程序员,从不构思、编写文档或测试他的程序,然而所有知道他的人都认为他是世界上最棒的程序员。这是为什么呢?”
大师回答说:“那个人掌握了道。他不需要事先进行构思,当系统崩溃时,他不会因此而闷闷不乐,而是心平气和接受整个事实。他还从编写程序说明文档的需要之中超脱出来,不在意是否有人看他的编码。他也不需要测试,他的每个程序的内在都完美无缺,宁静而优雅,程序的用途也显而易见。
的的确确,他已经进入了道的神奇境界。”......
编程之道一(2007-09-12 19:25:00)
摘要: 古代的大师
编程大师如是说:
“倘若三天不编程,生活将变得毫无意义。”
老一辈的程序员是神秘的、深奥的。我们没法揣摩他们的想法,我们所能做的只是描述一下他们的表象。
他们是清醒的,就像一只游过水面的狐狸;他们是警惕的,就像一位战场上的将军;他们是友善的,就像一伴招待客人的女主人;他们是简单的,就像未经刻凿的木头;他们是难以琢磨的,就像黑暗的洞穴中漆黑的池水。
谁能说出他们心中的秘密?
答案保存在于道中。......