返回主页



狐说西游



掩码计算



分数引擎



蓍草算法



386YAO



15TO18



PHP手册



画二维码



共0页 第1页
原来收藏的一篇老文章,贴出留存《编程之道》

 第一章 寂静的天空

编程大师如是说:

“当你从我手中夺走水晶球时,就是你离开的时候了。”

1.1

寂静的虚空里诞生了神秘的东西,这种东西恒久存在永不消失,它是所有程序的根源所在,我不知道怎么形容它,姑且称它为编程之道。

如果道是完美的,那么操作系统就是完美的,如果操作系统是完美的,那么编译嚣就是完美的,如果编译嚣是完美的,那么应用程序就是完美的,所以用户心满意足,整个世界因此和谐。

编程之道去如黄鹤来如晨风。

1.2

道生机器语言,机器语言生汇编嚣。

汇编器生编译器,最后产生上万种高级语言。

不论多么的微不足道,每种语言都有它自己的目的,每种语言都表达了软件的阴阳两极。每种语言都各得其道。

但是尽量不要用COBOL语言。

1.3

道之初,带来了空间和时间,所以,空间和时间是编程的阴阳两极。

不懂编程之道的程序员常常把空间和时间消耗殆尽,得道的程序员则总是有足够的空间和时间去完成编程任务。

否则会是什么样呢?

1.4

上士闻道,从而行之。中士闻道,谨而寻之。下士闻道,大笑之。

大笑不足为道。

希音不闻,进即是退,大器晚成。任何程序都有漏洞。

第二篇古代的大师

编程大师如是说:

三日不编程,食肉无味。

2.1

远古时代的编程大师们高深莫测,我们不能揣测他们的所思所想,只能描述外表所见。

他达明,如狐狸过水;机警,如战场上的将军;和善,如主妇款待客人;简单,呆若木鸡;混沌,如深渊之水。

谁能道尽他们的所有?

答案仅存于道。

2.2

超级大师图灵曾梦见自己是一台机器,醒后他这样回忆:

“我不知道是图灵梦见自己变成机器还是机器梦见自己变成图灵。”

2.3

一个大公司的程序员参加一个软件会议后向他的主管汇报:“那些别的公司的程序员都是些什么样的人呀?他们举止不雅,不修边幅,头发蓬乱,衣服破旧,根本不热情好客,还在我说话的时候乱嚷嚷。”

他的主管说:“我不应该让你参加这次会议,这些程序员生活在现实世界之外。他们认为生活是可笑的,一场意外的偶然而已。他们来去自由,无所牵挂,他们只为他们的程序生活。为什么要用世俗的烦扰去扰乱他们呢?”

“他们生活在道中”。

2.4

一个初学者问主管经理:“有一个程序员,他从来不预先设计,也不写文档,甚至不测试他的程序,但是知道他的人都认为他是世界上最伟大的程序员,为什么呢?”

经理说:“那个程序员掌握了道。他不需要预先进行设计;系统崩溃时他也从不烦燥,只是接受发生的一切而不管发生的事是好是坏 。他不需要写文档,他从不顾及有没有人看他写的代码。他也不需要进行测试;他写的每个程序都有一个完美的自我,平静而优雅,它们的目的不言自明。他已经真正掌握了道的精髓。”

第三章 设计

编程大师如是说:

“程序被测试时再去改变它的设计已经太晚了。”

3.1

曾经有一个人参加计算机展览,每天他进门时都对门卫说:

“先警告你,我是偷盗高手,我入室偷盗的本领闻名遐迩。这次展览会也再劫难逃。”

警卫因此大动干戈,因为里面有价值百万的计算机设备,所以他牢牢盯紧了这个人,但是这个人只是从一个摊位逛到另一个摊位,一边平静地喃喃自语。

当这个人离开时,警卫搜了他的身,但是什么也没有发现。

展览会的第二天,这个人又对警卫说:“昨天我满载而归,但是今天我会收获更大。”所以警卫更加小心地盯紧他,但是这样做完全于事无补。

展览会的最后一天,警卫再也不能忍住他的好奇心了。“小偷先生,”他说,“ 你说我惊慌不安,请告诉我,你到底偷了什么?”。

这个人笑笑说:“我在偷想法。”

3.2

有一位编程大师,他写非结构化的程序,一位初学者刻意模仿他,也写非结构化的程序。当他让大师看他的进步时,大师批评了他的非结构化程序:“ 对一位编程大师合适的东西未必对一个初学者同样合适,在超越结构化之前,你必须理解编程之道。”

3.3

###有人问一位程序员,“一个财务软件和一个操作系统哪个更容易设计?”

“是操作系统”,这位程序员回答说。

此人大惑不解。他说:“显然一个财务软件比起操作系统来说其复杂性是微不足道的”。

程序员说:“不,设计财务软件时,一个程序员必须成为持不同意见的用户与计算机的一个中介,他必须了解用户的操作习惯,报表要是什么形式,如何遵循税法。相反,一个操作系统完全与这些外部的东西无关。设计操作系统,程序员只需要达到自己的设想与机器之间的简单的和谐。这就是为什么操作系统反而比财务软件更容易设计。”

这些人笑着说。“不错,但是哪一个更容易调试呢?”

程序员没有回答。

3.4

一个项目经理带给编程大师一个项目的需求,然后问大师:“如果我给你5个程序员,要多少时间设计这个项目?”

“一年”,大师说。

“但是我们等不了那么长时间,越快越好,如果10程序员呢?”

大师皱了一下眉头说:“那就要花2年”。

“那,100个程序员呢?”

大师耸了耸肩说:“那这个项目就永远完不成了。”

第四章 编码

编程大师如是说:

“写的好的程序是它自己的天堂,写的不好的程序是它自己的地狱”

4.1

一个程序应该是轻灵自由的,它的子过程就象串在一根线上的珍珠。自始至终,目标明确。增之一字节则太长,减之一字节则太短。既没有不必要的循环也没有没有被引用的变量,既不缺少结构化也不至于僵硬呆板。

一个程序应该遵循``最小惊讶原则‘‘,什么是``最小惊讶原则‘‘?就是说一个程序应该最小程度地引起用户的惊讶。

无论一个程序无论有多么复杂都应该是一个单一的整体。程序是被它的内部逻辑所指引而不是它的外观表现。

如果一个程序不能满足所要的需求,它就会处于混乱无序的状态中。唯一的出路就是重写这个程序。

4.2

一个初学者问大师:“我的一个程序有时正常有时不正常。我已经完全遵循编程的规则,而且我完全被它弄糊涂了,到底是什么原因会导致这样呢?”

大师说:“你困惑是因为你不了解道。只有傻瓜才会相信只要遵循别人所说就能得到想当然的结果。为什么你要从一个人类自己构造的机器中去得到想当然的结果呢?计算机只是决定论的产物;只有道才是唯一完美的。

任何编程的规则都只适合于特定的情况,只有道才是永恒不变的。所以在你受到指引之前要先去思考道。”

“但是我怎么知道我何时受到指引呢?”

“当你的程序正确运行时”。大师说。

4.3

初学者请大师解释“道法自然”。大师说:“道存在于任何软件中--无论是多么没有意义的软件”。

“难道也存在于手持式的计算嚣里?”,初学者问。

“是的,”

“也在游戏机里?”,初学者又问到。

“是的,甚至也存在于游戏机里”。大师说。

“也存在于个人计算机的DOS里吗?”

大师咳嗽了一声,稍微动了一下,说,“今天的课就到这里”。

4.4

###编程大师编写软件时,手指在键盘上快速飞舞。程序编译时没有一条错误信息,程序运行起来就象一阵微风吹过。

太精彩了!你的技巧已经无可挑剔了。

“技巧?”,大师转过身说,“我所遵循的是道--它超乎所有的技巧。当我开始编程时我看到的是整个一大块的程序,三年后我看到的是子过程。现在我什么也看不到了。我的整个存在是没有任何形式的虚无。我感觉很悠闲,总之,事实上是我的程序自己在写,有时我看到一些问题,我看到它们,就停下来静静地观察它们,然后我改变了一行代码,难题就象一阵轻烟一样化为乌有。然后我编译程序。坐在那里享受工作的喜悦。闭了一会眼睛然后退出系统。

“什么时候我的程序员才能都达到这样的境界!”

第五章 维护

编程大师如是说:

“既使一个程序只有三行长,也总有一天需要去维护它”

5.1

经常使用的门不需要往门轴里上油。

流动的东西就不会停滞不前。

流水不腐,户枢不蠹。

声音和思想都不能在真空里传播。

软件不用就会腐朽。

5.2

经理问程序员要多长时间才能完成他的项目。“明天”

“太不着边际了,老实说,要多久?”

程序员想了一想说。“还有一些新的功能要加进去,可能至少要两个星期吧。”

“即使两个星期恐怕也太夸张了,什么时候你只要告诉我说程序已经完成就好了。”

几年后,这个经理已经退休了,在他的离职午餐上,他发现这些程序员在他的终端前睡着了,他整夜都在编程。

5.3

一个初学者被要求编写一个财务软件。

他疯狂地工作了很多天,但他的主管检视他的程序时发现,它写了一个编辑嚣,一个图形程序集,和人工智能的界面,但是看不到任何跟财务有关的东西。

主管要求解释时,程序员被激怒了:“你太没耐心了,我会在最后写财务的部分。”

5.4

一个好的农民不会不管他的庄稼。

一个好的老师不会不管哪怕是最差的学生。

一个好的父亲不会让他的任何一个孩子挨饿。

一个好的程序员不应拒绝维护他的程序。

第六章 管理

编程大师如是说:

“增加程序员,减少经理--这样他们都可提高效率。”

6.1

经理们忙于无休无止的会议时,程序员们在写游戏。财务主管在谈论季度盈利时开发预算将会被削减。当老科学家在谈天空的蓝色时,云团蜂拥而至。

这不是编程之道。

经理分配任务时不会包括游戏,会计师做长期计划时,应该做到面面俱到,皆大欢喜。科学家提出一个问题,就会很快得到解决。

这才是编程之道。

6.2

为什么程序员没有效率,因为他们把时间都浪费在开会上了。

为什么程序员难于管理?因为管理者的干预太多了。

为什么程序员一个接一个地辞职,因为他们累坏了。

在糟糕的管理下工作,他们享受不到工作的乐趣。

6.3

一个经理将被解雇,但他手下的一个程序员写了一个流行的软件并且销路很旺。所以经理保住了他的工作。

经理为程序员分红,但程序员拒绝了,他说:“我写程序是因为写程序很有趣,所以我并没想过得资金”。

这位经理说,“这位程序员,不管他现在是什么位置,他都能理解一个雇员的职责所在。我们要把他提升为管理顾问”。

这位程序员又一次拒绝了,他说:“我是一个程序员所以我可以编程,如果我被提升了,除了浪费别人的时间什么也做不了,现在我可以走了吗?我还有一个程序没写完。”

6.4

经理对程序员说,“你们的工作时间是早上9点到下午五点。”,所有的程序员都很不满。

经理又说:“好吧,那随你们的便,只要能按时完成任务。”,程序员们这下满意了,他们中午上班,一直工作到凌晨。

第七章 企业智慧

编程大师如是说:

###

“你可以向一位公司主管演示一套程序,但你不能让他的电脑变得象人一样。”

7.1

一个新学问大师:“在东方,有一个庞大的机构,人们称作总部。它由为数众多的大小领导。每天发出大量的备忘录,每个备忘录都说:‘干这个,干那个’,没有一个人知道它是什么意思。每年这个机构都会有更多的人加进来而变得越来越大,但是去没有人去做事情。怎么烩样奇怪的东西还能存在呢?”

大师说:“你已经知道这个巨大的机构并不合理,你就不能不管它为什么这样吗?你尽管享受它的好处就是了,干吗要去管它到底是没有效率呢?”

7.2

在遥远的东方,传说有一只巨大的鱼,叫鲲,它变成了一只大鸟,叫鹏,鹏的翅膀可以遮天蔽日,这只大鸟经过陆地的时候,它带来了一个消息,它把这个消息丢在程序员中,就象一只海鸥在海滩上做的记号,然后鹏背负蓝天,乘风而上,回家去了。

初学者惊恐地看着这只鸟,根本不敢相信,中级程序员担心这只鸟的到来,因为它害怕它带来的消息,编程大师则继续在他的终端前工作他根本不知道这只鸟曾经来过。

7.3

一个学究带着他的最新发明去见编程大师,他把一个大黑盒子推进大师的办公室。

“这是综合的、分布式的通用工作站,”,学究开始介绍了,“按人体工学设计的操作系统,第六代的高级语言,多样的用户界面,整整花了我的助手好几百人年的时间,挺不错吧?”

大师扬了一下眉毛,说:“的确很了不起。”

“头儿已经说了,”这位学究继续说,“每个人都要用这个工作站作平台,你觉得怎么样?”

“当然了,”,大师回答说,“我要马上把它送到数据中心去!”,这位学究满意去回去了。

几天后,一个新手走进大师的办公室说,“我找不到我新写的程序了,你知道它可能会在哪儿吗?”

“当然,”,大师说,“你的程序在数据中心的平台里放着。”

7.4

编程大师从一个项目转到另一个项目而豪无顾虑,任何管理上的变动都不能影响他,他不会被解雇,即使项目被取消了。为什么呢?他了解了道。

第八章 硬件和软件

编程大师如是说:

风不动则草不动,

没有软件,硬件只是一堆发热的电子器件

8.1

一个初学者问编程大师:“我知道有一家计算机公司比所有其它的公司都大。在它面前它的竞争对手就象站在巨人面前的侏儒。它的任一部门都有各自的业务,为什么会这样呢?”

大师说,“为什么你问如此愚蠢的问题呢?那家公司大是因为它就是如此之大,如果它只做硬件,就没有人会买,如果它只维护系统,人们只会把它当作仆人,但是它的业务囊括了所有这些东西,人们就对它顶礼莫拜好象不用努力奋斗就可击败竞争对手

8.2

有一天编程大师碰见了一个正玩掌上游戏机的编程新手,他说:“给我看一下?”

新手把游戏机递给大师,“我看到上面说明了三种难度的玩法:容易,中等,高难”,大师说,“但是每个这样的游戏机都有另外一种玩法,此时游戏机即不是想着怎么赢你,也不是怎么被你赢。”

“那么请问大师”,初学者说,“这种玩法到底是怎样玩的呢?”

大师把游戏机摔到地下然后用脚踩碎它,突然初学者明白了。

8.3

有一个工作在微机上的程序员对前来参观的大型机程序员说:“看看我这里吧,我有自己的操作系统和文件存储设备,我不需要与别人共享任何资源,软件条条有理并且易于操作。为什么你不辞去你的工作到这里来呢?”

型机的程序员对他的朋友说:“大型机就象古代圣贤一样深思熟虑,它的磁盘设备从头到尾就象是一个巨大的机械设备的海洋。软件象钻石一样有多个面,象远古的森林一样令人费解。每一个程序都象水经过河流一样穿行于系统中,那就是为什么我乐于为它工作”

微机程序员听了这些话后,默默不语,但这两个程序员至死都是很好的朋友

8.4

硬件和软件在路上碰见了,软件说:“你是阴我是阳,如果我们联手就可以赚大钱。”所以它们走到了一直,考虑怎样征服世界。

不久,它们遇到了固件,固件衣衫褴褛,拄着一根拐棍步履蹒跚。固件对它们说:“道在于阴阳之外。它静如止水,它从不指望能扬名远近,所以没有人知道它的存在。它也不寻求幸福,它只是与它自己的存在在一起,它存在于空间和时间之外。”

软件和硬件面有惭色,各自回了家。

九章 尾声

编程大师如是说:

“现在是你出师的时候了。”

(完)

阅读次数:5711 2011-3-14 11:14@0


共0页 第1页
评论:


短信评论请编辑PL2338+空格+内容发送到037160599922
河南联通用户可直接编辑评论内容发送到10656006002112338
以上短信端口不另收取信息费。

发表评论:
昵称: 密码:请用商都BBS账户登录
评论:
验证码:

附近BLOG

1:[围脖]听说新浪的同步接口好了……

2:[围脖]整了个二维码程序……

3:升级PHP到5.3.x,准备开始用PDO和MysqlND连接数据库

4:PHP5.3.x闹的正则表达式ereg问题的解决

5:[围脖]昨天又去参与了一次周末面对面的录制……

now:原来收藏的一篇老文章,贴出留存《编程之道》

6:[围脖]这几天传闻日核泄露怪吓人……

7:[围脖]一副对联……

8:试了下所谓“双核浏览器”

9:[围脖]把蓍草占卜程序升级了下……

10:[围脖]前日上班路上一个恍惚……


© 2025古钺青剑 保留一切权利  并承担一切责任
豫ICP备05009517号-3号