打印

编程之道(翻译)3

编程之道(翻译)3

二、远古的先哲

编程大师说道,三天不编程,生命便毫无趣味。

2.1

老一辈的程序员对我们来说永远是个迷,我们无法理解他们的思想,所以
我们只能歌颂他们的事迹。

象狐狸穿过水面那样明白,象战场上的将军那样警觉,象好客的主人那样和蔼,
象未经雕琢的木头那样简单,象深邃的洞穴那样无法捉摸。

谁能窥探他们心中的秘密呢?

答案只在道中。

2.2

伟大的先哲图林一次梦见自己变成了一台计算机,当他醒来时他说:

我不知道我究竟是梦见自己变成机器的图林,还是梦见自己变成图林的机器。

2.3

一个大计算机公司里的程序员去参加一个软件会议,回来后向他的经理汇报,
他说,“其它公司的那些程序员都是些什么人呀?他们举止乖张,不修边幅。
他们的头发活象鸟窝,他们的衣服又旧又皱。在我会客时他们挤过来,在我
演讲时他们发出很响的噪音。”

经理说道,“我不该派你去参加这个会议的。那些程序员不生活在物质世界
之中。他们认为生活是荒谬而不存在的。他们不按规矩形式,他们只为他们
的程序而活。为什么他们要去迁就社会的习俗?

他们生活在道中。”

2.4

一个新手问大师:“我们这里有个程序员从来不写文档,也不测试他的程序。
但是所有知道他的人都认为他是世界上最好的程序员,这是为什么?”

大师说道:“那个程序员已经领悟了道的真谛。他已经超越了程序设计这个
写什么文档,他不介意是否有别人要看他的代码。他不需要测试,他的每个程
序都是自成一体非常完美的。他已经进入道中最神秘的一部分了。”

TOP

编程之道(翻译)2

1.3

道是万物之始,道产生了空间和时间。空间和时间是编程的阴和阳两个方面。

不懂得道的程序员编出的程序总是用光所有的时间和空间。懂得道的程序员
总是有足够的时间和空间来完成他们的程序。

难道还有别的情况吗?

1.4

高明的程序员听说此道便遵循它,一般的程序员听说此道便寻找它,蹩脚的
程序员听说此道便嘲笑它。

如果人人都理解了道,也就没有了道。

曲高而和寡,以退而为进,大器而晚成,最完美的程序也有BUG。

TOP

编程之道(翻译)4

三, 设计

编程大师说: "当你开始测试一个程序时, 作设计上的修改已经太晚了"

3.1

有个人去参加一个计算机展示会. 每天他进场的时候他对门卫说: "我是
一个大盗, 我从来没有失过手, 这次展览也别想例外."

门卫很害怕, 因为里面有价值成百上千万的计算机设备, 所以他很留心的
看着那个人, 但他只是到处闲逛, 嘴里还在自言自语.

当他要走的时候, 看门人把他叫到一边, 仔细的搜查他的衣服, 但是什么
都没找到.

第二天,这人又来了, 他一来就嚷道, "昨天我收获颇丰, 但是今天我的收获
会更多.", 于是门卫盯得更紧, 但是还是没有发现任何可疑之处.

展览会的最后一天, 门卫再也忍不住自己的好奇心了. "伟大的盗贼", 他说,
"我完全给搞糊涂了, 请告诉我, 您到底偷到了些什么?"

这人笑了, "我在偷思想."

3.2

曾经有个编程大师总是写非结构化的程序. 一个崇拜他的新手也学者写非
结构化的程序. 当他请自己的老师评价他的工作时, 他的老师批评了他的这
种做法. 他说: "适合大师的编程方法不一定适合一个新手. 在你想超越
结构化编程之前, 你必须先理解编程之道."

3.3

以前有个程序员在吴国的将军那里干活, 这个将军问那个程序员: "一个
财务软件和一个*作系统之间, 哪个更容易写?"

"一个*作系统", 程序员答道.

将军非常惊奇, "财务软件的复杂程度不如*作系统的万一, 你怎么
说*作系统更容易写呢?"

"并非是这样", 程序员答道, "设计一个财务软件包, 程序员要和不同的人
打交道: *作界面如何, 报表应当使用什么格式, 如何使它符合税务法的
要求. 相反, 一个*作系统是不受其外观限制的. 当设计一个*作系统时,
程序员在机器与人的思想间寻找一种最简单的交流方法, 所以*作系统的
设计要简单得多."

将军颔首笑道, "说得很有道理, 但是哪一个更容易排错呢?"

程序员沉默不语.

3.4

一个经理到编程大师那里去, 给他看一个新软件的需求分析. 他问道: "如果
我给你五个程序员, 你需要多长时间去设计这个系统?"

"需要一年时间." 编程大师立刻答道.

"不过我们非常迫切的需要这个系统, 如果我给你十个人, 你需要多少时间?"

编程大师皱了皱眉, "这样我需要两年."

"如果我给你100个人呢?"

TOP

编程之道(翻译)5

四, 编码

编程大师说道, "一个写得好的程序是它自己的天堂, 一个写得差的程序是它
自己的地狱."

4.1

一个好的程序应该是小而轻巧的, 所有的子程序象一串珍珠一样有条理. 一个
好的程序应当恰好做它想做的事情, 没有多余的循环和变量. 即没有混乱的跳
转也不过分循规蹈距.

一个好的程序应该遵守 "最小惊讶原则". 什么是最小惊讶原则? 简单的说, 就
是程序对用户输入的反应应该尽量避免使用户感到惊讶.

一个程序, 无论多么复杂, 都应该只做一件事情. 一个程序应该遵从它内部的
逻辑而不是它的外部界面.

如果程序不能达到这些要求, 它就会成为一团糟, 要解决这个问题, 唯一的办法
就是重写.

4.2

一个新手问大师: "我写的程序有时候能执行通过,有时候则莫名其妙的退出,
我遵守了一个程序员的所有守则, 我完全被搞糊涂了, 这到底是怎么回事?"

编程大师回答说: "你之所以困惑是因为你不懂得编程之道. 只有傻瓜才指望
人类的行为有确定不动的规律, 你怎么能认为人设计的机器有确定的行为呢?
计算机只是模仿确定性, 只有道才是完美的.

程序员守则只是一个短暂的规律, 只有道才是永恒的. 在你入门之前你必需先
领悟编程之道."

"但是我怎么知道我已经入门了呢?"

"那时你的程序将会正确执行." 大师如是说.

TOP

编程之道(翻译)6

4.3

一个大师给一个新手讲解编程之道, "道存在于所有的软件之中, 不管这
软件的功能是多么的没有意义."

"道也存在于手掌式计算器中吗?" 新手问道.

"是的."

"道也存在于电视游戏中吗?", 新手问道.

"道甚至也存在于电视游戏中.", 大师答道.

"那么道也存在于个人机上的DOS*作系统中吗?"

编程大师移动了一下身体, 咳嗽了几声, "今天的课就到这吧." 他说.

4.4

公子王的程序员正在编写程序. 他的手指就象是在键盘上跳舞. 他的程序
没有一个编译错误, 执行起来就象是一阵轻柔的风吹过.

"太棒了!", 公子赞道, "你的技艺简直完美无瑕!"

"技艺?" 程序员从他的终端那里转过头来, "我所遵循的只是道 -- 超越了
一切技艺的道. 当我开始学编程时, 我看到的只是一个程序. 三年后我看到
的不再是程序. 我看到的是程序中的子程序. 但是现在我什么都看不到. 我
整个身心都沉浸在一片空灵之中. 我的灵魂跟随它自己的直觉. 简单的说,
是程序自己在写它自己. 的确, 有时会有一些难题. 我看到了它们, 我便放
慢速度, 我静静的看着. 然后我改变一行代码, 于是难题便灰飞烟灭了. 然后
我编译程序. 我静静的坐着, 让工作的乐趣包围我, 我合眼休息一会, 然后我
便退出登陆."

公子王说道, "如果我的其它程序员能象你一样那该多好啊!"

TOP

编程之道(翻译)7

五. 维护

编程大师说道: "就算一个程序只有三行代码, 总有一天它也需要维护."

5.1

户枢不蠹, 流水不腐.
声音和思想都无法穿越真空.
软件不用很快就会烂掉.

这些都是至理.

5.2

一个经理问一个程序员需要多长时间去完成他正在写的一个程序. "明天就
能完成了." 程序员答道.

"我认为你的想法是不现实的." 经理说道, "说真的, 到底需要多少时间?"

程序员想了一下, "我想加入一些新的特性, 我想至少需要两周的时间."

"就算是那样对你的要求也太高了," 经理说道, "只要你做完程序后告诉
我一声, 我就很满意了."

几年后, 经理退休了, 在参加欢送会前, 他发现那程序员趴在终端前睡着了.
他整夜都在编那个程序.

5.3

一个新手一次被指派编写一个简单的财务软件包.

他卖力的干了几天, 但是当编程大师看他的程序时, 他发现这个软件包里
有一个全屏幕编辑器, 一套通用图形调用, 一个人工智能借口, 但是就是
找不到财务软件的影子.

当大师问起这个问题的时候, 新手开始不耐烦, "别那么没有耐心, "最后
我总要加点财务处理进去的."

5.4

一个好农民会不爱他的玉米吗?
一个好老师会放任他的学生堕落吗?
一个好程序员会不愿意维护他自己的代码吗?

TOP

thank you

TOP

顶!!!!
我是个凶丫头

TOP

我想我懂了

TOP

谢谢!

TOP

初入此道! 感激

TOP

虽然说得很玄,但大道无形确实是不错

TOP