Clean Code

 

Was ist Clean Code?

Clean Code wird im allgemeinen als Begrifflichkeit für klar verständlichen, nachvollziehbaren, logischen Softwarecode verwendet. Das Prinzip des Clean Code zielt darauf ab, Code nicht nur leicht lesbar, sondern auch erweiterbar, änderbar und wartbar zu machen.

Wichtig ist, dass dies nicht nur für den ursprünglichen Ersteller Gültigkeit besitzt, sondern für jeden Software Entwickler, dem der Code übergeben wird.

 

Softwareentwicklung, Programmierung, Metriken, Clean Code

Woher stammt der Begriff Clean Code?

Clean Code ist mittlerweile ein weiter verbreiteter Begriff und wurde durch das Buch „Clean Code: A Handbook of Agile Software Craftsmanship“ von Robert C. „Uncle Bob“ Martin geprägt. Die Clean Code Prinzipien sind jedoch schon wesentlich älter und stammen gar nicht aus der Software-Entwicklung.

Robert C. Martin ist seit 1970 in der Softwarebranche tätig, seit 1990 ist er internationaler Software Consultant. Er ist Gründer von Object Mentor, Inc. und hilft mit seinem Team aus erfahrenen Beratern Kunden in den Bereichen C++, Java, C#, Ruby, 00, Design Patterns, UML, Agile Methoden und eXtreme-programming. Sein Buch vermittelt, wie man guten von schlechtem Code unterscheidet, wie man guten Code schreibt und man wiederum schlechten Code in guten Code verwandelt, wie man gute Namen, Funktionen, Objekte und Klassen erstellt. Ferner zeigt es, wie man Code so formatiert, dass er optimal lesbar ist, wie man eine vollständige Fehlerbehandlung implementiert, ohne die Logik des Codes zu verschleiern und man Unit-Tests durchführt und testgetriebene Entwicklung praktiziert.

 

Warum produziert man Clean Code?

Beim Erstellen von Software gibt es sehr viele Aspekte, die man beachten kann und dadurch besteht die Gefahr, als Entwicklender den Überblick über die Technologielandschaft zu verlieren.

Egal ob Sprache, Technologie, Bibliothek oder Programmierparadigma, es gibt fast immer eine bessere Lösung für ein bereits gelöstes Problem. Selbst wenn der Code stark optimiert wurde, wird es einen Entwicklenden geben, der einen anderen Lösungsweg vorsieht.

Auch schlechter Code kann funktionieren. Wenn der Programmcode jedoch unsauber ist, kann er eine Entwicklungsorganisation in die Knie zwingen. Pro Jahr werden unzählige Stunden und enorme Ressourcen durch schlecht geschriebenen Code verschwendet.

 

Strukturierung, Metriken, Softwareentwickler Quellcode Regeln Software


Clean Code hilft dabei, eine gemeinsame Basis für die Kommunikation zu legen, um damit eine höhere Software Qualität zu erlangen.

 

Folgende Bereiche sind beim Clean Coding wichtig:

 

Code Conventions:

Code Conventions sind Richtlinien über die strukturelle Qualität von Software. Sie umfassen allgemeine Programmierstandards sowie „Best Practices“ und programmiersprachen spezifische Aspekte. Durch das Befolgen dieser Richtlinien kann die Les- und Nachvollziehbarkeit des Source Codes verbessert werden.

 

Refactoring

Refactoring ist ein wichtiger Aspekt in der Softwareentwicklung. Sobald eine neue Version einer Software veröffentlicht ist, stellen Anwendende neue Anforderungen für neue Versionen. Je umfangreicher und älter eine Software werden, desto schwieriger wird die Weiterentwicklung. Es bezeichnet die – manuelle oder automatisierte – Restrukturierung einer Software (meist) unter Beibehaltung des Funktionsangebots.

 

Automatisierte Tests

Automatisiertes Testen ist der Einsatz von Softwaretools für die Automatisierung eines von Menschen gesteuerten manuellen Prozesses zur Überprüfung und Validierung eines Softwareprodukts.

 

Code Reviews

Mit dem Code Review werden Arbeitsergebnisse der Softwareentwicklung manuell geprüft. Code-Reviews sollten in den vorhandenen Prozess eines Teams integriert werden. Durch die Qualitätssicherungsmaßnahme wird sichergestellt, dass die dafür vorgesehene Person den Code auf Probleme überprüft, die Maschinen übersehen. Außerdem wird verhindert, dass sich schlechte Entscheidungen bezüglich des Codes auf die Hauptentwicklung auswirken.

 

Quellcode, Code Review, Software Metriken, Softwareentwicklung, Programmierung

 

Aufwandsschätzungen

Der Aufwandsschätzung kommt im Projektmanagement eine zentrale Rolle zu. Von ihr ist der Erfolg oder Misserfolg von Projektarbeit maßgeblich abhängig. In der Schätzung wird berücksichtigt, wie viele Personen und wie viel Zeit für die einzelnen Arbeitsschritte oder Programmteile notwendig sind, welche Ressourcen gebraucht werden und was eine Umsetzung letztlich an Kosten verursachen kann. Kosten, Termine und benötigte Ressourcen sind die Grundlage für ein Angebot oder für eine Entscheidung, ob, wie und wann ein Softwareprojekt oder Arbeitspaket daraus gemacht wird.

 

Clean Code als Qualitätsmerkmal in der Praxis

Clean Code ist nicht als Regelwerk für perfekte Software anzusehen, vielmehr hilft die Anwendung von Clean Code bei der Verbesserung der Codequalität und vor allem der Kommunikation untereinander im Projektteam.

Automatisierte Tests sowie Code-Reviews verringern Aufwände und Fehler. Es sollte im Interesse der Entwickelnden sein, die Softwarekomplexität zu reduzieren. Dies geschieht durch Tests.

In der Praxis bewährt sich das schrittweise Vorgehen, wenn Clean-Code-Maßnahmen implementiert werden sollen.