Definition „Clipboard Coding“ Warum ist Copy-and-Paste Programming problematisch?
Von chrissikraus 4 min Lesedauer
Anbieter zum Thema
Copy-and-paste programming kennt man auch als Pasting oder Clipboard Coding. Die Begriffe bezeichnen das unreflektierte Wiederverwenden bereits bestehenden Quellcodes.
Copy-and-paste Programming ist ein Anti-Pattern, bei dem Programmcode kopiert und für andere Stellen oder Projekte wiederverwendet wird. Das Kopieren und Einfügen setzt kein echtes Verständnis des Codes voraus und birgt daher hohes Potenzial für Fehler, Qualitätsprobleme und Duplicate Code.
Es gibt mehrere Gründe, aus denen Entwickler absichtlich oder unabsichtlich Cut-And-Paste Programming praktizieren.
Zeitdruck: Wenn erheblicher Zeitdruck besteht, kann es verlockend sein, bestehenden Code wiederzuverwenden, statt selbst Code zu verfassen. Die Vorstellung ist, dass damit viel Zeit und Arbeit eingespart wird und man innerhalb der Deadline liefern kann.
Fehlendes Wissen: Wenn ein Entwickler ihm unbekannte Technologien nutzen muss, orientiert er sich häufig an Beispielen und kopiert diese in seinen Code. Das muss nicht automatisch ein Problem sein. Wenn der Entwickler sich gleichzeitig in die Technologie einarbeitet und die Funktionsweise versteht, kann er über das Kopieren und Anpassen eines Beispiels einen Einstieg finden.
Schlechte Dokumentation von Modulen: Wiederverwendbare Komponenten sind nur dann praktikabel, wenn ersichtlich ist, was sie anbieten und wo sie zu finden sind.
Schlechte Planung: Wird nicht vorausschauend geplant, ist vorab nicht klar, ob bestimmte Funktionen häufiger gebraucht werden und daher ausgelagert werden sollten.
Bequemlichkeit: Kopieren und Einfügen kann den Eindruck vermitteln, dass es weniger mühsam ist.
Kann Copy-and-paste programming auch legitim sein?
In den meisten Fällen ist eher davon abzuraten, Quellcode stumpf wiederzuverwenden. In der Softwareentwicklung werden die Ziele eines Projekts jedoch für den Einzelfall festgelegt und nicht immer nehmen hohe Qualität oder ein langlebiges, wartbares Produkt die obersten Prioritäten ein. Es kann vorkommen, dass eine schnelle und kostengünstige Veröffentlichung so wichtig ist, dass das Klonen von Code die ökonomischste Lösung ist.
Spielen Qualität oder Wartbarkeit keine wichtige Rolle, kann sich ein Team trotz allem für Cut-And-Paste Programming entscheiden. Soll z. B. ein kurzlebiges Tool erstellt werden, das keine kritischen Aufgaben übernimmt und besonders schnell verfügbar sein muss, könnte der Ansatz in Erwägung gezogen werden. Unter Umständen kann kopierter Code auch beim schnelleren Entwickeln mancher Prototypen helfen.
Was sind typische Probleme und Folgen des Copy-and-paste programming?
Duplicate Code
Wird identischer Code an mehreren Stellen einer Software gefunden, spricht man von Duplicate Code. Das gilt als unerwünscht, weil es viele Probleme wie erschwerte Wartbarkeit oder unnötig langen Code erzeugt. Copy-and-paste programming ist eine häufige Ursache für Duplicate Code.
Schwierigkeiten in Wartung und Weiterentwicklung
Ein offensichtliches Problem ist die komplexe Wartung und Weiterentwicklung von Programmen, die zahlreiche Stellen mit immer wieder kopiertem Code enthalten. Soll eine Funktion erweitert oder verändert werden, muss ein Entwickler alle Stellen finden, an denen er zum Einsatz kommt. Wäre der Code sauber modular aufgebaut, müsste nur einmalig eine Änderung geschehen.
Gerne schleichen sich auch weitere Fehler ein, wenn bei der Wartung nicht alle Stellen beachtet werden. Insgesamt verlängert Copy-and-paste programming häufig die Zeit, die für die Wartung und Weiterentwicklung investiert werden muss - und damit die Kosten, die für diese Arbeiten anfallen.
Vervielfältigen von Fehlern
Taucht ein und derselbe Fehler häufiger in einer Software auf, obwohl er immer wieder im jeweiligen lokalen Kontext behoben wurde, liegt der Verdacht auf Kopieren und Einfügen von Code nahe. Der eingefügte Code könnte an sich fehlerhaft sein oder aber im jeweiligen Kontext zu Problemen wie Sicherheitslücken führen.
Infolgedessen müssen erst alle betroffenen Codestellen geändert werden, wenn ein Fehler endgültig behoben werden soll. Hierbei gibt es noch die Schwierigkeit, dass möglicherweise mehrere Entwickler zu unterschiedlichen Gelegenheiten an verschiedenen fehlerhaften Stellen arbeiten und dadurch mehrere Lösungswege für ein Problem einbringen.
Unnötig viele Codezeilen
Wenn häufig kopiert und eingefügt wird, statt modular und elegant zu arbeiten, wächst der Code rasant. Vor allem, wenn kopierte Segmente an vielen Stellen gebraucht werden, steigen die Codezeilen schnell in die Höhe. Langer Code mit vielen Zeilen ist kein Qualitätskriterium, sondern macht Quellcode unübersichtlicher und kann die Performance der Software beeinträchtigen, z. B. indem die Ladezeiten von Webanwendungen durch unnötig umfangreichen Quellcode steigen.
Wissensdefizite im Team
Außerdem kann es passieren, dass Entwickler nie wirklich den korrekten und effizienten Umgang mit Paradigmen und Technologien lernen, wenn sie immer wieder nur Vorhandenes wiederverwenden. Es ist eine Sache, eine kopierte Codestelle so anzupassen, dass sie den aktuellen Bedürfnissen entspricht - und eine andere, diese Funktion von Grund auf selbst korrekt umsetzen zu können. Die Folgen sind lückenhaftes Wissen und unterentwickelte Fähigkeiten, was auf lange Sicht die Softwarequalität beeinträchtigt.
Fazit
Copy-and-paste programming ist im professionellen Umfeld eine eher ungern gesehene Art des Programmierens, die nur in wenigen Ausnahmefällen aktiv als bevorzugte Lösung gewählt wird. Obwohl das Kopieren und Wiederverwenden von Code auf den ersten Blick zeitsparend erscheinen kann, führt es zu langfristigen Problemen. Der Ansatz ist häufig ein Resultat von Zeitdruck oder Unwissen und erzeugt schlecht wartbare, wenig zukunftsorientierte Software.
(ID:49665870)