Seite 15 - Maxim Mironjuk
-
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.
-
Maxim Mironjuk
-
April 21, 2026
Eine CLAUDE.md ist die zentrale Kontextdatei, mit der Claude Code Projektkonventionen, Tech-Stack und Befehle kennt, bevor der erste Prompt geschrieben wird. Richtig gepflegt spart sie wiederholte Erklärungen und verhindert Regelverstöße. Falsch gepflegt wird sie zur veralteten Textwüste, die niemand mehr liest und die Claude aktiv in die Irre führt.
-
Maxim Mironjuk
-
April 21, 2026
line-clamp begrenzt Textblöcke auf eine feste Zeilenanzahl und ersetzt überschüssigen Inhalt durch eine Ellipsis, ganz ohne JavaScript-Messung der Textbreite. Für Karten, Produktlisten und Vorschau-Snippets ist das der zuverlässigste Weg, konsistente Layouts zu bauen, solange Fallbacks und Zugänglichkeit von Anfang an mitgedacht werden.
-