法則一覧

60保守性

DRY 原則

あらゆる知識は、系の中でただ一つの権威ある表現を持つ。

もし

重複した知識は必ずずれていく。コピー同士を一緒に変えることを強制するものが何もないからだ。コストは余分な文字数ではない。将来の誰かが片方だけを直し、自分自身と静かに矛盾するシステムを出荷してしまうことだ。

ならば

重複を排除するのはテキストではなく知識だ。似た2つのブロックを統合する前に、「同じ理由で、同じ人の要求によって変わるか」を問え。違うなら分けたままにせよ。

ただし

誤った抽象より重複のほうが安い — 今は似ているだけの2つのブロックは、分岐が必要になった瞬間に互いを縛り合う

GitHub でこの条文を改善する