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:Methode Zweck GET Abrufen einer Ressource
index (mehrere) / show (eine)POST Erstellen einer neuen Ressource PUT Aktualisieren einer bestehenden Ressource DELETE Lö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
indexMethode
(gleiche Daten, unterschiedliche Ausgabe:json,csv,xlsx,pdfetc.)
Für komplexe Exporte kann ein eigener Export Controller sinnvoll sein
Umsetzung mit zusätzlichem Request Parameter, z. B.&output=pdfEin PDF Export einer einzelnen Ressource gehört in die
showMethode
(gleiche Daten, unterschiedliche Ausgabe:json,pdf,Apple Walletetc.)
Sind alle Actions eines Controllers korrekt autorisiert
Laravel Authorization DocsWerden nur notwendige Felder durch Eloquent zurückgegeben
Datenschutz beachtenHaben alle Abfragen sinnvolle Standard Sortierungen
Die Default Sortierung nachidist 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 StyleguideKomponenten sollten so klein wie möglich sein
Jede Komponente hat idealerweise nur einen ZweckPrüfe regelmäßig, ob sich eine Komponente in kleinere, wiederverwendbare Komponenten aufteilen lässt
Verwende computed Getter und Setter statt
watch, wenn möglichSind 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
