Code, den du sofort einsetzen kannst
Praktische Code-Snippets aus meiner täglichen Arbeit — kopieren, verstehen, einsetzen.
companion object in Kotlin – der saubere Weg zu „statischen" Membern
Kotlin kennt kein `static` wie Java. Für Konstanten, Fabrik-Methoden und Co. gibt es das companion object. Ich zeige, wofür ich es nutze – und den Factory-Trick, mit dem der Konstruktor privat bleibt.
inline und reified in Kotlin – den Typ zur Laufzeit behalten
Generische Typen sind in Kotlin zur Laufzeit normalerweise „weg" (Type Erasure). Mit einer inline-Funktion und reified holst du den Typ zurück – und schreibst so knappe Helfer wie fromJson<User>() ohne Class-Parameter.
JSON im Terminal verarbeiten mit jq
APIs antworten mit JSON – und dann? Mit jq filterst, formatierst und transformierst du JSON direkt im Terminal, ganz ohne Wegwerf-Skript. Ich zeige dir die Handvoll jq-Ausdrücke, die ich beim Debuggen von APIs jeden Tag brauche.
SQL-JOINs verständlich – INNER JOIN vs. LEFT JOIN
Zwei Tabellen zusammenführen ist Alltag – und die häufigste Fehlerquelle ist der falsche JOIN-Typ. Ich erkläre dir INNER JOIN und LEFT JOIN an einem konkreten Beispiel und warum ein LEFT JOIN dir Zeilen „verstecken" kann, wenn du im WHERE nicht aufpasst.
Modale Dialoge ohne Framework – das native <dialog>-Element
Für ein Modal brauchst du kein Bibliotheks-Ballast und keine z-index-Schlacht. Das HTML-Element <dialog> bringt Overlay, Fokus-Falle und Schließen mit Escape von Haus aus mit. Ich zeige dir showModal(), ::backdrop und das saubere Schließen.
rememberCoroutineScope – Coroutinen aus einem Klick in Jetpack Compose starten
LaunchedEffect ist super für Effekte beim Zusammenbau der UI – aber wie startest du eine Coroutine, wenn der Nutzer auf einen Button tippt? Dafür gibt es rememberCoroutineScope. Ich zeige den Unterschied und ein typisches Snackbar-Beispiel.
data class in Kotlin – copy(), Destrukturierung und warum ich sie ständig nutze
Ein `data class` ist mehr als ein Container für Felder. Du bekommst equals(), hashCode(), toString(), copy() und Destrukturierung geschenkt – und arbeitest damit sauber mit unveränderlichen Objekten. Ich zeige dir die Teile, die im Alltag wirklich zählen.
?? und ?-> in PHP – null-Werte elegant abfangen
Endlose isset()-Prüfungen? Mit dem Null-Koaleszenz-Operator ?? und dem Nullsafe-Operator ?-> greifst du sicher auf womöglich fehlende Werte zu – oft in einer einzigen Zeile.
Das match-Ausdruck in PHP 8 – switch, nur besser
match ist wie switch, aber ein Ausdruck mit Rückgabewert, striktem Vergleich und ohne break-Fallen. Für Zuordnungen ist es kürzer, sicherer und besser lesbar.
Eingaben validieren mit filter_var – E-Mail, URL und Zahlen
Nie blind einer Nutzereingabe vertrauen. filter_var prüft E-Mail-Adressen, URLs und Zahlen mit eingebauten Filtern – zuverlässiger und lesbarer als selbstgebaute Regex.
Enums in PHP 8.1 – feste Werte typsicher modellieren
Status als "offen"/"bezahlt"-Strings sind fehleranfällig – ein Tippfehler fällt erst zur Laufzeit auf. PHP-8.1-Enums geben dir feste, typsichere Werte mit Methoden, und die IDE meckert sofort.
Mit Datum rechnen in PHP – DateTimeImmutable
„In 14 Tagen" oder „wie viele Tage bis zur Frist?" – mit DateTimeImmutable rechnest du sicher mit Datum und Zeit, ohne dass sich ein Objekt heimlich unter der Hand ändert.