Reusable Code – die Kunst des schlanken und nachhaltigen Quellcodes

„We flew down weekly to meet with IBM, but they thought the way to measure software was the amount of code we wrote, when really the better the software, the fewer lines of code“, meint Bill Gates, sicherlich einer der erfolgreichsten Programmierer der Welt. (Quelle: Quotefancy)

Von ihm ist auch überliefert, dass er seinen ersten wirklich wichtigen Programmierauftrag, einen Basic-Übersetzer für die Firma Micro Instrumentation and Telemetry Systems (MITS) innerhalb nur eines Monats ablieferte.

Ob Bill Gates jemals Codezeilen wiederverwendet hat? – Nun, wer weiß!

Heute sitzen Software-Entwickler in der Regel lange an einem Programm und einige sind dazu übergegangen, Teile davon als Reusable Code zu nutzen. Das kann von entscheidender Bedeutung sein, wenn man weiß, wie stark Sustainability heute in die Wertschöpfung drängt.

Um das zu unterstützen, findest du hier unsere vier Grundlagen, wie du Code planst oder identifizierst, um ihn später wiederzuverwenden, aber lediglich einmal entwickelst.

Modularität

Das Einteilen der Software in mehrere Blöcke, in der jede Klasse oder Methode nur eins tut, ist sicherlich der zentrale Schritt, der zum Reusable Code führt. (Ein sogenannter Spaghetticode wird für so was nie infrage kommen, dafür sind seine Strukturen zu verworren.)

Für die Wiederverwendung muss die Software von Beginn an bereits in Modulen geplant und in unabhängige Blöcke unterteilt sein. Nur derart modularisierte Software macht die Datenverwendung im Nachhinein verständlich und möglich. Sie präsentiert aus sich selbst heraus übersichtlich ihre Methoden und Funktionen und minimiert die Notwendigkeit, diese jedes Mal neu schreiben zu müssen.

Sinn und Zweck ist also, frühzeitig einen einfachen Code zu schreiben, der auch andere Programmierer dazu befähigt, die Architektur und auch die Komponenten schnell zu verstehen. So erkennen diese die jeweiligen Grenzen und Schnittstellen, die es überhaupt erst ermöglichen, die Teile zu erfassen, die zur Wiederverwendung nützlich sind.

Beitragsbild Insight reusable code zum Stichpunkt modularität Beitragsbild Insight reusable code zum Stichpunkt modularität
Beitragsbild Insight reusable code zum Stichpunkt guter zusammenhalt Beitragsbild Insight reusable code zum Stichpunkt guter zusammenhalt

Guter Zusammenhalt

Immer wenn es um Code Reuse geht, bedeutet guter Zusammenhalt den Zusammenhalt von zwei oder auch mehreren Systemen. Die Codezeilen in einer Methode oder Funktion arbeiten zusammen, um im Ziel einen Sinn zu ergeben.

Um eine Klasse und ihren dazugehörigen Zweck richtig zu definieren, arbeiten Methoden und Eigenschaften zusammen. Klassen wiederum müssen zusammenpassen, um Module zu erstellen, die dann zusammenarbeiten, wenn aus der Architektur ein System wird.

Kurz gesagt: Nur wenn der Zusammenhalt insgesamt hoch ist, kann der Code überhaupt wiederverwendet werden. So ist es sicher, dass er funktioniert und sich im Laufe der Zeit auch an die unterschiedlichsten Umgebungen anpassen und dir in deinen verschiedensten Projekten nützlich sein wird.

Lose Kopplung

Lose Kopplung verrät, dass die einzelnen Module unabhängig voneinander funktionieren und sich bei auftretenden Fehlern nicht gegenseitig behindern. Das Augenmerk gilt einer Klasse oder Methode und wie sich diese im Verhältnis ihrer Modularisierung auf die Funktionen verhält. Es kommt darauf an, mit weniger untereinander eng verbundenen Klassen auszukommen.

Deshalb gilt es, Klassen herauszuarbeiten und zu erkennen und dann den Code mit einer losen Kopplung als Modul zu gestalten. Sind die Module zu stark gekoppelt, wird es schwierig, an ihren Funktionen etwas zu ändern, ohne dass ein Programmierer wieder die gesamte Codebasis bearbeiten muss.

Wenn lediglich eine lose Kopplung existiert, müssen nur einzelne Variablen oder Funktionen angepasst werden. Der Code wird somit variabler und verschiebbarer. Ganz ohne Kopplung (mit einer Nullkopplung) funktioniert es aber auch nicht. Die Kunst besteht darin, ein Gleichgewicht in der Kopplung herzustellen.

Beitragsbild Insight reusable code zum Stichpunkt lose kopplung Beitragsbild Insight reusable code zum Stichpunkt lose kopplung
Beitragsbild Insight reusable code zum Stichpunkt Komponententest Beitragsbild Insight reusable code zum Stichpunkt Komponententest

Der Komponententest

Als vierten Punkt empfehlen wir, einen Komponententest zu entwickeln, um die Klassen schnell und übersichtlich zu testen. Die Testmethode sollte dabei nur eine Funktion testen und nicht den Versuch starten, verschiedene Funktionen gleichzeitig zu testen.

Die Testmethoden haben die Auffindbarkeit zu gewährleisten, um später eine möglichst reibungslose und schnelle Implementierung zu erreichen. Wir empfehlen, besondere Voraussetzungen für alle zu testenden Funktionen und Methoden einzukalkulieren.

So wird es dir später möglich, ein großes System aus mehreren kleineren Komponenten zu bauen und die Beziehung der Teile zu erkennen.

Das Ende ist Teil des Neuen

Wenn du nun also Modularität, hohe Verbindung und auch die lose Kopplung beachtest, wird dein Code von Beginn an flexibel und anpassungsfähig auf die unterschiedlichsten Projekte reagieren. Das bedeutet, es ist möglich, den Softwarecode zu erweitern und zu verändern, vor allem, wenn du aufpasst und nicht zu generisch oder zu einzigartigen Allrounder-Code entwickelst.

Wiederverwendbarer Code soll seine Aufgaben erfüllen, Benutzer glücklich machen und sowohl die Funktionalität als auch eine Leistung gewährleisten. Deshalb gilt unserer Erfahrung nach: Wenn die Einheiten übersichtlich, präzise und auch leicht zu warten sind, ist die Möglichkeit, dass Code wiederverwendet werden kann, ziemlich sicher.

Beitragsbild Insight reusable code resumee zum wiederverwendbaren quellcode Beitragsbild Insight reusable code resumee zum wiederverwendbaren quellcode
Shantu Andreas Bhattacharjee - Portrait

Du möchtest mehr über Reusable Code und agile Webentwicklung wissen? Dann melde dich bei uns!

Shantu Bhattacharjee

Wir sind für dich da!