Unix 文化哲学

《Linux就是这个范儿》读书笔记

Rob Pike,最伟大的C语言大师之一,在Notes on Programming in C中则从编程的角度对Unix文化进行了阐释,这也反应了一些侧面:

原则1:你无法判定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱地找地方改代码,除非你已经证明那儿就是瓶颈所在。

原则2:估量,在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。

原则3:花哨的算法在n很小时通常很慢,而n通常很小。花哨算法的常数复杂度很大。除非你确定n很大,否则不要用花哨算法。即使n很大,也要优先考虑原则2。

原则4:花哨的算法比简单的算法更容易出bug、更难实现。尽量使用简单的算法配合简单的数据结构。

原则5:数据压倒一切。如果已经选择了正确的数据结构并把一切都组织的井井有条,正确的算法也就不言自明。 编程的核心是数据结构,而不是算法。

原则6:没有原则6。