- 1989年のRob Pikeによる、プログラミングの5つの規則に関する記事
- 規則1: プログラムがほとんどの時間をどこで費やすかを決めつけてはならない。ボトルネックは予想外の場所で発生しうる。ボトルネックが実証されるまで速度ハックは避けよ。
- 規則2: 速度のためにチューニングする前に、必ず測定せよ。コードの一部が残りに大きな影響を与える場合にのみ最適化せよ。
- 規則3:
n が小さいとき、複雑なアルゴリズムは遅い。たいていの場合はこれに当てはまる。n がしばしば大きい場合にのみ複雑なアルゴリズムを使い、その場合でもまず規則2を適用せよ。
- 規則4: 単純なアルゴリズムとデータ構造が望ましい。複雑なものよりバグに弱くなく、実装もしやすい。
- 規則5: 正しいデータ構造はプログラミングにおいて決定的である。データが適切に構成されていれば、アルゴリズムは自明になる。
- Pikeの規則1と2は、Tony Hoareの格言「早すぎる最適化は諸悪の根源である」を反映している。
- Ken Thompsonは、Pikeの規則3と4を「疑わしいときは brute force を使え」と言い換えた。
- 規則3と4は、KISS(Keep It Simple, Stupid)という設計哲学を体現している。
- 規則5は、Fred Brooksの『The Mythical Man-Month』での発言と一致しており、しばしば「賢いオブジェクトを使う愚かなコードを書け」と要約される。
1件のコメント
Hacker Newsの意見