Seite 329 - Mironsoft Blog
-
Maxim Mironjuk
-
Februar 12, 2025
Eine Test-Suite mit 100 Prozent Line Coverage kann trotzdem wertlos sein, wenn Tests Code lediglich ausführen statt sein Verhalten zu prüfen. Mutation Testing führt gezielt kleine Fehler in euren Code ein und prüft, ob eure Tests sie tatsächlich bemerken. Wer diese Technik für PHP und PHPUnit richtig einsetzt, deckt blinde Flecken auf, die klassische Coverage-Metriken systematisch verschleiern.
-
Maxim Mironjuk
-
Februar 12, 2025
Hyvä liefert Minicart und Wishlist mit, eine fertige Compare-Funktionalität sucht man im Standard-Theme jedoch vergeblich. Wer trotzdem eine Vergleichsseite braucht, sollte nicht bei null anfangen, sondern auf Magentos native Compare-Product-API setzen und sie mit einem sauberen Alpine-Store und einer responsiven Tabelle verbinden.
-
Maxim Mironjuk
-
Februar 12, 2025
Parallax-Scrolling, große Zoom-Übergänge und autoplayende Hintergrundvideos wirken für viele Nutzer modern, lösen bei Menschen mit vestibulären Störungen aber echte Übelkeit, Schwindel und Migräne aus. Die Media Query prefers-reduced-motion erkennt diese Präferenz zuverlässig in CSS und JavaScript und ermöglicht eine reduzierte, weiterhin funktionale Animation statt eines abrupten Interfaces ohne jede Rückmeldung.
-
Maxim Mironjuk
-
Februar 12, 2025
Ein zu freizügig gesetzter Access-Control-Allow-Origin-Header hebt genau den Browserschutz auf, den die Same-Origin Policy eigentlich garantiert. Dieser Artikel erklärt Preflight-Requests, die gefährliche Kombination aus Wildcard und Credentials, Origin-Reflection als häufigsten Fehler und wie eine saubere, server-seitige Allowlist für Magento-APIs hinter CDN und Varnish zuverlässig funktioniert.
-
Maxim Mironjuk
-
Februar 12, 2025
Ein sauberer Symfony 7 Upgrade ist kein Sprung ins Ungewisse, sondern ein wiederholbarer Prozess: Deprecations systematisch aufspueren, Composer-Constraints kontrolliert loesen, Config-Aenderungen einzeln pruefen und jeden Schritt mit funktionalen Tests absichern, bevor der Rollout in Produktion geht.
-
Maxim Mironjuk
-
Februar 12, 2025
InnoDB speichert Daten als B-Tree und ist damit die Standardwahl für nahezu jede MySQL-Installation, auch bei Magento-Shops. Bei sehr hoher Schreiblast, etwa in Logging-Tabellen, Änderungsprotokollen oder Zeitreihendaten, stößt dieser Ansatz jedoch an Grenzen: Random Writes erzeugen Seiten-Splits und spürbare Write Amplification. MyRocks ersetzt den B-Tree durch einen Log-Structured-Merge-Tree, wie er aus RocksDB stammt, und verspricht dafür deutlich weniger Schreib-Overhead und kleinere Tabellen auf der Platte. Ob sich der Umstieg lohnt, hängt stark vom tatsächlichen Zugriffsmuster ab.
-
Maxim Mironjuk
-
Februar 12, 2025
Ein Cookie-Banner, der Tracking-Skripte weiterlaufen lässt, obwohl der Nutzer noch nicht eingewilligt hat, erfüllt weder ePrivacy noch DSGVO noch TTDSG. Dieser Artikel zeigt, wie Opt-in-Consent granular pro Zweck funktioniert, wie Skripte technisch bis zur Einwilligung blockiert werden, wie Google Consent Mode v2 und CMP-Plattformen korrekt eingebunden werden und wie man die eigene Implementierung im Network-Tab tatsächlich überprüft.
-
Maxim Mironjuk
-
Februar 11, 2025
Ein einziges globales Tailwind-CSS-Bundle für alle Seiten eines großen Projekts bedeutet, dass jede Route Styles lädt, die sie gar nicht braucht. Mit Multi-Entry-Builds, gezieltem Code-Splitting und Critical CSS lässt sich Tailwind CSS pro Seite oder Route so aufteilen, dass jede Route nur das CSS ausliefert, das sie tatsächlich verwendet.
-
Maxim Mironjuk
-
Februar 11, 2025
RDB-Snapshots speichern den kompletten Datenbestand eines Redis-Servers als kompakte Binärdatei zu festen Zeitpunkten. Wer save-Punkte, den BGSAVE-Fork-Mechanismus und Copy-on-Write versteht, kann Snapshot-Intervalle so konfigurieren, dass Datenverlust und Latenz-Spitzen gleichermaßen kontrolliert bleiben, statt sich auf Standardwerte zu verlassen.
-
Maxim Mironjuk
-
Februar 11, 2025
CSS-Spezifitätsprobleme entstehen fast immer durch unklare Kaskaden-Reihenfolge. Tailwinds @layer-System – mit base, components und utilities – löst dieses Problem strukturell: Jede Layer-Ebene hat eine feste Position in der Kaskade, und Overrides funktionieren deterministisch statt durch Spezifitäts-Hacks.
-