Seite 5 - Monthly Archives: February 2026
-
Maxim Mironjuk
-
Februar 22, 2026
PARTITION BY ist der Baustein in der OVER-Klausel, der aus einer globalen Berechnung eine gruppierte macht, ohne dass dabei Zeilen verschwinden. Dieser Artikel zeigt anhand echter Reporting-Beispiele, wie Ein-Spalten- und Mehr-Spalten-Partitionierung funktionieren, wie PARTITION BY mit ORDER BY zusammenspielt und wo typische Fehler bei der Anwendung lauern.
-
Maxim Mironjuk
-
Februar 22, 2026
Mehrere Plugins auf derselben Methode haengen still von der sortOrder in di.xml ab. Ein Test, der die tatsaechliche Ausfuehrungsreihenfolge dokumentiert, verhindert, dass ein neues Plugin unbemerkt eine bestehende Reihenfolge und damit das Verhalten kippt.
-
Maxim Mironjuk
-
Februar 22, 2026
Die meisten Testverfahren prüfen, ob ein System unter erwarteten, sauberen Bedingungen korrekt funktioniert, während Chaos Engineering den umgekehrten Weg geht und gezielt, kontrolliert Fehler in ein laufendes System einbringt, etwa den Ausfall eines Services, erhöhte Netzwerklatenz oder den Verlust einer Datenbankverbindung, um zu beobachten, wie widerstandsfähig das Gesamtsystem tatsächlich auf diese Störung reagiert. Diese Disziplin geht davon aus, dass komplexe, verteilte Systeme früher oder später ohnehin ausfallen werden, und macht daraus die bewusste Entscheidung, diesen Ausfall lieber kontrolliert und zu einem selbst gewählten Zeitpunkt zu erleben als unkontrolliert mitten in der Nacht wegen eines echten Vorfalls.
-
Maxim Mironjuk
-
Februar 22, 2026
Wer ein eigenes Hyvä-Theme von Grund auf aufsetzt, statt das Hyvä Default Theme als Parent zu erben, gewinnt volle Kontrolle über jede Zeile Markup und Tailwind-Klasse, verzichtet aber auf Fallback-Templates, die sonst automatisch einspringen.
-
Maxim Mironjuk
-
Februar 22, 2026
void bedeutet, eine Funktion liefert keinen sinnvollen Rückgabewert, kehrt aber trotzdem normal zurück. never bedeutet etwas fundamental anderes: Die Funktion kehrt überhaupt nicht zurück, sie wirft immer eine Exception oder beendet das Skript. Seit PHP 8.1 lässt sich dieser Unterschied direkt in der Signatur ausdrücken.
-
Maxim Mironjuk
-
Februar 22, 2026
Ein Datenbank-Passwort in einer .env-Datei oder einer Pipeline-Variable ist ein Secret, das irgendwann in einem Log, einem Backup oder einer History-Datei landet. Vault-Secrets, die Bash-Skripte zur Laufzeit gezielt abrufen, prüfen und danach nirgendwo persistieren, schließen genau diese Lücke, inklusive dynamischer Datenbank-Credentials und automatischer Rotation.
-
Maxim Mironjuk
-
Februar 22, 2026
Manche Tests lassen sich nur sauber schreiben, wenn PHPUnit sie in einem komplett neuen PHP-Prozess ausfuehrt: etwa wenn Legacy-Code Konstanten definiert, die nicht neu gesetzt werden koennen, oder wenn statische Zustaende so tief verwoben sind, dass ein Reset in tearDown nicht ausreicht. @runInSeparateProcess loest dieses Problem zuverlaessig, aber nicht kostenlos: Jeder isolierte Test startet einen eigenen PHP-Interpreter, was die Laufzeit einer Suite spuerbar in die Hoehe treiben kann, wenn man es zu grosszuegig einsetzt.
-
Maxim Mironjuk
-
Februar 22, 2026
Ein Schema mit drei verschiedenen Stilen für dieselbe Sache kostet jedes Team Zeit, Nerven und Vertrauen in die API. Klare GraphQL Naming Conventions für Typen, Felder, Mutations und Enums machen ein Schema selbsterklärend und lassen sich mit Style Guide und Linting dauerhaft im Team verankern.
-
Maxim Mironjuk
-
Februar 22, 2026
Wer Cronjobs und Worker-Prozesse unüberlegt in bestehende Docker-Container wirft, kämpft früher oder später mit PID-1-Zombies, verlorenen Signals und unkontrollierten Neustarts. Dedizierte Container, Supervisor und sauberes Signal-Handling ersetzen fragile Setups durch nachvollziehbare, produktionstaugliche Hintergrundprozesse.
-
Maxim Mironjuk
-
Februar 22, 2026
Bei REST-APIs verlassen sich viele Teams auf simple Content-Type-Prüfungen oder auf die Annahme, dass Cross-Site-Requests ohnehin nur GET-Anfragen betreffen. GraphQL bündelt Queries und Mutations hinter einem einzigen POST-Endpunkt und macht diese Annahmen wertlos. Wer eine GraphQL-API mit Cookie-basierten Sessions betreibt, braucht einen expliziten CSRF-Schutz, der die Besonderheiten des einzelnen Endpunkts berücksichtigt.
-