Clean Code: Meine Erfahrungen im orangenen Grad

Posted by in clean code

Nachdem mein letzter Bandwechsel schon über zwei Jahre her ist, werde ich heute in den gelben Grad wechseln. Meine Erfahrungen mit dem orangenen Grad waren gemischt. Einige Prinzipien und Praktiken waren selbstverständlich, andere wiederum echte Augenöffner!

Prinzipien

An dem Single Level of Abstraction (SLA) Prinzip habe ich ziemlich lange geknabbert, bis ich es endlich überall durchziehen konnte. Es verlangt einem tatsächlich ab, viel Arbeit in seinen Code zu stecken. Nur durch sinnvolles Refactoring kann man sicherstellen, dass es auch eingehalten wird. Der Code wirkt dadurch aber grundsätzlich aufgeräumter und hat eine besondere Ästhetik. 🙂

Wenn man wie ich in Legacy Systemen unterwegs ist, ist das Single Responsibility Principle (SRP) nicht immer einfach umzusetzen. Tatsächlich habe ich nicht sehr viele Klassen, bei denen es schwierig einzuhalten war, geschrieben. Eigentlich ist das SRP selbstverständlich umsetzbar, wenn man sein Gehirn nicht ausschaltet und genügend Zeit hat.

Teilweise schwierig einzuhalten ist das Prinzip des Separation of Concerns (SoC). Ich interpretiere es für mich so, dass ich nicht zu viel in eine Methode packen will und Funktionseinheiten in separate Methoden packe. Tatsächlich habe ich auch wie vorgeschlagen mit aspektorientiertem Logging einen Querschnittsconcern komplett ausgelagert. Der Code wurde dadurch viel lesbarer und beschränkte sich nur noch auf die Businesslogik. 🙂

Source Code Konventionen: Ja, also da braucht man nicht viel dazu zu sagen. Die hält man einfach ein! Im orangenen Grad soll auf Namensregeln und Kommentare geachtet werden. Das war nicht sonderlich schwierig dank Styleguide.

Praktiken

Ich habe mir angewöhnt beim Issue Tracking sehr konzentriert zu sein. Es wird für jede Aufgabe und jeden noch so kleinen Fehler ein Ticket angelegt. Das verhindert konsequent, dass wichtige Dinge vergessen werden. Eine Nerven sparende Praktik!

Automatisierte Integrationstests: Keine nennenswerte Erfahrung damit gemacht! 🙁

Der orangene Grad schlägt vor, mindestens 6 Fachbücher im Jahr zu lesen. Das schaffe ich leider nicht ganz. Ich komme vielleicht auf drei. Dafür lese ich Blogs, Zeitschriften und Newsletter in Massen.

Da ich inzwischen als Ausbilder aktiv bin, kommt die Rolle des Reviewers stärker zum tragen. Mein eigener Code wird leider noch zu wenig gereviewed. Ich empfinde das Code-Review als nützliche Technik, um versteckte Anforderungen und Annahmen zu erkennen. Auch kann man als Reviewer viele dumme Fragen stellen, was ebenfalls zu interessanten Erkenntnissen führt.

Fazit

Auf geht es zum nächsten gelben Grad. Die Themen automatisierte Integrationstests und intensivere Code-Reviews werde ich hoffentlich irgendwann nachholen. Im gelben Grad wird für mich vor allem das Principle of Least Astonishment interessant sein.