"テストを書く時間がないのではなく、テストを書かないから時間がなくなるのです。"
"It is easier to ask forgiveness than it is to get permission."
"事前に許可を得るより、あとで許してもらうほうが楽"
"ぶざまな姿をさらさずに複雑なソフトウェアを書く唯一の方法は、全体としての複雑さの度合いを下げることだ"
"つまり、適切に定義されたインターフェイスで結び付けられた単純な部品からシステムを作り上げるのだ。 こうすれば、ほとんどの問題は局所化されるし、全体を壊さずに部品だけを改良することも不可能ではなくなる。"
--『The Art of UNIX Programming』より
モジュール化の原則 : クリーンなインターフェイスで結合される単純な部品を作れ。
明確性の原則 : 巧妙になるより明確であれ。
組み立て部品の原則 : 他のプログラムと組み合わせられるように作れ。
分離の原則 : メカニズムからポリシーを切り離せ。エンジンからインターフェイスを切り離せ。
単純性の原則 : 単純になるように設計せよ。複雑な部分を追加するのは、どうしても必要なときだけに制限せよ。
倹約の原則 : 他のものでは代えられないことが明確に実証されない限り、大きなプログラムを書くな。
透明性の原則 : デバッグや調査が簡単になるように、わかりやすさを目指して設計せよ。
安定性の原則 : 安定性は、透明性と単純性から生まれる。
"Elegance is a combination of power and simplicity."
エレガンスは、力と単純性が結合して生まれる。
"Elegant code is not only correct but visibly, transparently correct."
エレガントなコードは、ただ正しいだけではなく目に見える透明な形で正しい。
Keep It Simple and Small
Keep It Small Stupid!
"モジュールをチェックインする際には、必ずチェックアウト時よりも美しくする"
-- Bob Martin