Det såkaldte DRY-princip (Don’t Repeat Yourself) fastslår, at gentagelser i logikken skal elimineres via abstraktion; gentagelser i processen skal elimineres via automatisering. Duplikering er spild. Tilføjelse af yderligere, unødvendig kode til en kodebase øger den mængde arbejde, der kræves for at udvide og vedligeholde softwaren i fremtiden. Dobbelt kode øger den tekniske gæld. Uanset om duplikeringen stammer fra Copy Paste Programming eller dårlig forståelse af, hvordan man anvender abstraktion, forringer den kodens kvalitet. Duplikering i processen er også spild, hvis den kan automatiseres. Manuel testning, manuel opbygning og integrationsprocesser osv. bør alle elimineres, når det er muligt, ved hjælp af automatisering.
Suspect Conditionals
Ofte har if-then- og switch-statements for vane at blive duplikeret flere steder i et program. Det er almindeligt i sikrede applikationer at have forskellig funktionalitet tilgængelig for brugere i bestemte roller, så koden kan være fyldt med if-user-is-in-role-kontroller. Andre applikationer kan være blevet udvidet til at håndtere flere lignende, men forskellige typer datastrukturer, med switch() statements på alle niveauer i workflowet, der bruges til at beskrive de forskelle i adfærd, som hver datastruktur skal have. Hvor det er muligt, skal du refaktorisere disse conditionals ved hjælp af velkendte designmønstre for at abstrahere duplikationen til et enkelt sted i kodebasen.
En gang og kun én gang kan betragtes som en delmængde af DRY-princippet.
Det åbne/lukkede princip fungerer kun, når DRY følges.
Det enkelte ansvarsprincip er afhængig af DRY.