wuyongxiu / wuyongxiu.github.io

随便记录一下......
http://wuyongxiu.github.io
6 stars 3 forks source link

Rob Pike关于编程的五个原则 #40

Open wuyongxiu opened 6 years ago

wuyongxiu commented 6 years ago

规则1: 你没法预测程序会将时间花费在哪儿。瓶颈会发生在意想不到的地方,除非你已经测试并定位了瓶颈,否则不要尝试去猜测和优化它。

规则2:测量。在测量之前不要为了提升速度优化代码。即使是在测量之后,也不要随意优化除非其中的一部分代码已经压倒其余代码。

规则3:当n很小的时候好的代码是很慢的,并且n通常都很小。好的算法都有一个很大的常量,除非你知道n很快就会变得很大,否则还是不要使用好的代码(即使n变大了,也先使用 规则2)。

规则4:好的算法比简单的算法更容易产生bug,并且它也更难去实现。尽可能使用简单的算法和简单的数据结构。

规则5:数据主导。如果你选择了正确的数据结构并且组织得很好,算法几乎总是不言而喻的。 数据结构,而不是算法,是编程的核心。

简要:
派克的规则1和2重申了托尼·霍尔(Tony Hoare)着名的“过早优化是万恶之源”的格言。

肯·汤普森(Ken Thompson)将派克(Pike)的规则3和4改写为:“如果有疑问,请使用暴力”。 规则3和4是KISS设计理念的实例。

规则5以前由弗雷德·布鲁克斯在“人月神话”中说过。 规则5通常缩写为“编写使用智能对象的愚蠢代码”。

链接:http://users.ece.utexas.edu/~adnan/pike.html