Muster (patterns)

Knowledge Base

Softwaretechnik > Programmierparadigmen

DRY - Don't repeat yourself

Bei diesem Prinzip (https://de.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself) geht es darum, Redundanz grundsätzlich zu vermeiden (Daten und Quellcode).

Dies dient dazu, dass Änderungen zwangsläufig nur an einer Stelle erfolgen müssen und damit der Aufwand i. d. R. kleiner ist.

Leider wird dieses Prinzip meiner Erfahrung nach missverstanden und es werden dann Komponenten um Parameter erweitert, die diese nur für einen Aspekt der Applikation benötigen - Beispiel:

Komponente A benötigt kleine Komponente X zu 100%.

Komponente B benötigt kleine Komponente X zu 50% (es gibt also eine Schnittmenge) - wird Komponente X aber erweitert (zusätzliche Parameter und Funktionalität), dann kann auch Komponente B die Kompnente X verwenden.

Das heißt Komponente A und B können Komponente X verwenden -> Super, keine Redundanz!

Wirklich super?!

Nein, weil damit die Komplexität der Komponente X steigt und jemand der sich Komponente A anschaut, nicht weiß, wofür die zusätzlichen Parameter / Funktionalität ist, die ja nur für Komponente B benötigt wird.

Aus meiner Sicht widerspricht diese Vorgehensweise dem KISS-Prinzip und die Wartbarkeit (und Testbarkeit) wird langfristig reduziert (z. B. wenn Komponente X noch mehr erweitert wird, um auch den Bedarf von Komponente C, D usw. zu decken).

Stattdessen sollte die Komponente X nur Basis-Funktionalität zur Verfügung stellen und dann um Aspekte der Komponente B erweitert werden (Komponente X-B) - z. B. Kapselung (oder Vererbung).