Clean Code

 A path to Agile Software Craftsmanship

Manifesto for Agile Software Development

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Manifesto for Software Craftsmanship

  • Not only working software, but also well-crafted software
  • Not only responding to change, but also steadily adding value
  • Not only individuals and interactions, but also a community of professionals
  • Not only customer collaboration, but also productive partnerships

Praktiken

  • DRY
  • KISS
  • Careful about Premature Optimization
    • Premature optimization is the root of all evil -- DonaldKnuth
  • Favor composition over inheritance

Prinzipien

  • Boyscout Rule
  • Ursachenanalyse
  • VCS
  • Refactoring
    • Extract Method
    • Rename
  • Täglich reflektieren

Roter Grad

Praktiken

  • Single Level of Abstraction (SLA)
  • Single Responsibility Principle (SRP)
  • Seperation of Concerns (SoC)
  • Code Conventions

Prinzipien

  • Issue Tracking
  • Automatisierte Integrationstests
  • Reviews
  • Lesen Lesen Lesen

Orangener Grad

Praktiken

  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)
  • Liskov Substitution Principle (LSP)
  • Prinzip der geringsten Überraschung
  • Information Hiding

Prinzipien

  • Automatisierte Unit-Tests
  • Mocking/Stubbing
  • Code-Coverage
  • Komplexe Refaktorisierung
  • Teilnahme an Fachveranstaltungen

Gelber Grad

Praktiken

  • Open Closed Principle (OCP)
  • Tell, don't ask
  • Law of Demeter

Prinzipien

  • Continous Integration
  • Statische Codeanalyse
  • Inversion of Control Container
  • Messen von Fehlern
  • Erfahrung weitergeben

Grüner Grad

Praktiken

  • Entwurf und Implementierung überlappen nicht
  • Implementierung spiegelt Entwurf
  • YAGNI

Prinzipien

  • Continous Delivery
  • Iterative Entwicklung
  • Komponentenorientierung
  • Test first
    • TDD

Blauer Grad

Andere Resourcen

  • http://clean-code-developer.de/
  • https://www.softwerkskammer.org/

Clean Code

By Kevin Wittek