Seite 108 - Mironsoft Blog
-
Maxim Mironjuk
-
Dezember 11, 2025
Die Alpine.js Bundle Größe wirkt auf den ersten Blick unbedeutend klein, doch sobald Plugins, die CSP Build Variante und mehrere Komponenten Bibliotheken zusammenkommen, entscheidet die genaue Zusammensetzung über spürbare Unterschiede bei Ladezeit und Time to Interactive. Wer die Kilobyte Werte und die CSP Tradeoffs kennt, trifft bewusste statt zufällige Entscheidungen beim Bundle Aufbau.
-
Maxim Mironjuk
-
Dezember 11, 2025
Eine mobile Navigation, die nur ein- und ausblendet, reicht nicht: Ohne Zustandsmodell für verschachtelte Kategorien, ohne Fokus-Trap und ohne Scroll-Lock wird das Off-Canvas-Menü für Tastatur- und Screenreader-Nutzer schnell zur Sackgasse. Dieser Beitrag zeigt, wie die mobile Navigation in einem Hyvä-Theme als eigenständige Alpine-Komponente entsteht - mit Zustands-Stack für Kategorieebenen, x-transition für das Slide-in-Panel, Fokus-Trap, ARIA-Attributen und performanter CSS-Transform-Animation statt Layout-Thrashing.
-
Maxim Mironjuk
-
Dezember 11, 2025
Playwright testet Vue-Anwendungen als Ganzes im echten Browser, mit Auto-Waiting statt fester Timeouts, mit Netzwerk-Interception statt echtem Backend und mit paralleler Ausführung über mehrere Browser-Engines hinweg. Das macht End-to-End-Tests planbar statt zur Quelle ständiger CI-Flakiness.
-
Maxim Mironjuk
-
Dezember 11, 2025
Die meisten Webanwendungen lesen deutlich häufiger aus der Datenbank, als sie schreiben, wodurch der Primary-Server oft zum Flaschenhals wird, obwohl Schreibzugriffe nur einen kleinen Teil der Last ausmachen. Read-Replicas verteilen Lesezugriffe auf zusätzliche Server-Kopien und entlasten so den Primary spürbar.
-
Maxim Mironjuk
-
Dezember 11, 2025
Eine Komponente, die Custom Properties nur zufällig statt bewusst exportiert, erzeugt eine unsichtbare Kopplung zwischen Konsumenten und internen Implementierungsdetails. Wer Custom Properties dagegen wie eine echte API behandelt, mit klarem Namensraum, dokumentierten Fallbacks und Versionsstabilität, macht Design Systeme über Teamgrenzen hinweg sicher erweiterbar.
-
Maxim Mironjuk
-
Dezember 11, 2025
Wenn die Pipeline nicht schnell genug ist, greifen Teams auf manuelle Deployments zurück. Das ist akzeptabel – aber nur, wenn dabei eine vollständige Dokumentation entsteht, ein Rollback-Pfad vorbereitet ist und der Hotfix danach sauber in den Normalprozess übertragen wird.
-
Maxim Mironjuk
-
Dezember 10, 2025
Wer jeden Collaborator blind als Mock behandelt, verliert die semantische Aussagekraft seiner Tests. Stub, Fake, Spy, Mock und Dummy haben klar definierte Rollen – und wer diese Rollen verwechselt, schreibt Tests, die Fehler verbergen statt aufzudecken.
-
Maxim Mironjuk
-
Dezember 10, 2025
Gap Locks gehören zu den am wenigsten verstandenen Mechanismen von InnoDB und lösen in der Praxis regelmäßig überraschende Lock Waits aus, ohne dass eine konkrete Zeile betroffen zu sein scheint. Dieser Artikel erklärt, was Gap Locks konkret sind, warum InnoDB sie unter REPEATABLE READ zur Vermeidung von Phantom Reads braucht, und wie Next-Key Locks als Kombination aus Record Lock und Gap Lock funktionieren.
-
Maxim Mironjuk
-
Dezember 10, 2025
OFFSET-basierte Pagination wird mit jeder weiteren Seite langsamer, weil die Datenbank alle uebersprungenen Zeilen trotzdem lesen und verwerfen muss. Keyset-Pagination, auch Cursor-Pagination genannt, ersetzt den Seitenzaehler durch einen Vergleich mit dem letzten gesehenen Wert und liefert dadurch konstante Antwortzeiten, unabhaengig davon, wie tief man in die Ergebnismenge blaettert.
-
Maxim Mironjuk
-
Dezember 10, 2025
Ein eigener Query Builder ersetzt fragile String-Konkatenation durch ein Objekt, das SQL-Ausdrücke schrittweise, typsicher und testbar zusammensetzt. Wer versteht, wie ein Query Builder intern funktioniert, kann fertige Lösungen wie Doctrine oder Laravels Eloquent gezielter einsetzen und weiß, wo Eigenbau tatsächlich sinnvoll ist.
-