60

保守性

DRY 原則

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

条文

もし

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

ならば

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

ただし

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

出典

Andrew Hunt & David Thomas『The Pragmatic Programmer』(Addison-Wesley, 1999)——「あらゆる知識は、システムの中で単一かつ明確で権威ある表現を持たねばならない」。

原典へ

関連する条文