A Don’t Repeat Yourself (DRY) elv szerint a logikában a duplikációt absztrakcióval, a folyamatban a duplikációt automatizálással kell kiküszöbölni. A duplikáció pazarlás. További, felesleges kód hozzáadása a kódbázishoz növeli a szoftver jövőbeni bővítéséhez és karbantartásához szükséges munka mennyiségét. A duplikált kód növeli a technikai adósságot. Akár a Copy Paste programozásból, akár az absztrakció alkalmazásának rossz megértéséből származik a duplikáció, csökkenti a kód minőségét. A folyamat közbeni duplikáció szintén pazarlás, ha automatizálható. A kézi tesztelést, a kézi építési és integrációs folyamatokat stb. lehetőség szerint automatizálással kell kiküszöbölni.
Gyanús feltételek
Gyakran előfordul, hogy az if-then és switch utasítások több helyen is duplikálódnak az alkalmazáson belül. A biztonságos alkalmazásokban gyakori, hogy bizonyos szerepkörökben lévő felhasználók számára különböző funkciók állnak rendelkezésre, így a kód tele lehet if-user-is-in-role ellenőrzésekkel. Más alkalmazásokat úgy bővítettek ki, hogy több hasonló, de különböző típusú adatszerkezetet kezeljenek, és a switch() utasításokat a munkafolyamat minden szintjén használják az egyes adatszerkezetek eltérő viselkedésének leírására. Ahol csak lehetséges, refaktorálja ezeket a feltételeseket jól ismert tervezési minták segítségével, hogy a duplikációt a kódbázis egyetlen helyére absztrahálja.
Az Egyszer és csak egyszer a DRY elv egy részhalmazának tekinthető.
A nyitott/zárt elv csak akkor működik, ha a DRY-t követjük.
Az egyetlen felelősség elve a DRY-ra támaszkodik.