Den så kallade DRY-principen (Don’t Repeat Yourself) säger att dubblering av logik bör elimineras genom abstraktion och att dubblering av processer bör elimineras genom automatisering. Dubbelarbete är slöseri. Genom att lägga till ytterligare, onödig kod till en kodbas ökar mängden arbete som krävs för att utöka och underhålla programvaran i framtiden. Dubbel kod ökar den tekniska skulden. Oavsett om dupliceringen beror på Copy Paste Programming eller dålig förståelse för hur man tillämpar abstraktion, försämrar den kodens kvalitet. Duplicering i processen är också slöseri om den kan automatiseras. Manuell testning, manuella bygg- och integrationsprocesser etc. bör alla elimineras när det är möjligt genom användning av automatisering.
Misstänkta villkor
Ofta har if-then- och switch-anvisningar för vana att dupliceras på flera ställen i en applikation. Det är vanligt i säkrade applikationer att olika funktionalitet är tillgänglig för användare i vissa roller, så koden kan vara översållad med if-user-is-in-role-kontroller. Andra tillämpningar kan ha utökats för att hantera flera liknande men distinkta typer av datastrukturer, med switch()-instruktioner på alla nivåer i arbetsflödet som används för att beskriva skillnaderna i beteende som varje datastruktur bör ha. Om möjligt, refaktorisera dessa villkor med hjälp av välkända designmönster för att abstrahera dupliceringen till en enda plats i kodbasen.
En gång och endast en gång kan betraktas som en delmängd av DRY-principen.
Principen öppen/sluten fungerar bara när DRY följs.
Principen om ett enda ansvar är beroende av DRY.