Seite 15 - Maxim Mironjuk
-
Maxim Mironjuk
-
April 22, 2026
Bis PHP 8.0 funktionierte der Spread-Operator in Array-Literalen nur mit numerischen Schlüsseln, assoziative Arrays mussten weiterhin über array_merge zusammengeführt werden. Seit PHP 8.1 unterstützt die Spread-Syntax auch String-Keys direkt. Wir zeigen den Unterschied zum klassischen Spread, das Kollisionsverhalten und wann sich der Umstieg von array_merge lohnt.
-
Maxim Mironjuk
-
April 22, 2026
Ein Shop kann jede automatisierte Prüfung mit voller Punktzahl bestehen und trotzdem für Screenreader-Nutzende, Menschen mit motorischen Einschränkungen oder Menschen mit kognitiven Beeinträchtigungen faktisch unbenutzbar bleiben, weil Werkzeuge wie axe-core oder Lighthouse nur technische Regelverstöße erkennen, nicht aber die tatsächliche Erfahrung beim Ausführen einer Aufgabe. User-Testing mit echten Menschen mit Behinderungen deckt genau diese Lücke auf, von der Rekrutierung einer diversen Testgruppe über den passenden Testaufbau bis zur Priorisierung der gewonnenen Erkenntnisse im Entwicklungsalltag.
-
Maxim Mironjuk
-
April 22, 2026
Der Zeichensatz utf8 in MySQL ist eine historische Falle, die maximal drei Byte pro Zeichen erlaubt und damit Emoji sowie viele seltene Schriftzeichen stillschweigend verwirft oder Fehler wirft. utf8mb4 bildet echtes Unicode vollständig ab, verlangt aber die richtige Collation-Wahl und eine sauber geplante Migration, um Indexlängen und Sortierreihenfolgen nicht zu brechen.
-
Maxim Mironjuk
-
April 22, 2026
Wer für jede Variante eines TypeScript Interfaces manuell ein neues Interface pflegt, erzeugt über kurz oder lang Typdrift zwischen Original und Kopie. Mapped Types transformieren bestehende Typen systematisch mit der Syntax K in keyof T, setzen und entfernen readonly und optionale Modifikatoren gezielt und benennen Schlüssel mit as um, ganz ohne Duplizierung.
-
Maxim Mironjuk
-
April 22, 2026
PHP-Security ist mehr als eine einzelne Funktion oder ein Framework-Feature, sie umfasst Input-Validierung, Output-Encoding, Session-Härtung, Secrets-Management, CSRF-Schutz, Security-Header, saubere Fehlerbehandlung und Dependency-Sicherheit als zusammenhängendes System. Dieser Beitrag gibt den vollständigen Überblick über die Security Best Practices, die jede produktive PHP-Anwendung unabhängig vom eingesetzten Framework braucht.
-
Maxim Mironjuk
-
April 22, 2026
Jeder Linux-Prozess besitzt eine eindeutige PID und verweist über seine PPID auf seinen Elternprozess, wodurch ein nachvollziehbarer Baum aus Eltern- und Kind-Prozessen entsteht. Dieser Artikel zeigt, wie man diesen Baum mit ps und pstree liest, warum verwaiste Prozesse zu PID 1 wandern und wie man in der Praxis einen hängenden PHP-FPM-Worker gezielt aufspürt und beendet.
-
Maxim Mironjuk
-
April 22, 2026
Sobald ein
Magento-Shop auf mehrere Applikationsserver skaliert und Cron-Jobs auf jedem dieser Server laufen, kann derselbe Indexer theoretisch gleichzeitig von zwei Prozessen angestossen werden. Magentos eingebautes, datenbankbasiertes Locking verhindert das innerhalb einer einzelnen MySQL-Instanz zuverlässig, stößt aber an praktische Grenzen, sobald Koordination über mehrere unabhängige Cron-Worker mit eigener Prozessverwaltung hinweg nötig ist, etwa bei containerisierten Deployments mit mehreren gleichwertigen Worker-Pods. Redis bietet sich als schnelle, bereits vorhandene Infrastrukturkomponente an, um verteilte Locks nach dem Prinzip des Redlock-Algorithmus umzusetzen und damit Indexer-Kollisionen zuverlässig zu vermeiden.
-
Maxim Mironjuk
-
April 22, 2026
REST-Endpunkte zu ersetzen ist nicht das Ziel von GraphQL – das Ziel ist, genau die Daten zu laden, die eine Komponente braucht, und sie im richtigen Moment zu cachen. Wer Vue GraphQL ohne Cache-Strategie betreibt, lädt dieselben Daten mehrfach und verliert den größten Vorteil des Ansatzes.
-
Maxim Mironjuk
-
April 22, 2026
Optimistic Locking loest gleichzeitige Schreibzugriffe ohne Datenbank-Sperren, indem jede Zeile eine Versionsspalte traegt und ein UPDATE nur dann erfolgreich ist, wenn die Version beim Schreiben noch mit der beim Lesen gesehenen Version uebereinstimmt. Weicht die Anzahl betroffener Zeilen von eins ab, hat eine andere Transaktion zwischenzeitlich geschrieben, und die Anwendung muss den Konflikt gezielt behandeln.
-
Maxim Mironjuk
-
April 21, 2026
Die Wahl des Primaerschluessels ist eine der folgenreichsten Entscheidungen beim Tabellenentwurf: ein fachlicher Natural Key wie eine E-Mail-Adresse oder eine Produkt-SKU traegt Bedeutung, ein kuenstlicher Surrogate Key wie ein Auto-Increment-Wert oder eine UUID ist stabil und bedeutungslos. Dieser Beitrag vergleicht beide Strategien konkret, zeigt zusammengesetzte Schluessel als dritte Option und liefert einen praktischen Entscheidungsleitfaden.
-