Guard Clauses: Weniger Verschachtelung, klarere Logik
Die Idee: Prüfe Ausnahmefälle zuerst und verlasse die Funktion sofort. So bleibt alles sauber.
// ❌ Tief verschachtelt
function createInvoice(?User $user, array $items) {
if ($user) {
if ($user->isActive()) {
if ($items) {
return Invoice::fromItems($user, $items);
}
}
}
return null;
}
// ✅ Guard Clauses
function createInvoice(?User $user, array $items) {
if (!$user) {
return null;
}
if (!$user->isActive()) {
return null;
}
if (!$items) {
return null;
}
return Invoice::fromItems($user, $items);
}
Vorteil: Weniger Einrückung, schneller erfassbar, leichter zu testen.