Rob Pikeのプログラミングの原則
The Art of UNIXより。
原則1:プログラムがどこで時間を食っているかは、外からはわからない。ボトルネックは驚くべきところで発生しているので、どこがボトルネックかはっきりしないうちにあて推量でスピードを上げようとしてはならない。
原則2:実行時間を計測せよ。計測するまではスピードを上げようとしてはならない。計測した場合でも、コードのある部分が他の部分を圧倒するほど遅くなければスピードを上げようとしてはならない。
原則3:うまいアルゴリズムは、nが小さいときには遅く、普通nは小さい。うまいアルゴリズムは大きな定数を持つ。nがひんぱんに大きくなることがわかっているのでも無い限り、うまいことをしようとするな(nが大きくなる場合でも原則2を優先せよ)
原則4:うまいアルゴリズムは、単純なアルゴリズムよりもバグを含みやすく、実装が難しい。単純なアルゴリズム、そして単純なデータ構造を使え
原則5:重要なのはデータだ。正しいデータ構造を選び、それらをうまく構成すれば、アルゴリズムはほとんどかならず自明のものになる。プログラミングの中心は、アルゴリズムではなく、データ構造だ。
原則6:6番目の原則はない。
6番目の原則はバフェットの投資哲学っぽい部分がある?
ルール その1:絶対に損をするな。
ルール その2:絶対にルール1を忘れるな
関係ないか。