Zum Inhalt springen

Don’t repeat yourself

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 29. November 2024 um 09:57 Uhr durch imported>Tzeh (Softwaretechnik).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Don’t repeat yourself (DRY, englisch für „wiederhole dich nicht“; auch bekannt als {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) „einmal und nur einmal“) ist ein Prinzip, das besagt, Redundanz zu vermeiden oder zumindest zu reduzieren. Es handelt sich hierbei auch um ein Prinzip von Clean Code.

Softwaretechnik

Ein Anwendungsgebiet für das DRY-Prinzip ist beispielsweise die Programmierung.<ref>Karl Eilebrecht, Gernot Starke: Patterns kompakt: Entwurfsmuster für effektive Software-Entwicklung. Springer-Verlag, S. 5 Online</ref><ref>Hansruedi Tremp, Markus Ruggiero: Application Engineering. S. 140 Online</ref>

Redundant vorhandene Informationen (zum Beispiel Code-Duplikate im Quelltext) sind nur aufwändig einheitlich zu pflegen. Bei Systemen, die dem DRY-Prinzip treu bleiben, brauchen Änderungen nur an einer Stelle vorgenommen zu werden.<ref>Gernot Starke: Effektive Software-Architekturen: Ein praktischer Leitfaden. Hanser Verlag, S. 117 Online</ref>

Während das SPOT-Prinzip den Umgang mit gegebener Redundanz zum Gegenstand hat und darauf abzielt, einen Ort mit verlässlichen Daten zu bekommen, zielt das DRY-Prinzip auf die Vermeidung von Redundanz.

DRY ist ein Grundprinzip in Andy Hunts und Dave Thomas’ Buch Der pragmatische Programmierer. Darin schlagen sie vor, DRY auch für Datenbank-Beschreibungen, Tests, Skripte und Dokumentation anzuwenden.<ref>Neal Ford: Produktiv programmieren. O’Reilly Verlag, S. 6 Online</ref>

Siehe auch

Literatur

  • The Pragmatic Programmer. S. 26: „The Evils of Duplication“, ISBN 978-0-201-61622-4.
  • Der Pragmatische Programmierer. S. 24: „Das Übel der Wiederholungen“, Hanser Verlag, ISBN 3-446-22309-6.

Weblinks

Einzelnachweise

<references />