Clean Code Developer

Veröffentlicht auf 7. September 2009

Anfang des Jahres wurde von Stefan Lieser und Ralf Westphal die "Clean Code Developer" Initiative (CCD) ins Leben gerufen. Sie hat zum Ziel das Bewusstsein der Entwickler für eine professionellere Softwareentwicklung zu verbessern.
Die Grundlage für diese Idee bildet das Buch "Clean Code" von Robert C. Martin (ISBN-13: 978-0132350884), welches verschiedene Kriterien aus der agilen Entwicklung für professionellen Code zusammenfasst und weiterentwickelt.

Clean Code developer Stempel

CCD bietet einem Entwickler ein Wertesystem, das (unter anderem allseits bekannte) Prinzipien Regeln und Praktiken für die Entwicklung für qualitativ besseren Code vorgibt und auf mehreren Grade verteilt.
Die gesamte Idee ist nicht wirklich neu und ähnliche Ansätze gibt es bereits, allerdings hat CCD in letzter Zeit für bedeutend mehr Wirbel gesorgt.

Folgende CCD Grade sind erreichbar:
0. Schwarz
1. Rot
2. Orange
3. Gelb
4. Grün
5. Blau
6. Weiß
Welcher Grad durch einen Entwickler erreicht wird, wird durch ein Armband gekennzeichnet.
Das Armband soll nicht nur nach außen hin den Wunsch nach besserer Codequalität signalisieren, sondern auch die Entwickler selber immer weiter anspornen.

Folgende Prinzipien für die Strukturierung von Software werden gefordert:
    * Don´t Repeat Yourself (DRY): CcdRoterGrad
    * Keep if simple, stupid (KISS): CcdRoterGrad
    * Favour Composition over Inheritance (FCoI, OOP): CcdRoterGrad
    * Vorsicht vor Optimierung!: CcdRoterGrad
    * Separation of Concerns (SoC): CcdOrangerGrad
    * One level of abstraction: CcdOrangerGrad
    * Source Code Konventionen: CcdOrangerGrad
    * SOLID
          o S-ingle Responsibility Principle (SRP): CcdOrangerGrad
          o O-pen-Close Principle (OCP, OOP): CcdGruenerGrad
          o L-iskov Substitution Principle (LSP, OOP): CcdGelberGrad
          o I-nterface Segregation Principle (ISP, OOP): CcdGelberGrad
          o D-ependency Inversion Principle (DIP, OOP): CcdGelberGrad
    * Law of Demeter (LoD, OOP): CcdGruenerGrad
    * Tell, don´t ask: CcdGruenerGrad
    * Information Hiding Principle (IHP): CcdGelberGrad
    * Principle of least astonishment: CcdGelberGrad
    * Entwurf und Implementation überlappen nicht: CcdBlauerGrad
    * Implementation spiegelt Entwurf: CcdBlauerGrad
    * You Ain´t Gonna Need It (YAGNI): CcdRoterGrad, CcdBlauerGrad

Folgende Verhaltensweisen und Praktiken sollen angewendet werden:
    * Pfadfinderregel: CcdRoterGrad
    * Root cause analysis: CcdRoterGrad
    * Tägliche Reflexion: CcdRoterGrad
    * Versionskontrolle: CcdRoterGrad
    * Issue Tracking: CcdOrangerGrad
    * Refactoring: CcdRoterGrad, CcdGelberGrad
    * Automatisches Testen
          o Integrationstests: CcdOrangerGrad
          o Unit Tests: CcdGelberGrad
          o Testattrappen: CcdGelberGrad
          o Code Coverage Analyse: CcdGelberGrad
    * Komponentenorientierung
          o Inversion of Control Container: CcdGruenerGrad
          o Contract-first Design: CcdBlauerGrad
          o Komponentenwerkbänke: CcdBlauerGrad
    * Test Driven Development/Design: CcdBlauerGrad
    * Statische Codeanalyse: CcdGruenerGrad
    * Automatische Produktion
          o Übersetzung und Test: CcdGruenerGrad
          o Setup und Deployment: CcdBlauerGrad
    * Iterative Entwicklung: CcdBlauerGrad
    * Fortbildung
          o Lesen, lesen, lesen: CcdOrangerGrad
          o Teilnahme an Fachveranstaltungen: CcdGelberGrad
          o Erfahrungen weitergeben: CcdGruenerGrad
    * Code Review: CcdOrangerGrad

Zur Unterstützung der Entwickler wurde sogar bereits ein AddIn für Visual Studio entwickelt, was die Einhaltung der Kriterien vereinfachen soll.

Mehr Infos unter:
http://www.clean-code-developer.de
Mindmap:
http://www.leading-edge-dev.de/stuff/CCD_Mindmap/CCD_Mindmap.pdf
Poster:
http://groups.google.de/group/clean-code-developer


Buchtipp:

Entwicklung
Titel: Clean Code
Autor: Robert C. Martin
Verlag: mitp
Tipps für besseren Code

Geschrieben von Robert Bullinger

Veröffentlicht in #Methoden und Standards, #Softwareentwicklung, #Softwarequalität

Repost0
Um über die neuesten Artikel informiert zu werden, abonnieren:
Kommentiere diesen Post