ロブ・パイク
カナダ出身のソフトウェア工学者でありソフトウェア作家
ルール1. プログラムのどこで処理時間がかかるかはわからない。ボトルネックは意外な場所で発生するので、ボトルネックがどこにあるかを証明するまでは、臆測で速度の改善に取り組まないこと。
ルール2. 処理速度を測定すること。測定して、コードのある部分が他の部分を圧倒しない限り、速度の調整をしてはいけない。
ルール3. 派手なアルゴリズムは、入力値のnが小さいと処理が遅い。そして通常、nは小さい。派手なアルゴリズムは大きな定数を持っている。nが頻繁に大きくなることがないなら、派手なアルゴリズムは使わないようにすること。(nが大きくなっても、まずルール2を適用すること)
ルール4. 派手なアルゴリズムは単純なアルゴリズムに比べてバグが多く、実装も大変なので、シンプルなアルゴリズムとシンプルなデータ構造を使うようにすること。
ルール5. データが支配する。正しいデータ構造を選択し、うまく整理していれば、アルゴリズムはほとんどの場合、自明のものになる。プログラミングの中心はアルゴリズムではなくデータ構造。
ルール1と2 : アントニー・ホーアの有名な格言「早すぎる最適化は諸悪の根源である」を再掲 1. ちゃんとした仕様書を書いた
2. キラーアプリを集めた
3. OSS コミュニティを始めた
4. 言語を変更しづらくした
5. 彼らの信念を曲げなかった
https://gyazo.com/de4662ec18dec0b6bc41dbfdc69f2bcd