Code-Duplikat
Wissen kompakt: Als Code-Duplikat wird Quellcode verstanden, der mehrfach innerhalb einer Software verwendet wird.
Code-Duplikat – identischer oder ähnlicher Quellcode
Quellcode, der in identischer Form mehrfach innerhalb einer Software verwendet wird, wird als Code-Duplikat – alternativ auch als Softwareklon oder Quelltextklon – bezeichnet. Auch ähnliche Codeabschnitte bzw. Fragmente gelten als Duplikate.
Code-Duplikat entstehen beim Kopieren vorhandener Funktionalitäten von einer zu einer anderen Stelle innerhalb einer Software. Dies wird auch Copy and Paste Programmierung genannt.
Gründe für Code-Duplikate
Es gibt verschiedene Gründe, die zur Entstehung von Code-Duplikaten führen:
- Vorhandener Code wird kopiert, um ihn an anderer Stelle zu adaptieren (bspw. durch Umbenennung von Variablen oder Löschen bzw. Hinzufügen von Codezeilen) oder zu testen.
- Funktionierender Code wird wiederverwendet, um das Risiko neuer Fehler zu minimieren.
- Entwickler stehen unter Zeitdruck und wollen existierenden Code nutzen, um Zeit bei der Implementierung zu sparen.
- Entwickler besitzen nicht die Kenntnisse, um einen speziellen Code zu produzieren und duplizieren daher existenten Code.
- Code wird automatisch generiert, bspw. durch Model Driven Development oder Software Factories.
Auch die Verwendung von Bibliotheken kann zur Entstehung von Softwareklons führen.
Gründe für die Beseitigung von Code-Duplikaten
Im Zuge eines Refactorings – das jeglichen Code-Smell adressiert – versuchen Organisationen oftmals Code-Duplikate aufzulösen, um
- den Wartungsaufwand zu reduzieren. Ein Quelltextklon muss an jeder Verwendungsstelle gelesen und verstanden werden. Im Unterschied zu anderen Codezeilen, auf die das ebenfalls zutrifft, gilt es dabei herauszufinden, ob kleinere Unterschiede (also bspw. Unterschiede in den Bezeichnern, die Verwendung von Gaps oder Kommentaren) beabsichtigt sind. Sobald Optimierungsmöglichkeiten identifiziert sind, müssen diese an sämtlichen Verwendungsstellen implementiert werden.
- das Bugfixing zu erleichtern. Leicht können Quelltextklons und damit kopierte Fehler übersehen werden. In der Folge entstehen inkonsistente Änderungen.
- den Speicherbedarf zu minimieren. Durch das Klonen steigt der Codeumfang und somit der benötigte Speicherplatz an. Gerade im Bereich von eingebetteten Systemen ist dies kritisch, da dort meist nur wenig Speicherplatz verfügbar ist. Zusätzlich steigt durch das Duplizieren auch die Zeit für die Kompilierung.
- die Lesbarkeit von Code zu erleichtern.
Beim Identifizieren von Code-Duplikaten – auch als Clone Detection bezeichnet – können Werkzeuge sowohl bei der textuellen als auch bei der lexikalischen oder der abstrakten Analyse helfen. Auch die Nutzung von Metriken wird oftmals von Tools unterstützt.
Auflösen lassen sich Softwareklons mit Hilfe von Abstraktionen (bspw. durch die Auslagerung von wiederkehrenden Algorithmen in Prozeduren oder Methoden) oder durch die Verwendung einer gemeinsamen Basisklasse. Sollte dies nicht so leicht und schnell möglich sein, empfiehlt es sich, das Code-Duplikat zu „beobachten“, um wenigstens weitere, ungewollte inkonsistente Änderungen zu vermeiden.
Hier finden Sie ein Video über Code Smells: Duplicate Code (DRY).
Wenn Ihnen der Beitrag gefällt, teilen Sie ihn gerne in Ihrem Netzwerk. Und falls Sie sich für Tipps aus der Praxis interessieren, dann testen Sie unseren beliebten Newsletter mit neuen Beiträgen, Downloads, Empfehlungen und aktuellem Wissen. Vielleicht wird er auch Ihr Lieblings-Newsletter.
Wir suchen Softwareentwickler und Softwareentwicklerinnen. Haben Sie Lust, unser Team zu verstärken? Ob Sie als Berufseinsteiger die ersten Schritte machen, bereits einige Jahre Erfahrung mitbringen oder als Expertin tief im Code stecken – bei uns finden Sie genau die Herausforderung, die zu Ihnen passt!
Und hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt: