Rob Pike 的编程五原则

本文翻译自 Rob Pike’s 5 Rules of Programming


Rob Pike 的编程五原则

  1. 原则 1. 你无法预知程序会把时间花在哪里。瓶颈出现在令人惊讶的地方,所以不要试图猜测并过早地加入性能优化,直到你证明那里确实是瓶颈所在。

  2. 原则 2. 测量。在测量之前不要为了速度而优化,即使测量之后,也不要优化,除非某部分代码的执行时间远远超过其他部分。

  3. 原则 3. 当 n 较小时,复杂的算法效率低下,而 n 通常都很小。复杂算法有很大的常数开销。在你确定 n 经常很大之前,不要使用复杂的算法。(即使 n 确实变得很大,也要先应用原则 2。)

  4. 原则 4. 复杂算法比简单算法更容易出错,而且更难实现。使用简单的算法以及简单的数据结构。

  5. 原则 5. 数据为主导。如果你选择了正确的数据结构并且组织得当,算法几乎总是显而易见的。数据结构,而非算法,才是编程的核心。


相关说明

Pike 的原则 1 和原则 2 重申了 Tony Hoare 的名言:

“过早优化是万恶之源。”

Ken Thompson 将 Pike 的原则 3 和原则 4 重新表述为:

“如有疑问,使用暴力方法。”

原则 3 和原则 4 是 KISS(Keep It Simple, Stupid)设计哲学的具体体现。

原则 5 此前由 Fred Brooks 在《人月神话》(The Mythical Man-Month)中提出。原则 5 常被简化为:

“编写愚蠢的代码,使用智能的对象。”

comments powered by Disqus