Rob Pike 的5条编程规则
Source: Hacker News
Rob Pike 的规则
规则 1
你无法预先知道程序的时间花在哪里。瓶颈往往出现在意想不到的地方,所以不要去猜测并在未确认瓶颈所在之前就加入加速 hack。
规则 2
测量。只有在测量之后才进行速度调优,而且即使如此,也只在代码的某一部分压倒其他部分时才调优。
规则 3
当 n 很小的时候,复杂算法很慢,而 n 通常是小的。复杂算法有很大的常数因子。除非你确定 n 经常会很大,否则不要使用复杂算法。(即使 n 真的变大,也先使用规则 2。)
规则 4
复杂算法比简单算法更容易出错,而且实现起来也更困难。使用简单的算法以及简单的数据结构。
规则 5
数据至关重要。如果你选择了合适的数据结构并且组织得当,算法几乎总是显而易见的。数据结构,而不是算法,才是编程的核心。
Pike 的规则 1 和 2 重申了 Tony Hoare 的著名格言:
“过早的优化是一切邪恶的根源。”
Ken Thompson 将 Pike 的规则 3 和 4 改写为 “有疑问时,使用暴力破解。”
规则 3 和 4 是 KISS(保持简洁)设计哲学的实例。
规则 5 之前由 Fred Brooks 在《人月神话》中提出。
规则 5 常被简化为 “写愚蠢的代码,使用聪明的对象”。