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