Princip Don’t Repeat Yourself (DRY) říká, že duplicity v logice by měly být eliminovány pomocí abstrakce; duplicity v procesu by měly být eliminovány pomocí automatizace. Duplicita je plýtvání. Přidávání dalšího, zbytečného kódu do kódové základny zvyšuje množství práce potřebné k rozšíření a údržbě softwaru v budoucnosti. Duplicitní kód zvyšuje technický dluh. Ať už duplicita pramení z Copy Paste Programming nebo špatného pochopení způsobu použití abstrakce, snižuje kvalitu kódu. Duplikace v procesu je také plýtváním, pokud ji lze automatizovat. Ruční testování, ruční procesy sestavování a integrace atd. by měly být eliminovány, kdykoli je to možné, pomocí automatizace.
Podezřelé podmínky
Příkazy if-then a switch mají často ve zvyku být duplikovány na více místech aplikace. V zabezpečených aplikacích je běžné, že uživatelé v určitých rolích mají k dispozici různé funkce, takže kód může být posetý kontrolami if-user-is-in-role. Jiné aplikace mohou být rozšířeny o práci s několika podobnými, ale odlišnými druhy datových struktur, přičemž příkazy switch() na všech úrovních pracovního postupu se používají k popisu rozdílů v chování jednotlivých datových struktur. Pokud je to možné, refaktorujte tyto podmíněné příkazy pomocí známých návrhových vzorů, abyste abstrahovali duplicitu do jediného místa v rámci kódové základny.
Zásadu Jednou a pouze jednou lze považovat za podmnožinu zásady DRY.
Zásada Otevřeno/uzavřeno funguje pouze při dodržení DRY.
Zásada Jediné odpovědnosti se opírá o DRY.
Zásada Jediné odpovědnosti se opírá o DRY.