Seite 350 - Mironsoft Blog
-
Maxim Mironjuk
-
Januar 18, 2025
Ein isolierter Observer-Test ruft die Observer-Klasse direkt auf und prueft nie, ob das Event ueberhaupt in events.xml korrekt verdrahtet ist. Ein end-to-end Test ueber den echten Event-Dispatch deckt genau diese Luecke ab.
-
Maxim Mironjuk
-
Januar 18, 2025
Wenn eine PHP-Anwendung an eine harte Rechenleistungsgrenze stößt, führte der klassische Weg früher immer über eine eigene C-Erweiterung mit eigenem Build-Prozess. FFI erlaubt es, bestehende native Bibliotheken direkt aus PHP-Code heraus anzusprechen, ganz ohne Compiler-Toolchain im Deployment, und macht damit performancekritischen Code für viel mehr Projekte praktikabel als früher.
-
Maxim Mironjuk
-
Januar 18, 2025
Der Symfony Profiler ist mehr als die Debug-Leiste am Seitenrand. Er zeigt präzise, welche Datenbankabfragen eine Seite ausbremsen, wo Event-Listener übermäßig viel Zeit verbrauchen, welche Caches nicht greifen und wie viel Memory ein Request verbraucht – alles auf Knopfdruck, ohne einen einzigen Code-Änderung.
-
Maxim Mironjuk
-
Januar 18, 2025
Formulare sind der kritischste Berührungspunkt jeder Website für Menschen mit Screenreadern, denn ohne korrekte label-Zuordnung, sinnvolle fieldset- und legend-Gruppierung und eindeutig kommunizierte Pflichtfelder bleibt ein Checkout schlicht unbedienbar. Dieser Artikel zeigt anhand eines praktischen Adressformulars, wie Magento- und Hyvä-Entwickler Formulare semantisch korrekt aufbauen, Fehler barrierefrei kommunizieren und WCAG-konforme Eingabehilfen umsetzen.
-
Maxim Mironjuk
-
Januar 18, 2025
Composer und npm neu von null zu starten kostet in jedem Build Minuten. Die gute Nachricht: beide Package-Manager haben robuste lokale Caches, die zwischen Docker-Builds persistent gehalten werden können, ohne die Image-Größe zu erhöhen. Der Schlüssel liegt in der richtigen Trennung von Lock-File-Layer, Vendor-Layer und Cache-Mount — und in dem Verständnis, wann welcher Cache-Typ der richtige ist.
-
Maxim Mironjuk
-
Januar 18, 2025
Wer ein eigenes Dropdown oder eine Combobox baut statt ein natives HTML-Element zu nutzen, übernimmt die volle Verantwortung für Tastaturbedienung, Fokus und Screenreader-Ankündigung. Dieser Artikel zeigt Schritt für Schritt, wie ein barrierefreies Custom Widget nach den WAI-ARIA Authoring Practices entsteht, mit korrektem role, aria-expanded, aria-activedescendant und echten Tests mit einem Screenreader vor dem Release.
-
Maxim Mironjuk
-
Januar 18, 2025
Lange Listen mit Nachladen beim Scrollen sind eine der häufigsten UI-Anforderungen, aber naive Implementierungen scheitern regelmäßig an Duplikaten, Speicherverbrauch und inkonsistenter Scroll-Position. TanStack Querys Infinite Query löst diese Probleme mit einer klaren Seiten-Struktur, cursorbasierter Navigation und lässt sich mit Virtualisierung kombinieren, um auch zehntausende Einträge flüssig darzustellen.
-
Maxim Mironjuk
-
Januar 18, 2025
Handgeschriebene Type Guards mit manuellen typeof- und in-Prüfungen driften bei jeder Änderung am zugrunde liegenden Typ leicht auseinander und werden in größeren Codebasen zur Fehlerquelle. Dieser Artikel zeigt, wie sich Runtime Type Guards automatisch aus Zod-Schemas ableiten lassen, mit einer generischen Guard-Factory, Discriminated-Union-Guards und einer klaren Trennung zwischen Type Predicate und Assertion Function.
-
Maxim Mironjuk
-
Januar 18, 2025
Approval Rules sorgen dafuer, dass Code-Reviews nicht vom guten Willen einzelner Entwickler abhaengen, sondern technisch erzwungen werden, mit CODEOWNERS-Integration, Mindestanzahl an Freigaben und klaren Regeln fuer Ausnahmen.
-
Maxim Mironjuk
-
Januar 18, 2025
Das ursprüngliche GraphQL Playground von Prisma ist seit Jahren archiviert und bekommt keine Updates mehr, trotzdem läuft es in vielen Projekten noch als Standard-Explorer. Wer heute eine solide GraphQL Playground Alternative sucht, landet fast immer bei GraphiQL 2 oder Apollo Sandbox, zwei Tools mit unterschiedlicher Philosophie für Auth-Handling, Team-Collaboration und Self-Hosting.
-