今早读《编程珠玑续》一书,里面有一章全是关于计算机科学箴言的集锦,觉得很有意思,在此摘抄一些与大家共享。

  • 编程

    • 如果没想清楚,那就用蛮力算法吧 ———Ken Thompson, Bell Lab

    • 程序写得越急,程序跑得越慢 ——Roy Calson, 威斯康星大学

    • 你用英语都写不出来的东西,就别指望用代码写了 ——Peter Halpern

    • 如果你发现特殊情况太多,那你肯定是用错方法了 ——Craig Zerouni,Computer FX 公司

    • 先把数据结构搞清楚,程序的其余部分自现 ———David Jones 荷兰阿森

  • 用户界面

    • 手工填写的表单中有20%都包含坏数据 ———Vic Vyssotsky,Bell Lab

    • 80%的表单会要你回答没有必要的问题 ———Mike Garey, Bell Lab

    • 不要让用户提供那些系统已经知道的信息 ———Rick Lemons, Cardinal数据系统公司

    • 所有数据集的85%中,有95%的信息量都可以用清晰的图表示 ———William S.Clevelan,Bell Lab

  • 调试

    • 在我所有的程序错误中,80%是语法错误,剩下的20%里,80%是简单的逻辑错误。剩下的4%里,80%是指针错误。只有余下的0.8%才是困难的问题 ————Marc Donner,IBM

    • 测试只能证明程序有错误,而不能证明程序没有错误 ———Edsger W. Dijkstra

    • 新系统的每一个用户都可能发现一类新的错误 ———Brian Kernighan ,Bell Lab

  • 性能

    • 在一个非I/O密集型的程序中,超过一半的运行时间花在不足4%的代码上 ———Don Knuth,斯坦福大学

    • 最快的I/O就是不I/O ———Nils-Peter Bell Lab

    • 电没纳秒传播一英尺 ———Grace Murray Hopper,美国海军上将

    • Lisp程序员知道所有东西的值,却不知道那些东西的计算成本 ———Alan Perlis,耶鲁大学

  • 文档

    • 如果一句话反过来就必然不成立,那就根本没必要把这句话放进文档 ———Bob Martin, AT&T公司

    • 一个{规格说明,设计,过程,测试计划}如果不能在一页8.5英寸×11英寸的纸上写明白,那么这个东西别人就没法理解 ———Mark Ardis 王安公司

  • 软件管理

    • 系统的结构反映出构建该系统的组织的结构 ———Richar E. Fairley,王安公司

    • 正确的判断源于经验,然而经验来源于错误的判断 ———Fred Brooks,北卡罗来纳大学

    • 拼命干活无法取代理解 ———H.H. Williams

  • 其他

    • 对计算机撒谎是要受到惩罚的 ———Perry Farrar

    • 一个人的常量是另一个人的变量 ———Susan Gerhart

    • 一个人的数据就是另一个人的程序 ———Guy L. Steele