定理
スモール・イズ・ビューティフル
- 小さなプログラムは分かりやすい
- 小さなプログラムは保守しやすい
- 小さなプログラムはシステムリソースにやさしい
- 小さなプログラムは他のツールと組み合わせやすい
一つのプログラムには一つのことをうまくやらせる
- 一つのことに集中することで、プログラムに不要な部分をなくせる
できるだけ早く試作する
- 試作によって学ぶ
- 早い試作はリスクを減らす
効率より移植性
- プログラムを速くすることに時間をかけない
- 最も効率の良い方法は、ほとんどの場合移植性に欠ける
- 移植性のあるソフトウェアは、ユーザーのトレーニングを時間も減らす
- よいプログラムは死なず、ただ新しいハードウェアに移植されるのみ
数値データはASCIIフラットファイルに保存する
- データにも移植性を持たせる
ソフトウェアを梃子として使う
- よいプログラマはよいコードを書く。偉大なプログラマはよいコードを借りてくる
- 独自技術症候群を避ける
- コードを他人が梃子として使うのを認める
- すべてを自動化する
シェルスクリプトによって梃子の効果と移植性を高める
- シェルスクリプトにはおそろしいほどの梃子の効果がある
- シェルスクリプトは梃子の効果で時間も節約する
過度の対話的インターフェースを避ける
- 拘束的プログラムはユーザーを人間と想定している
- 拘束的コマンドパーサは、大きく醜い
- 拘束的プログラムは「大きいものは美しい」的アプローチをとる
- 拘束的プログラムは、他のプログラムと結合するのが難しい
- 拘束的ユーザーインターフェースはスケーラビリティに欠ける
- 拘束的ユーザーインターフェースは、ソフトウェアの梃子の効果を利用できない
全てのプログラムをフィルタとして設計する
- 全てのプログラムはフィルタである
小定理
- 好みに応じて自分で環境を調整できるようにする
- オペレーティングシステムのカーネルを小さくする
- 小文字を使い、短く
- 紙のドキュメントを用いない
- 沈黙は金
- 同時に考える
- 部分の総和は全体よりも大きい
- 90パーセントの解を目指す
- 劣るほうが優れている
- 階層的に考える