Clean Code Development: Das Wertesystem
Das Wertesystem von Clean Code Development umfasst die Werten Evolvierbarkeit, Korrektheit, Produktionseffizienz und Kontinuierliche Verbesserung.
Um die Grundwerte von Clean Code Development zu erreichen, gibt es eine Reihe von Tugenden, die während dem Entwicklungsprozess zu beachten sind. Diese sollten regelmäßig in Erinnerung gerufen werden, um verinnerlicht zu werden, bis sie automatisch bei Verstößen gedanklich auf sich aufmerksam machen.
Diese Tugend steht dem häufigen Streben nach Konsolidierung, Vereinheitlichung und Standardisierung entgegen. Die Variationen sind zwingend Ergebnisse kontinuierlicher Verbesserung und sollten geschätzt werden, weil sie die Flexibilität und Widerstandsfähigkeit erhöhen. Diese Tugend zahlt auf die Werte Wandelbarkeit und Kontinuierliche Verbesserung ein.
Clean Code Developer sollen auf vorzeitige Optimierungen verzichten, um nicht unnötige Codeteile zu optimieren, welche später vielleicht nicht mehr relevant sind. Optimierungen kosten immer viel Aufwand. Wer vorsichtig ist, spart oft wertvolle Ressourcen für das, was für den Kunden wirklich nützlich ist. Clean Code Developer schreiben keine Codefragmente, die nicht wirklich gebraucht werden. Wer mehr tut als das Einfachste, lässt den Kunden warten und macht die Lösung unnötig kompliziert. Daher gilt es, immer die einfachsten Lösungen zu finden. Diese Tugend zahlt auf die Werte Produktionseffizienz und Wandelbarkeit ein.
Exemplarische Prinzipien dafür sind:
Wenn Clean Code Developer während der täglichen Arbeit Aspekte isolieren, vermeiden sie ungünstige Programmstrukturen, die Verständnis und Weiterentwicklung später erschweren würden. Die Tugend „Isoliere Aspekte“ zahlt auf den Wert Evolvierbarkeit ein.
Exemplarische Prinzipien dafür sind:
Unnötige Abhängigkeiten zwischen einzelnen Komponenten eines Systems können das Verständnis und die Weiterentwicklung erschweren. Aus diesem Grund nutzen Clean Code Developer die Tugend „Minimiere Abhängigkeiten“, wodurch eine Komponente weniger von ihrer Umgebung abhängt. Schnittstellen zwischen Komponenten müssen so einfach wie möglich gestaltet werden. Diese Tugend zahlt wie seine Vorgänger auf den Wert Evolvierbarkeit ein.
Exemplarische Prinzipien dafür sind:
Code sollte so wenige Überraschungen wie möglich enthalten, wozu auch zählt, dass die Implementierung den Entwurf widerspiegelt. Eine Komponente bietet über ihre äußere Schnittstelle Funktionalität an. Gemäß dem Liskovschen Substitutionsprinzip dürfen auch davon abgeleitete Komponenten nicht widersprechen. Diese Tugend zahlt auch auf den Wert Evolvierbarkeit ein.
Exemplarische Prinzipien dafür sind:
Softwareentwicklung im Voraus bis in letzte Details zu planen, ist praktisch unmöglich. Statt sich vor dem stetigen Wandel zu fürchten, heißen wir ihn willkommen und stellen uns auf ihn ein. Wir speichern alle Entwicklungsstände in einem Versionsverwaltungssystem, sodass wir jederzeit zu älteren Versionen zurückkehren oder neue Entwicklungslinien abzweigen können. Die nötige Sicherheit geben uns viele automatisierte Tests. Diese Tugend zahlt auf die Werte Evolvierbarkeit und Kontinuierliche Verbesserung ein.
Exemplarische Prinzipien dafür sind:
Durch die Komponentenorientierung, den Test-first-Ansatz und die Begrenzung der parallel bearbeiteten Aufgaben konzentrieren sich Clean Code Developer auf das wesentliche Problem und arbeiten dadurch effizienter. Diese Tugend zahlt auf den Wert Produktionseffizienz ein.
Exemplarische Prinzipien dafür sind:
Die Ansprüche an hohe Qualität können nur durch automatisierte Tests, gegenseitige Reviews und statischer Codeanalyse sichergestellt werden. Diese Tugend zahlt wie die Vorgängertugend auf den Wert Produktionseffizienz ein.
Exemplarische Prinzipien dafür sind:
Software ist nicht einsetzbar, wenn sie nicht vollendet ist. Deshalb wird in kleinen Schritten entwickelt, um regelmäßig Ergebnisse ausliefern zu können. Diese Tugend zahlt ebenfalls auf den Wert Produktionseffizienz ein.
Exemplarische Prinzipien dafür sind:
Gemäß der Pfadfinderregel aus dem roten Grad, sollte der Platz immer sauberer hinterlassen werden, als er vorgefunden wurde. Kleine Verbesserungen werden an Ort und Stelle direkt vorgenommen und nicht verschoben. Angewendet auf die Softwareentwicklung bedeutet das, dass Code umgebaut wird, wenn er dadurch besser wird, bevor der Clean Code Developer zur nächsten Codestelle übergeht. Diese Tugend zahlt auf die Werte Evolvierbarkeit, Korrektheit und Produktionseffizienz ein.
Exemplarische Prinzipien dafür sind:
Clean Code Developer entwickeln sich über die Zeit und über viele Übungen hinweg immer weiter. Der ewige Kreislauf des Lernens und Verbessern hat kein Endpunkt. Der Anreiz entsteht durch neu geschriebenen Code von allein. Diese Tugend zahlt auf den Werte Kontinuierliche Verbesserung ein.
Exemplarische Prinzipien dafür sind:
Das Wertesystem von Clean Code Development umfasst die Werten Evolvierbarkeit, Korrektheit, Produktionseffizienz und Kontinuierliche Verbesserung.
Clean Code Development ist in verschiedenen Graden unterteilt, die man als Entwickler eine nach der anderen erklimmt und in einem ewigen Kreislauf wiederholt