developer's diary

最近はc#のエントリが多いです

Rob Pikeのプログラミングの原則

The Art of UNIXより。

原則1:プログラムがどこで時間を食っているかは、外からはわからない。ボトルネックは驚くべきところで発生しているので、どこがボトルネックかはっきりしないうちにあて推量でスピードを上げようとしてはならない。

原則2:実行時間を計測せよ。計測するまではスピードを上げようとしてはならない。計測した場合でも、コードのある部分が他の部分を圧倒するほど遅くなければスピードを上げようとしてはならない。

原則3:うまいアルゴリズムは、nが小さいときには遅く、普通nは小さい。うまいアルゴリズムは大きな定数を持つ。nがひんぱんに大きくなることがわかっているのでも無い限り、うまいことをしようとするな(nが大きくなる場合でも原則2を優先せよ)

原則4:うまいアルゴリズムは、単純なアルゴリズムよりもバグを含みやすく、実装が難しい。単純なアルゴリズム、そして単純なデータ構造を使え

原則5:重要なのはデータだ。正しいデータ構造を選び、それらをうまく構成すれば、アルゴリズムはほとんどかならず自明のものになる。プログラミングの中心は、アルゴリズムではなく、データ構造だ。

原則6:6番目の原則はない。

6番目の原則はバフェットの投資哲学っぽい部分がある?

ルール その1:絶対に損をするな。
ルール その2:絶対にルール1を忘れるな

関係ないか。