Seite 4 - Monthly Archives: April 2026
-
Maxim Mironjuk
-
April 27, 2026
Wer für Dev, Test und CI drei separate Compose-Dateien pflegt, schreibt Konfiguration dreifach und vergisst regelmäßig, Änderungen zu synchronisieren. Docker Compose Profiles lösen dieses Problem: Services werden nur dann gestartet, wenn das passende Profil aktiv ist – eine Datei, alle Umgebungen.
-
Maxim Mironjuk
-
April 27, 2026
Wer Produktionsserver direkt aus GitLab-Runnern erreichbar macht, baut Angriffsfläche auf. SSH-Bastion-Server, Jump Hosts und dedizierte Deployment-User trennen Zugriffspfade sauber und machen Deployment-Verbindungen auditierbar, widerrufbar und ohne Personal-SSH-Keys umsetzbar.
-
Maxim Mironjuk
-
April 26, 2026
CSS konnte über Jahrzehnte kein Eltern-Element anhand des Zustands eines seiner Kinder auswählen. Der :has()-Selektor schließt genau diese Lücke und macht Formular-Wrapper, Fieldsets und ganze Formularabschnitte reaktiv auf :invalid, :user-invalid und :checked, komplett ohne eine einzige Zeile JavaScript.
-
Maxim Mironjuk
-
April 26, 2026
Verschachtelte Grid-Elemente an den Tracks des Eltern-Grids ausrichten — ohne JavaScript, ohne Workarounds. CSS Grid Subgrid löst das jahrelang offene Ausrichtungsproblem in Karten-Layouts, Formularen und Multi-Column-Designs auf elegante, deklarative Weise.
-
Maxim Mironjuk
-
April 26, 2026
Eine produktionsreife Symfony REST API entsteht nicht durch das Zusammenstecken einzelner Komponenten – sie erfordert eine klare Architektur, die alle Teile konsistent verbindet: Request-Deserialisierung, Validierung, Business-Logik, Response-Serialisierung und einheitliches Error Handling. Dieser Guide zeigt den vollständigen Aufbau mit Symfony 7 und PHP 8.4.
-
Maxim Mironjuk
-
April 25, 2026
Eine gute Commit-Message erklärt, warum eine Änderung nötig war, nicht nur was sich im Code verändert hat, denn das zeigt der Diff ohnehin. Mit der 50/72-Regel, dem Imperativ in der Betreffzeile, sauberen Trailern für Ticket-Referenzen und optional Conventional Commits wird aus der Git-Historie ein durchsuchbares Archiv, das Debugging und Code-Archäologie Monate später erheblich beschleunigt.
-
Maxim Mironjuk
-
April 25, 2026
Nitro, der Server-Engine hinter Nuxt 3, bringt mit unstorage eine einheitliche Key-Value-Schnittstelle mit, die sich wahlweise auf Redis, das lokale Dateisystem, Cloudflare KV oder einfachen Arbeitsspeicher stützen kann, ohne dass der Anwendungscode etwas von der konkreten Anbindung wissen muss. Wer serverseitige API-Antworten zwischenspeichern will, kommt damit ohne eine zusätzliche Cache-Bibliothek aus und tauscht den Storage-Treiber je nach Umgebung einfach in der Konfiguration aus.
-
Maxim Mironjuk
-
April 25, 2026
Ein unbedachter git reset --hard oder ein missglückter Rebase fühlt sich nach einem endgültigen Verlust an, ist es aber selten. Das Reflog protokolliert lokal jede Bewegung von HEAD und macht verschwundene Commits meist innerhalb weniger Minuten wieder auffindbar. Dieser Artikel zeigt, wie das Reflog funktioniert, wie lange Einträge erhalten bleiben und wie eine saubere Recovery in der Praxis abläuft.
-
Maxim Mironjuk
-
April 25, 2026
Wer Arrays in JavaScript nach Kriterien gruppieren wollte, griff lange zu Lodash, Underscore oder einer verschachtelten reduce()-Kette. Mit Object.groupBy und Map.groupBy bringt ES2024 endlich eine native, lesbare Lösung direkt in die Sprache – mit einem klaren Unterschied zwischen beiden, der in der Praxis oft übersehen wird.
-
Maxim Mironjuk
-
April 25, 2026
Eine Content Security Policy ist der wirksamste einzelne HTTP Header gegen Cross Site Scripting, wird aber in den meisten Projekten entweder gar nicht oder mit einer viel zu großzügigen Whitelist eingesetzt. Dieser Artikel zeigt, wie eine Content Security Policy von der ersten Direktive über Nonces und Hashes bis zum harten Enforcement Modus entsteht, ohne dass Inline Skripte oder Drittanbieter Tools plötzlich blockiert werden.
-