Das Don’t Repeat Yourself (DRY) Prinzip besagt, dass Duplikation in der Logik durch Abstraktion eliminiert werden sollte; Duplikation im Prozess sollte durch Automatisierung eliminiert werden. Duplikation ist Verschwendung. Das Hinzufügen von zusätzlichem, unnötigem Code zu einer Codebasis erhöht den Arbeitsaufwand für die Erweiterung und Wartung der Software in der Zukunft. Duplizierter Code erhöht die technischen Schulden. Unabhängig davon, ob die Duplizierung auf Copy-Paste-Programmierung oder auf mangelndes Verständnis für die Anwendung von Abstraktion zurückzuführen ist, mindert sie die Qualität des Codes. Duplizierung im Prozess ist auch dann Verschwendung, wenn sie automatisiert werden kann. Manuelle Tests, manuelle Build- und Integrationsprozesse usw. sollten nach Möglichkeit durch Automatisierung eliminiert werden.
Verdächtige Konditionale
Oft werden if-then- und switch-Anweisungen an mehreren Stellen in einer Anwendung dupliziert. In gesicherten Anwendungen ist es üblich, dass Benutzern in bestimmten Rollen unterschiedliche Funktionen zur Verfügung stehen, so dass der Code mit if-user-is-in-role-Prüfungen übersät sein kann. Andere Anwendungen wurden möglicherweise so erweitert, dass sie mit mehreren ähnlichen, aber unterschiedlichen Arten von Datenstrukturen arbeiten, wobei switch()-Anweisungen auf allen Ebenen des Workflows verwendet werden, um die Unterschiede im Verhalten jeder Datenstruktur zu beschreiben. Wo immer es möglich ist, sollten diese Konditionale unter Verwendung bekannter Entwurfsmuster refaktorisiert werden, um die Duplizierung an einer einzigen Stelle innerhalb der Codebasis zu abstrahieren.
Einmal und nur einmal kann als eine Untermenge des DRY-Prinzips betrachtet werden.
Das Offen/Geschlossen-Prinzip funktioniert nur, wenn DRY befolgt wird.
Das Prinzip der einzigen Verantwortung beruht auf DRY.