Clean Code

Beschreibung:

Clean Code bedeutet das jeder im Team den Code leicht verstehen kann, d.h. lessbar, wartbar, erweiterbar und veränderbar ist.

Allgemein:

  • Standards verwenden
    • Coding-, architecture- and design guidelines.
  • ​Keep it Simple, Stupid (KISS)
    • Einfach ist immer besser, Komplexität reduzieren/vermeiden.
  • Boy Scout Rule
    • Verlasse den Code besser als du ihn vorgefunden hast.
  • Fehler-Ursachen-Analyse (Root Cause Analysis)
    • Nach der Wurzel des Übels suchen.

Namen:

  • Beschreibende bzw. eindeutige Namen
    • Sollten präzise sein und den Sinn/Inhalt wiederspiegeln.
  • Methoden-Namen
    • Sollten beschreiben was sie tun aber nicht wie es getan wird.
  • Guidelines
    • An Standards orientieren z.b. von Microsoft

Methoden:

  • Eine Sache tun
    • Unterschiedliche Funktionen auf seperate Methoden verteilen.
  • Ebene der Implemetierung beachten
    • Methoden der entsprechenden Objekte verwenden.
  • Zu viele Parameter vermeiden
    • Daten in einer seperaten "class" oder "struct" speichern.
  • Keine Flag/Switch Parameter verwenden
    • Z.b. bool flag, seperate Methoden ohne Parameter anbieten.
  • Unnötige "static" vermeiden

Klassen:

  • Single Responsibility Principle
    • Es sollte nur einen einzigen Grund geben eine Klasse zu ändern.
  • Open Closed Principle
    • Das Verhalten einer Klasse sollte erweiterbar sein ohne bestehendes Verhalten ändern zu müssen.
  • Liskov Substitution Principle
    • Abgeleitete Klassen sollten das Basisverhalten nicht verändern.
  • Dependency Inversion Principle
    • Klassen sollten von Abstraktionen(Interface) abhängen, und nicht von Details(Implementierung).
  • Interface Segregation Principle
    • Spezielle und detaillierte Interfaces für "Clients" bereitstellen.
  • Größe beachten
    • Klassen sollten klein sein, wenn nicht dann tut Sie evtl. zu viel.