Literaturliste zum Thema Clean Code Development

Lesenswerte online Artikel

Hörenswerte Podcasts

Did you like this? Share it:

Clean Code Development Tools

Architektur / Design

Inversion of Control / Dependency Injection

Versuch einer Vereinheitlichung des Zugriffs auf DI Container:

Vergleich einiger DI Frameworks.

 

Refaktorisierung

 

Metriken / Codeanalyse

Automatisiertes Testen

Integrationstests, UI Tests

 

 

Unit Tests

Liste von Unittest-Frameworks bei Wikipedia

Mockup Frameworks

 

Code Coverage Analyse

 

Produktion

Build-Tools

 

Versionskontrolle

Zentral

 

Verteilt

Continuous Integration

Vergleich einiger CI Tools.

Profiler

 

Entwicklungsprozess

 

Issue Tracking

 

Clean Code Developer

Did you like this? Share it:

Clean Code Development

Ein wichtiger Bestandteil von Qualitätsmanagement sollte immer erst das schreiben von gutem, sauberem Code sein. Ist bis Heute nicht selbstverständlich, und viel geht noch über die Formel “Quick and Dirty”. Einige von euch Programmierern kennen eventuell das Buch “Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code” eine entsprechende Initiative findet ihr hier.

Auszug aus der Webseite http://clean-code-developer.de/

Minimale Anforderungen an Professionalität

Für uns macht Professionalität vielmehr zweierlei aus:

  • Ein professioneller Softwareentwickler setzt sich mit dem Metier bewusst auseinander.
    D.h. er reflektiert über sein Produkt, seine Arbeitsweise, seine Materialien und Werkzeuge. Ein professioneller Softwareentwickler ist nicht einfach zufrieden, wenn sein Chef oder Kunde zufrieden sind. Er ist auch nicht einfach mit dem zufrieden, was ein Hersteller ihm empfiehlt. Stattdessen beobachtet und prüft er ständig seine Ergebnisse und bemüht sich um die Weiterentwicklung seiner selbst wie auch des Metiers.
  • Ein professioneller Softwareentwickler hat ein inneres Wertesystem.
    Gegen dieses Wertesystem prüft er seine Ergebnisse und Handlungen. Nur, wenn seine Arbeit diesem Wertesystem entspricht, empfindet er sie als gut getan, als professionell. Sein Streben ist es daher, auch unter widrigen Umständen, unter Druck von Kunden oder Herstellern, diesem Wertesystem treu zu sein.

Das mag sich nun in der Kürze etwas antiquiert oder sektiererisch anhören. Sollen Softwareentwickler sich eine Zunftordnung geben oder gar einen Treueeid schwören? Nein, so meinen wir es natürlich nicht. Dennoch: In Ermangelung eines Konsenses darüber, was denn genau “gute Softwareentwicklung” sei, glauben wir, dass ein “kleinster gemeinsamer Nenner” Not tut. Die Branche – wobei wir hier zunächst nur die .NET Softwareentwicklung meinen – braucht einen Qualitätsmaßstab oder zumindest einen Erwartungshorizont für Professionalität. Die Zeiten, in denen jeder, der schon mal etwas in BASIC programmiert hatte, ausreichend qualifiziert war, um in einem Team mitzuarbeiten, sind vorbei. Genauso ist aber noch nicht die Zeit gekommen, in der die Vorlage eines Informatik Diploms wirklich etwas über die Befähigung zur Softwareentwicklung aussagen würde. (Disclaimer: Nichts gegen Diplominformatikstudiengänge! Aber wer kennt denn keinen Dipl. Inf., der durch sein Studium gekommen ist, ohne mehr als einige Zeilen zu programmieren?)

Clean Code als Fundament

Was also tun für mehr (sichtbare) Professionalität in der Softwareentwicklung? Wir glauben, die Branche sollte nach Anerkenntnis des Problems einfach mal nur einen kleinen Schritt machen. Weder müssen die Curricula von Masters-Studiengängen neu definiert werden noch ist die Gründung eines Verbandes zwingend. Viel einfacher glauben wir, dass “es” schon besser würde, wenn wir alle auch nur ein Buch gemeinsam gelesen hätten. Schon die vereinte Zustimmung zu den Aussagen in nur einem Buch würde einen Konsens herstellen, der viel bewirken könnte.

Wir meinen, mit Clean Code von Robert C. Martin solch ein Buch gefunden zu haben, das der gemeinsamen Lektüre würdig ist. Es ist kein perfektes Buch und auch wir stimmen nicht allem darin vorbehaltlos zu – aber es ist ein Buch “im rechten Geist”: es ist ein Ausdruck profunder Reflexion und hat den Mut, ein fundamentales Wertesystem zu formulieren.

In Clean Code geht es nicht um Plattform oder Technologie oder ein Programmierparadigma. Man muss also kein Freund von .NET oder Java oder ASP.NET oder SVN oder OOP sein, um aus ihm Gewinn zu ziehen. Es dreht sich vielmehr um das unter all dem liegende Substrat: Code als Quelltext und Code als strukturierter Ausdruck von Funktionalität. Für Code als kleinsten gemeinsamen Nenner zwischen Softwareentwicklern aller Coleur beschreibt Clean Code eine Menge von Prinzipien und Best Practices als kleinsten gemeinsamen Nenner.

Nicht, dass es nicht auch andere Bücher gäbe, die ähnliches tun. Uns hat aber zufällig Clean Code so angesprochen, dass wir es als Kristallisationskeim für unsere Idee des Clean Code Developer nutzen wollen.

Letztlich ist aber auch das nicht in Stein gemeißelt. Morgen erscheint vielleicht ein noch besseres Buch. Gut so! Aber an dem, was wir meinen, das Professionalität ausmacht, ändert das nichts. Deshalb fangen wir einfach mal an. “Nicht lang schnacken, Kopf in Nacken” – so sagen die Hamburger, wenn sie einen Korn (norddeutscher Schnaps) in der Hand haben. Und so wollen wir es auch halten: Ganz im Sinne der Agilitätsbewegung nicht planen bis zur Bewusstlosigkeit, sondern etwas tun. Einen kleinen Schritt machen in Richtung mehr Professionalität.

Wer hat Lust mitzumachen? Hier geht’s los…

 

Videos

 

Weiterführende Links

http://clean-code-developer.de/Wertesystem.ashx

 

Did you like this? Share it: