DRY (don´t repeat yourself)

DRY (Don't repeat yourself) ist eines der Prinzipien, dass im Zusammenhang mit dem objektorientierten Entwurf von Software populär wurde. Mit diesem Prinzip soll ausgedrückt werden, dass Code-Wiederholungen zu vermeiden sind, so dass einmal identifizierte Software-Funktionen auch nur einmal im Code zu formulieren sind.


Die DRY-Code-Philosophie ist auch geläufig in Beziehung zur Model Driven Architecture (MDA), bei der die Software-Artefakte von einem zentralen Objekt-Modell abgeleitet werden. DRY-Code wird durch Datentransformation und Code-Generatoren generiert, die es dem Software-Entwickler ermöglichen, die sogenannten copy and paste-Aktionen zu vermeiden. Werkzeuge wie XDoclet und XLST sind Beispiele für die Anwendung des DRY-Prinzips. Ein weiteres Beispiel für die Doppelung von Code sind die Konfigurations-Dateien beim Einsatz von Enterprise JavaBeans in der Version 2.x. Andererseits gibt es auch Beispiele für Systeme, die explizit die Vermeidung von Code-Duplizierung unterstützten. Hierbei sind u.a. die Entwicklungsumgebung Ruby on Rails oder die Enterprise JavaBeans ab der Version 3.x zu nennen.

Im Software-Engineering ist die Beachtung des DRY-Prinzips besonders interessant im Bezug auf Multi-Tier-Architekturen. Die Veränderungen an Datenstrukturen können unangenehme Auswirkungen auf das Gesamtsystem haben, sofern das Prinzip bei der Code-Erstellung nicht beachtet wurde. DRY wurde erstmals von Andy Hunt und Dave Thomas in ihrem Buch The Pragmatic Programmer vorgestellt. Die Autoren empfehlen dabei die Beachtung des Prinzips in weiteren Phasen der Entwicklung wie bei der Erstellung von Datenbank-Schemata, Test- und Build-Prozessen bis hin zur Dokumentation.

Weitere bekannte Prinzipien sind:

  • Keep it simply and stupid (KISS) - mach es einfach,
  • Separation of Concerns - Trennung der Anliegen,
  • Open Closed Principle - Offen für Erweiterungen und geschlossen für Änderungen,
  • Program to Interface - Trennung der Schnittstelle von der Implementierung,
  • Dependency Inversion Principle - Umkehr der Abhängigkeiten,
  • Inversion of Control - Umkehr des Kontrollflusses sowie
  • Single Responsibility Principle - Prinzip einer einzigen Verantwortung.

Informationen zum Artikel
Deutsch:
Englisch: don´t repeat yourself - DRY
Veröffentlicht: 13.04.2010
Wörter: 302
Tags: #Entwicklung, Codierung
Links: Code, DIP (dependency inversion principle), EJB (enterprise JavaBeans), Erweiterung, Implementierung