Skip to content

Checkliste für guten und wiederverwendbaren Code

Generell

  • Hinterlasse deinen Code schöner, als du ihn vorgefunden hast
  • Begrenze Code Duplizierung auf ein Minimum
    Kopiere niemals große Teile eines Codes, sondern rufe ihn wiederverwendbar auf
  • Auskommentierter Code wird vor dem Einchecken entfernt
  • Sind alle implementierten Funktionen getestet oder wurden Tests geschrieben
  • Jede Funktion sollte nur eine Aufgabe haben und so kurz wie möglich sein
  • Wenn du einen Kommentar schreibst, frage dich, ob ein klarer Funktionsname den Kommentar ersetzen könnte
  • Frage dich bei jedem Code Teil
    👉 „Kann ich diesen Code mit den Kommentaren in sechs Monaten einem Teammitglied erklären, ohne mich neu einarbeiten zu müssen“

Laravel

  • Achte auf die REST Definition
    REST definiert folgende API Funktionen:

    MethodeZweck
    GETAbrufen einer Ressource
    index (mehrere) / show (eine)
    POSTErstellen einer neuen Ressource
    PUTAktualisieren einer bestehenden Ressource
    DELETELöschen einer Ressource
  • Andere Actions als diese Standard Methoden sind kritisch zu hinterfragen

  • Denke bei REST Schnittstellen in Daten, nicht in Ausgabeformaten

    Beispiele

    • Ein einfacher Export, der auf einem Listing basiert, gehört in die index Methode
      (gleiche Daten, unterschiedliche Ausgabe: json, csv, xlsx, pdf etc.)
      Für komplexe Exporte kann ein eigener Export Controller sinnvoll sein
      Umsetzung mit zusätzlichem Request Parameter, z. B. &output=pdf

    • Ein PDF Export einer einzelnen Ressource gehört in die show Methode
      (gleiche Daten, unterschiedliche Ausgabe: json, pdf, Apple Wallet etc.)

  • Sind alle Actions eines Controllers korrekt autorisiert
    Laravel Authorization Docs

  • Werden nur notwendige Felder durch Eloquent zurückgegeben
    Datenschutz beachten

  • Haben alle Abfragen sinnvolle Standard Sortierungen
    Die Default Sortierung nach id ist selten sinnvoll

Ressourcen

  • Lade nur notwendige Daten
  • Lade nur andere Ressourcen, niemals direkt die Relationship
    (sonst werden alle Daten eines Models zurückgegeben)
  • Verwende whenLoaded, wenn eine Resource von vielen Stellen aufgerufen wird, aber nicht überall Relationships benötigt
    Eloquent API Resources

⚠️ Achtung
Relationships in Resources können schnell ein n+1 Problem verursachen, besonders bei Collections

Weitere Infos und Referenzen

Vue

  • Beachte den offiziellen Vue.js Styleguide
    Vue Styleguide

  • Komponenten sollten so klein wie möglich sein
    Jede Komponente hat idealerweise nur einen Zweck

  • Prüfe regelmäßig, ob sich eine Komponente in kleinere, wiederverwendbare Komponenten aufteilen lässt

  • Verwende computed Getter und Setter statt watch, wenn möglich

  • Sind die Schnittstellen der Komponenten (Props und Events) aufgeräumt und klar

  • Gleiche Struktur und Benennung für ähnliche Komponenten

  • Eine wiederverwendbare Komponente funktioniert ohne weitere Abhängigkeiten
    Nur über Props, Events und Store
    Teste Komponenten an mehreren Stellen

Frage bei jedem watch, ob es nicht besser durch ein Event ersetzt werden kann.

Nuxt

  • Komponenten werden in der Regel großgeschrieben
  • Pages Komponenten werden kleingeschrieben