博文

编程之禅五(2007-11-22 10:41:00)

摘要:一
程序不过是梦,
生于无形无象的禅中,
我们只是那做梦的人。 二
我编程三日,
两耳不闻人声,
只有硬盘在歌唱。 三
编译程序在运行,
像一条湍急的河流,
我静静地等候。 四
为何要用LISP?
COBOL语言我不懂,
所以我用LISP。 五
编程一整夜,
透过窗户,照到屏幕上,
初升的太阳。 六
硬件和软件,
我们是你们的主人和奴隶,
我们的生活是程序。 七
你能听见吗,
磁盘上程序的声音?
答案是NUL。 八
电子邮件说,
项目已取消,
清理文档时,我哭了。 九
计算中心空空荡荡,
静静的只有风扇在嗡鸣。
我走过一排排的CPU,
磁通量刺痛了我的皮肤。
我打开一扇门,又冷又硬,
看见指示灯在控制板上跳动。
一以没有灵魂的机器,人们说,
但它的灵魂是同事们的汗水,
在它里面有我们多年的生命,
失望,友谊,悲伤,欢乐,
算法成功时的狂喜,
和无数个徒劳无获的长夜。
我听见了叹息的欢笑的回声,
在这间黑洞洞的办公室里,
终端机闪耀着光芒,就像星星一样。......

阅读全文(2222) | 评论:0

网站重构的10个最主要目标(2007-11-21 07:42:00)

摘要:一、站点必须在非图形环境和在最新最好的浏览器是都是可用的。其内容和基本功能在任何浏览器和设备上都应该是有效的,其布局在任何理解CSS的 都能正常运行。
二、标记必须遵守有效的XHTML1.0过渡规则,还要避免使用表现元素。
三、CSS必须有效,简洁,并尽量合理地排列。
四、为了使我们的站点在任何可想到的浏览环境里,内容和功能都有效,必须努力实现完全的可访问性。
五、站点的外观和风格必须是突出的,但不能因此产生臃肿的代码标记,过于复杂的脚本和多余的图片,会浪费访问者和服务器的带宽。站点不能浪费资源但要保持风格。它应该是对以前站点的发展,而不是脱离了以前的站点,面目全非。
六、站点应该提供可视化的互动,使站点富有生气。
七、只要条件允许,为使用文本浏览器和其他非传统的用户提供动态或相当于动态的元素。
八、站点应该为用户提供定制选项,同时保持自己的突出特性。
九、文档应该有趣,易读,应该使其成为站点的主要部分,因为站点是阅读站点,不是购物/单击/按钮操作的网站。正确地处理文档对于任何站点都是很重要的,特别是对那些像日报一样每天要被阅读的网站更是如此。
十、导航应该清楚、直观、明显。导航应该有一些可视化的装饰,但是必须也能在非视觉环境里工作。通过线性方式(如通过屏幕阅读器)访问网络的访问者应该能够直接跳过导航。......

阅读全文(2280) | 评论:0

编程之禅四(2007-11-19 17:21:00)

摘要:我听说过:
不要让政治原因影响技术方面的决定;也不要根据科技论文来做政治决定。只有在无知者的头脑中,这些东西才会混到一起。
我听说过:
项目计划和公布的时间表,本身毫无意义。那些日期和项目进展的里程碑本质上并不意味着什么。然而有一个秘密的时间表,它被所有工作于一个项目的人员所理解。这个秘密的时间表从未被外界的关注所愚弄,也从未被操纵以迎合市场部的方案。这个秘密的时间表总是被遵守,因为它反映了所有开发部成员之间的相互理解。当项目计划反映了这个现实时,程序会如期完成;当项目计划与此现实相矛盾时,程序会被延误。
我听说过:
有三种情况肯定会导致程序设计项目的失败。第一种情况是,主管此项目的经理对软件一无所知;第二种情况是,对程序代码负责的项目带头人对编写代码毫无兴趣;第三种情况是,编写代码的程序员是临时雇佣的,对项目缺乏忠诚。这三种情况中的任何一种都会导致项目的失败;三种情况同时出现,就必死无疑了。......

阅读全文(2451) | 评论:0

编程之禅三(2007-11-16 11:03:00)

摘要:一位公司行政官来参观开发中心。他在长长的走廊里走着,就像一位检阅部队的将军一样。他不时地停下来和他遇到的人谈谈话。最后,他走进了一位程序员的办公室,这位程序员正在聚精会神地为操作系统查错。
行政官环顾了一下办公室,注意到有尊猪的雕像摆在程序员的终端上。“我常常被程序员收集的那些古玩和纪念品深深吸引,”行政官说,“在它们背后似乎有一些非常有趣的故事。比如说吧,那里的那个雕塑是什么意思?”他指着那尊雕像。
程序员从终端前抬起头来,眨眨眼睛,然后盯着那尊雕像,就好像是头一回看到它似的。“这是头猪呀!”他说。......

阅读全文(2393) | 评论:0

编程之禅二(2007-11-13 12:15:00)

摘要:一组程序员正在向董事长汇报。“今年最大的成果是什么?”董事长问。
那些程序员在一起商量了一会儿,然后回答说:“我们今年解决的bug比去年多百分之五十。”
董事长疑惑地看着他们,很显然,他不知道bug是什么意思。他小声地与他身边的大臣嘀咕一阵后,转过身来对着程序员,气得满脸通红。“如此差劲的质量控制,你们应该问心有愧。明年不允许有bug!”他命令道。
可以肯定,第二年那些程序员向董事长汇报的时候,有关bug只字未提。......

阅读全文(2524) | 评论:0

编程之禅一(2007-11-05 10:25:00)

摘要:我听着听着,开始意识到一个关于我以前的编程体验的特大事实。在大学里,我一直认为程序员的工作主要是控制硬件和软件的活动,编程的最高艺术境界是,为了完成一项任务或达到一个目标而成功地运用高超的编程技巧。但程序维护是不同于程序开发的。要想维护一个程序,就要把程序看作是一棵渐渐成长的植物,拔苗助长是毫无益处的。事实上,这样的行为更容易导致植物的死亡。一个程序必须被细心地滋养。程序员在对程序进行改动之前,必须对每一个逻辑关系非常熟悉,必须对程序的意图有很深刻的理解力。这种理解力不是在一夜之间就可以得来的,需要长时间的积累。......

阅读全文(2167) | 评论:0

编程之道八(2007-10-20 20:08:00)

摘要:硬件和软件
一天,一位大师从初学编程者身边经过,他发现这位初学者正在全神贯注于掌上电脑游戏。“对不起,”他说,“我可以看一下吗?”
初学者立刻紧张起来,把那个玩意儿递给了大师。“我知道这种设备提供了三个游戏级别:容易、中等和高难,”大师说,“然而每个这样的设备都有另一个级别,在这一级,游戏机既不想赢人,也不想被人打败。”
“请问,尊敬的大师,”初学者恳求道,“怎样才能找到这个奇妙的级别设置呢?”
大师把那个玩意儿扔到地上,踩得粉碎。突然间,那位初学者明白了什么。......

阅读全文(2391) | 评论:0

编程之道七(2007-10-20 20:06:00)

摘要:  一家大电脑公司的一名程序员参加了一次软件研讨会。他回来后向经理汇报说:“为其它公司工作的那些程序员都是些什么样的人啊?他们行为拙劣,不顾及自己的仪表。他们的头发又乱又长,衣服又皱又旧。他们闯进我们的会客组,还在我演讲时发出粗鲁的喧闹。”
  经理说:“我本不应该让你去参加这个会议。那些程序员是生活在物质之外的。他们认为生活是荒唐的,只是一种意外的巧合。他们来去自如。他们只为他们的程序而活着,无忧无虑地活着。为什么要用社会习俗来约束他们呢?
  他们活在此道之中。”
  一个初学者问大师:“有位程序员,从不构思、编写文档或测试他的程序,然而所有知道他的人都认为他是世界上最棒的程序员。这是为什么呢?”
  大师回答说:“那个人掌握了道。他不需要事先进行构思,当系统崩溃时,他不会因此而闷闷不乐,而是心平气和接受整个事实。他还从编写程序说明文档的需要之中超脱出来,不在意是否有人看他的编码。他也不需要测试,他的每个程序的内在都完美无缺,宁静而优雅,程序的用途也显而易见。
  的的确确,他已经进入了道的神奇境界。”......

阅读全文(1965) | 评论:0

编程之道六(2007-09-26 16:38:00)

摘要:管理 编程大师如是说:“让程序员多而经理少--然后生产效率就会高。”
当经理们没完没了地开会时,程序员就写些游戏玩;当财务主管们谈到季度利润时,开发用的预算马上就要被削减;当资深科学家们谈论蓝蓝的天空时,马上就会风起云涌。
其实,这并不是编程之道。
当经理们忠于职守时,游戏程序就会被搁置到一边;当财务主管们制订出长远的计划时,和谐与秩序将很快恢复;当资深科学家们着手于眼前的问题时,这些问题不久就会解决。
其实,这才是编程之道。
为什么程序员没有效率?
因为他们的时间浪费在开会上。 为什么程序员很难管束?
因为管理层多管闲事。 为什么程序员接二连三地辞职?
因为他们的热情已被耗尽。 在糟糕的管理之下工作,他们不再敬业。
一位经理即将解职,但此时他手下的一名程序员发明了一个新的程序。这个程序流行起来,并且极为畅销。结果,经理又回到了原来的岗位上。
经理试图要发给那位程序员一笔奖金,但程序员拒绝了。他说:“我写这个程序,因为我认为这是个很有意思的想法。我并不期望有所回报。”
经理听到这话,评论说:“这位程序员虽然身居卑位,却能很好地理解一位雇员应尽的职责。让我们提拔他到管理顾问的高位上吧!”
然而,接到通知后,那位程序员又一次拒绝了。他说:“我在属于我的位置上,才能较好地编程。如果我被提升了,除了浪费每个人的时间,我将一事无成。现在我可以走了吗?我还有一个程序要编呢。”
一位经理走过来对他的程序员说:“关于你们的上班时间:你们要早上九点钟到,下午五点钟下班。”听了这话,所有的程序员都很气愤,其中有几位要当场辞职。
于是,经理只好又说:“好吧,那样的话,你们可以自己安排上班时间,只要你们能按时完成项目。”程序员们满意了。以后,他们中午来到办公室,一直工作到凌晨。......

阅读全文(2136) | 评论:0

编程之道五(2007-09-25 14:56:00)

摘要:维护
一个程序员正在编写他的程序,经理问他还需要多长时间完成。
“明天就可以完成。”程序员立刻回答。
“我想你这是不切实际,”经理说,“实话实说,这需要多长时间?”
程序员想了一会儿。“我还想加进一些新的特色,这需要花至少两个星期的时间。”他最后说。
“即使那样也期望过高,”经理坚持说,“只要你编完程序时告诉我一声,我也就满足了。”
程序员答应了。
几年以后,那位经理要退休了。在他去退休午餐会的路上,他发现那个程序员趴在他的终端机前睡着了。他整个晚上都在忙于编写那个程序。......

阅读全文(2372) | 评论:0