罗伯-派克的5条编程规则:数据高于算法


罗伯-派克(Rob Pike)是Go编程语言的设计者之一,也是贝尔实验室Unix团队的核心成员(他与Brian Kernighan合著了《Unix编程环境》)。

他还因其5条编程规则而闻名:

  1. 你无法知道一个程序将在哪里度过它的时间。瓶颈发生在令人惊讶的地方,所以在你证明瓶颈存在之前,不要试图去猜测并做一个性能的黑客。(不要过早优化)
  2. 测量:在你测量之前,不要对性能进行调整,即使如此,也不要调整,除非代码的某个部分压倒了其他部分。
  3. 当n很小的时候,花哨的算法很慢,而n通常是很小的。花哨的算法有很大的常数。在你知道n经常会变大之前,不要搞花哨。(即使n真的变大了,也要先使用规则2)。
  4. 花哨的算法比简单的算法更容易出错,而且它们更难实现。使用简单的算法,以及简单的数据结构。
  5. 数据占主导地位。如果你选择了正确的数据结构并很好地组织了事情,算法几乎总是不言而喻的。数据结构(而不是算法)才是编程的核心。