人月神话:编程之道和编程之禅摘录

作者:张章 发布于:2008年10月17日 18:47

  1. 对于聪明的人,只要一个字;对于快马,只要轻轻一鞭;对于写得好的程序,只要单独的一个命令。
  2. 设计一个千百万程序的操作系统很容易,要改变一个人的本性却困难得多。
  3. 开发前面的百分之九十需要一半时间,而另一半时间则用来完成最后的百分之十。
  4. 项目计划和公布的时间表,本身毫无意义。那些日期和项目进展的里程碑本质上不意味着什么。然而有一个秘密的时间表,它被所有工作于一个项目的人所理解。这个秘密的时间表从未被外界的关注所愚弄,也从未被操纵以迎合市场的方案。这个秘密的时间表总是被遵守,因为它反映了所有开发部成员之间的相互理解。当项目反映了这个现实时,程序会如期完成;当项目计划与此现实相矛盾时,程序会被延误。
  5. 有三种情况肯定会导致程序设计项目的失败。第一种情况是,主管此项目的经理对软件一无所知;第二种情况是,对程序代码负责的项目带头人对编写代码毫无兴趣;第三种情况是,编写代码的程序员是临时雇佣的,对项目缺乏忠诚。这三种情况中的任何一种都会导致项目的失败;三种情况同时出现,就必死无疑了。
  6. 一个程序的价值不能由它的宣传册的大小,或出现在大众计算机杂志上的整页广告的数量来判断。这些噪音越响,程序越不可能有用;真正优秀的程序不需要广告,用户会口口相伟。
  7. 一位初学者问大师:“程序设计的真正含义是什么?”
    大师回答说:“饿的时侯就吃;困的时侯就睡;当时机恰当时,就进行程序设计。”
  8. 一位初学者问大师,“每当我在一套新的系统上编程时,必须学会一种新的语言。为什么没有一套标准呢?”大师转身而去。“唯一真正的标准是死亡。”他说“上个星期我准备劈些木柴烧火,但我的斧子又旧又钝。于是,我去五金店买了把新的。”“这挺有趣儿,”第一位程序员说,“但这和用户界面有什么关系呢?”“这把新斧子附带有一本长达八页的使用说明书。”他回答说。
  9. 不懂编程之道的程序员常常把空间和时间消耗殆尽,得道的程序员则总是有足够的空间和时间去完成编程任务。
  10. 上士闻道,从而行之。中士闻道,谨而寻之。下士闻道,大笑之。
  11. 有一位编程大师,他写非结构化的程序,一位初学者刻意模仿他,也写非结构化的程序。当他让大师看他的进步时,大师批评了他的非结构化程序:“ 对一位编程大师合适的东西未必对一个初学者同样合适,在超越结构化之前,你必须理解编程之道。”
  12. 一个项目经理带给编程大师一个项目的需求,然后问大师:“如果我给你5个程序员,要多少时间设计这个项目?”“一年”,大师说。“但是我们等不了那么长时间,越快越好,如果10程序员呢?”大师皱了一下眉头说:“那就要花2年”。“那,100年程序员呢?”大师耸了耸肩说:“那这个项目就永远完不成了。”
  13. 有人问一位程序员,“一个财务软件和一个操作系统哪个更容易设计?”“是操作系统”,这位程序员回答说。此人大惑不解。他说:“显然一个财务软件比起操作系统来说其复杂性是微不足道的”。程序员说:“不,设计财务软件时,一个程序员必须成为持不同意见的用户与计算机的一个中介,他必须了解用户的操作习惯,报表要是什么形式,如何遵循税法。相反,一个操作系统完全与这些外部的东西无关。设计操作系统,程序员只需要达到自己的设想与机器之间的简单的和谐。这就是为什么操作系统反而比财务软件更容易设计。”这些人笑着说。“不错,但是哪一个更容易调试呢?”程序员没有回答。写的好的程序是它自己的天堂,写的不好的程序是它自己的地狱。
  14. “技巧?”,大师转过身说,“我所遵循的是道–它超乎所有的技巧。当我开始编程时我看到的是整个一大块的程序,三年后我看到的是子过程。现在我什么也看不到了。我的整个存在是没有任何形式的虚无。我感觉很悠闲,总之,事实上是我的程序自己在写,有时我看到一些问题,我看到它们,就停下来静静地观察它们,然后我改变了一行代码,难题就象一阵轻烟一样化为乌有。然后我编译程序。坐在那里享受工作的喜悦。闭了一会眼睛然后退出系统。
  15. 一个好的农民不会不管他的庄稼。
    一个好的老师不会不管哪怕是最差的学生。
    一个好的父亲不会让他的任何一个孩子挨饿。
    一个好的程序员不应拒绝维护他的程序。
  16. 为什么程序员没有效率,因为他们把时间都浪费在开会上了。
    为什么程序员难于管理?因为管理者的干预太多了。
    为什么程序员一个接一个地辞职,因为他们累坏了。
    在糟糕的管理下工作,他们享受不到工作的乐趣。
  17. 经理对程序员说,“你们的工作时间是早上9点到正午点。”,所有的程序员都很不满。经理又说:“好吧,那随你们的便,只要能按时完成任务。”,程序员们这下满意了,他们中午上班,一直工作到凌晨。

作者:张章
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/zhangzhang/20081017173.shtml

( 内容完 )

添加收藏到:

您可能还对这些文章感兴趣:

  • 关于我们
  • 谈谈#include和#include"stdio.h"的效率问题
  • 如何编出健壮的代码 java编程30条规则
  • Asp.net的IP地址屏蔽功能设计
  • Nut 1.0a2(lucene 分布式运行框架)
  • Swing的设计是MVC的典范
  • 浅谈在Java语言中究竟是传值还是传引用
  • WEB高性能开发(10) - 疯狂的HTML压缩
  • 浅谈注册码(二利用servlet生成简单的注册码)
  • Java类的基本运行顺序
  • 3条评论, 我来评论

    1. 匿名

      学到了很多.经典….

    2. 你很牛B

      听说很牛B的一本书!一定要好好看看。

    3. 匿名

      过来学习一下!谢谢!

    小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
    类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
    请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
    如果您发现自己的评论没有被审核或者不见了,请参考以上三条。

    每周之星

    陈臣陈臣

    七年Java和JEE开发经验,JEE应用设计和高级架构师,拥有Sun的多项Java和J2EE方面的技能认证,多年项目经理、技术部经理的管理经验。拥有全面、扎实的Java和JEE理论知识,丰富的JEE应用开发经验。

    更多作者:

  • Adam
  • ikon999
  • jk1234
  • jk2345
  • libin_8745
  • lifengxing
  • taohuang100
  • xingkong
  • 北风
  • 呆子
  • 子晨
  • 小白
  • 张章
  • 张维亮
  • 陈臣
  • 陶宝哥
  • 风风
  • 最新内容

    推荐内容

    标签

    分类