程序员的箴言

1. 一个人的常数就是另一个人的变量。

2. 函数延迟绑定;数据结构诱发绑定。原理是:在编程过程中,要在后期对数据进行结构化。

3.  语法糖导致了分号的癌症。

4. 每个程序都是其他程序的一部分,很少适合。

5. 如果一个程序操作大量的数据,它的操作方式就会很少。

6. 对称性是一个降低复杂性的概念(通用程序包括子程序);可以到处用它。

7. 写一个不正确的程序比理解一个正确的程序更容易。

8. 当一种编程语言的程序需要注意无关紧要的东西时,它就是低级别的。

9. 让100个函数操作一个数据结构比让10个函数操作10个数据结构要好。

10. 尽早规范化写程序。用同样的方法做同样的程序。积累规范化的方法,标准化的方法。莎士比亚和你之间唯一的区别(!)是他的成语备选清单的大小--而不是他的词汇量的大小。

11. 如果你有一个有十个参数的程序,你可能漏掉了一些。

12. 递归是计算的根源,因为它用很少的描述换取更多的时间。

13. 如果两个人写的程序完全一样,应该把每个人都放到微码中,然后他们肯定不会一样。

14.  从长远来看,每个程序都会变成洛可可式的--然后变成瓦砾。

15. 一切都应该自上而下地建立,除了第一次。

16. 每个程序都有(至少)两个目的:一个是它被编写的目的,另一个是它没有的目的。

17. 如果你在解释你的程序时,听众点头,那就把他叫醒。

18. 一个没有循环和结构化变量的程序是不值得写的。

19. 一种语言如果不影响你对编程的思考方式,就不值得了解。

20. 凡是有模块化的地方就有可能产生误解。隐藏信息意味着需要检查通信。

21. 优化阻碍了进化。

22. 一个好的系统不可能有一个弱的命令语言。

23. 要理解一个程序,你必须同时成为机器和程序。

24. 也许如果我们从小就写程序,作为成年人我们就能读懂它们。

25. 人们只能在头脑中显示复杂的信息。就像看一样,运动或流动或改变视线比静态的画面更重要,无论多么可爱。

26. 在我们的程序中,总会有一些我们想说的东西,在所有已知的语言中只能说得很差。

27. 一旦你明白了如何写一个程序,就可以让别人来写它。

28. 在计算机周围,很难找到正确的时间单位来衡量进展。有些大教堂花了一个世纪才完成。你能想象一个程序的宏伟和范围需要这么长时间吗?

29.对于系统来说,改头换面的类似方法是在控制图中增加一条创造循环的边,而不只是增加一个节点。

30. 在编程中,我们所做的每一件事都是更普遍的事情的一个特例--而且我们往往很快就知道了。

31.简单并不在复杂之前,而是在它之后。

32. 衡量程序员的标准不是他们的聪明才智和逻辑,而是他们的案例分析是否完整。

33. 第十一条戒律是 "你应计算 "或 "你不应计算"--我忘了是哪一条。

34. 字符串是一个呆板的数据结构,在它被传递的地方,有很多重复的过程。它是一个隐藏信息的完美载体。

35. 每个人都可以被教去做雕塑。米开朗基罗则必须被教导不要这样做。伟大的程序员也是如此。

36. 用程序来证明四色定理并不会改变数学--它只是证明了该定理,一个世纪以来的挑战,对数学来说可能并不重要。

37. 最重要的计算机是在我们的头骨中肆虐,并不断寻求那令人满意的外部仿真器。真正计算机的标准化将是一场灾难--因此它可能不会发生。

38. 结构化编程支持 "排除中间 "法则。

39. 关于图形。一张图片值一万个字--但只有那些描述图片的字。几乎没有任何一组10K字可以用图片来充分描述。

40. 有两种方法可以写出没有错误的程序;只有第三种方法可行。

41. 有些编程语言能够吸收变化,但经不起进步。

42. 你可以通过注意一个程序员对FORTRAN的持续活力的态度来衡量他的观点。

43. 在软件系统中,往往是早起的鸟儿有虫吃。

44.有时我认为计算领域唯一的普遍性是取-执行周期。

45. 计算的目标是模拟我们的合成能力,而不是理解我们的分析能力。

46. 像双关语一样,编程是一种文字游戏。

47. 正如威尔-罗杰斯所说,"没有自由变量这回事"。

48. 对普通人来说,最好的编程书是《爱丽丝梦游仙境》;但那是因为它是一本 "不可能 "的书。

49. 放弃汇编语言是我们伊甸园中的苹果。使用那些浪费机器周期的语言是有罪的。

50.LISP机器现在允许LISP程序员放弃胸罩和无花果叶。

51. 当我们理解基于知识的系统时,就会像以前一样--除了我们的指尖会被烧焦。

52. 将计算机带入家庭不会改变任何一个人,但可能会使角落里的酒馆恢复活力。

53.  系统有子系统,子系统有子系统,以此类推,无穷无尽--这就是为什么我们总是在重新开始。

54. 许多好的想法一旦踏上语义海湾的航程,就再也听不到它们的声音了。

55. 谨防图灵的柏油坑,在那里,一切皆有可能,但没有什么有趣的事情是容易的。

56. 一个LISP程序员知道一切的价值,但不知道什么的代价。

57. 软件处于一种持续的紧张状态。作为符号,它是可以任意完善的;但它也是可以任意改变的。改变规范以适应程序比反过来更容易。

58. 傻瓜们忽略了复杂性。实用主义者要承受它。有些人可以避免它。天才们则将其去除。

59. 在英语中,每个词都可以被动用。但愿我们的编程语言也是如此。

60. 在寻求无法实现的东西时,简单性只会成为障碍。

61. 在编程中,就像在其他事物中一样,犯错就是重生。

62. 在计算中,不变量是短暂的。

63. 当我们编写 "学习 "的程序时,事实证明,我们在学习,而它们没有。

64. 通常情况下,是手段证明了目的的合理性。目标推动了技术的发展,而技术即使在目标结构崩溃的情况下也能生存。

65. 不要搞错了。计算机处理的是数字,而不是符号。我们通过对某项活动的算术化程度来衡量我们的理解(和控制)。

你可能感兴趣的:(程序员的箴言)