Seite 121 - Maxim Mironjuk
-
Maxim Mironjuk
-
November 23, 2025
Wer keine Maus benutzt, verlässt sich vollständig auf eine funktionierende Tastaturnavigation. Skip-Links, eine logische Fokus-Reihenfolge und ein sauberer Focus-Trap in Modals entscheiden darüber, ob eine
Tailwind CSS Anwendung für Tastaturnutzer bedienbar oder unbenutzbar ist.
-
Maxim Mironjuk
-
November 23, 2025
Klassenkonstanten und magische Strings sind seit PHP 8.1 kein notwendiges Übel mehr. PHP Enums bringen echte Typsicherheit für endliche Wertemengen: Pure Enums für rein interne Zustände, Backed Enums für Persistenz und API-Kompatibilität, dazu Methoden, Interfaces und sichere Konvertierung mit from() und tryFrom().
-
Maxim Mironjuk
-
November 23, 2025
Ein Datum als String zu übertragen sieht harmlos aus, bis zwei Clients unterschiedliche Formate erwarten und das Backend Validierung doppelt implementieren muss. Custom Scalars verlagern Format und Validierung in einen einzigen, wiederverwendbaren Typ im Schema, mit klaren Regeln für Serialisierung, Eingabe-Parsing und Fehlerfälle.
-
Maxim Mironjuk
-
November 23, 2025
Wenn DQL an seine Grenzen stößt, weil eine native SQL-Funktion wie JSON_EXTRACT oder MATCH AGAINST fehlt, ist eine eigene DQL-Funktion oft die sauberere Lösung als der komplette Ausweich auf native Queries. Die FunctionNode-API von Doctrine macht genau das möglich.
-
Maxim Mironjuk
-
November 23, 2025
Kleinere Teams ohne dediziertes FinOps-Team lassen erhebliches Einsparpotenzial ungenutzt, einfach weil niemand Zeit hat, monatliche Kostenexporte im Detail durchzugehen. Claude hilft, AWS- und GCP-Kostenexporte auf ungenutzte Ressourcen und Fehlkonfigurationen zu durchsuchen und Reserved-Instance- gegen Spot-Strategien durchzudenken, ersetzt aber kein echtes FinOps-Tool, sondern liefert einen fundierten Startpunkt für die eigentliche Analyse.
-
Maxim Mironjuk
-
November 22, 2025
Was steckt wirklich hinter innodb_buffer_pool_size, Redo Log Kapazität und Flush-Verhalten? Ein praxisnaher Guide für
Magento-Entwickler ohne Halbwissen.
-
Maxim Mironjuk
-
November 22, 2025
Ein Fehlercode als Zahl oder ein einzelnes Boolean fuer den Fehlerfall verschweigt dem Compiler, welche Fehlerarten tatsaechlich existieren. Discriminated Unions machen jede moegliche Fehlervariante als eigenen, benannten Typ sichtbar und erzwingen ueber Exhaustiveness Checking, dass keine davon im Code vergessen wird.
-
Maxim Mironjuk
-
November 22, 2025
Eine Live-Suche über tausende Einträge muss auf jeden Tastendruck reagieren, ohne die Seite auszubremsen. Mit x-model.debounce, einer effizienten Filterfunktion und Treffer-Highlighting entsteht mit
Alpine.js eine schnelle, reaktive Suche, die auch bei sehr großen Listen flüssig bleibt.
-
Maxim Mironjuk
-
November 22, 2025
Wer mehrere
Magento Stores für verschiedene Kunden oder Marken betreibt, steht vor der Frage, ob jeder Shop einen eigenen Compose Stack braucht oder ob ein gemeinsamer Stack mit klar getrennten Netzwerken, Datenbank-Schemas und Caches genügt. Dieser Artikel zeigt, wie ein einziger Docker Compose Stack mehrere Magento Stores zuverlässig isoliert, ohne dass Ressourcen mehrfach vorgehalten werden müssen.
-
Maxim Mironjuk
-
November 22, 2025
Eine abstrakte Klasse und ein Interface lösen auf den ersten Blick ein ähnliches Problem, nämlich einen Vertrag festzulegen, dem konkrete Klassen folgen müssen. Der entscheidende Unterschied liegt darin, was jede der beiden Konstruktionen tatsächlich mitbringt: Ein Interface ist ein reiner Vertrag ohne jede Implementierung, eine abstrakte Klasse dagegen kann Konstruktoren, geteilten Zustand und konkrete Methoden enthalten, die alle Unterklassen automatisch erben. Dieser Beitrag zeigt an einem durchgehenden Report-Generator-Beispiel, wann welches Werkzeug die richtige Wahl ist, warum die Single-Inheritance-Beschränkung von PHP diese Entscheidung entscheidend prägt und wie beide Konzepte in einer einzigen Klassenhierarchie sauber zusammenspielen.
-