Clean Code
Kommentare

Grundprinzip: Don’t Repeat Yourself (DRY)
Das DRY-Prinzip besagt, dass jedes Stück an Wissen oder Information eine singuläre, unmissverständliche und originäre Repräsentation an einem einzigen Ort

Grundprinzip: Don’t Repeat Yourself (DRY)

Das DRY-Prinzip besagt, dass jedes Stück an Wissen oder Information eine singuläre, unmissverständliche und originäre Repräsentation an einem einzigen Ort im System hat. Was zunächst als sehr einfach klingt, ist in der Praxis eine schwierige Aufgabe, denn es betrifft meistens sehr kleine Häppchen an Informationen, die davon stark betroffen sind. Immer wieder wird Information an mehreren Stellen im Code ausgedrückt, mit der Folge, dass eine Änderung dieser Information an vielen Stellen geändert werden muss. Neben mehrfacher Wissensrepräsentation zählen hierzu auch Kommentare, Dokumentation und sogar von Programmiersprachen erzwungene Wiederholungen, wie zum Beispiel die Headerdateien in C. In vielen Fällen ist auch Faulheit die Ursache von Duplikationen, wenn Entwickler schnell mal ein Stück Code kopieren und es dann den lokalen Gegebenheiten anpassen – die hier gefragte Technik wäre das Refaktorisieren (Kasten: Entwickler bei der Arbeit).

Entwickler bei der Arbeit

Als Entwicklercoach sehe ich vielen Entwicklern bei der Arbeit zu und entdecke manchmal mit Entsetzen, wie häufig die Tastenkombination Ctrl-C und Ctrl-V zum Einsatz kommt. Ich rate dann schon auch mal dazu, die Key-Bindings in der IDE für Copy und Paste für einige Zeit zu entfernen, sodass man zur Maus greifen muss, um zu kopieren. Der Effekt ist absehbar, man dupliziert augenblicklich weniger Code, denn wenn man kopieren muss, dann muss es ein wenig „weh“ tun. So gewöhnt man sich das Kopieren schneller ab.

In den meisten Fällen jedoch wird Duplikation unabsichtlich gemacht, es fällt gar nicht auf. Kann sein, dass Copy/Paste schon so in Fleisch und Blut übergegangen ist und man unterbewusst Code dupliziert, es kann aber auch sein, dass man vergisst, dass man gewisse Informationen schon mal anderswo kodiert hat.

Auch beim eigenen Entwurf von Softwaresystemen spielt DRY eine wichtige Rolle. Man entwickelt ja schnell auch mal eine Bibliothek, ein System oder auch eine domänenspezifische Sprache zur Lösung eines spezifischen Problems und sollte nicht vergessen, darauf zu achten, dass man damit die eigenen Anwender nicht zur Duplikation von Informationen zwingt. In XML kodierte Konfigurationen, die sich in Teilen im Code widerspiegeln, sind zum Beispiel typische Fallen. Aber auch auf der Ebene der Benutzerschnittstelle passiert es immer wieder, dass ein und dieselbe Information mehrmals auftaucht. Zu den üblichen Verdächtigen zählt hier die Validierungslogik, die sich auch mal auf allen drei Ebenen, im User Interface, in der Businesslogik und in der Persistenzschicht wiederfindet.

Dave Thomas und Andy Hunt schreiben in ihrem „Pragmatic Programmer“ [1]: „It isn’t a question whether you’ll remember, it is only a question when you forget!“ – Codeduplikation ist also vielmehr erst dann eine Frage, wenn man vergisst, sie wegzuräumen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -