Seite 360 - Mironsoft Blog
-
Maxim Mironjuk
-
Januar 05, 2025
MySQL 8 hat zwei kleine, aber praxisrelevante Index-Funktionen eingeführt, die in älteren Versionen schlicht fehlten: echte absteigende Indizes und unsichtbare Indizes. Vorher simulierte der Optimizer eine absteigende Sortierung durch einen Rückwärts-Scan über einen aufsteigenden Index, was bei gemischten Sortierrichtungen über mehrere Spalten hinweg an klare Grenzen stieß. Und ein bestehender Index ließ sich früher nur durch tatsächliches Löschen testen, ein riskanter Schritt in einer produktiven Magento-Datenbank. Dieser Artikel zeigt, wie beide Funktionen intern arbeiten, wann sich der Umbau eines bestehenden Index wirklich lohnt und wie sich Indexänderungen in einer laufenden Installation risikoarm durchführen lassen.
-
Maxim Mironjuk
-
Januar 05, 2025
Ein abgelaufenes TLS-Zertifikat ist einer der wenigen Fehler, die einen Shop komplett offline nehmen können, ohne dass ein einziger Codefehler dahintersteckt. Wer TLS-Zertifikat-Ablauf mit Bash und openssl überwacht, erkennt drohende Ausfälle Wochen im Voraus und verhindert den nächtlichen Notfalleinsatz.
-
Maxim Mironjuk
-
Januar 05, 2025
Wer in Docker-Containern nur mit var_dump und Logs debuggt, schöpft das Potential der Entwicklungsumgebung nicht aus. Xdebug 3 mit PhpStorm verbindet den Debugger direkt mit dem Container – für echte Breakpoints, Variable-Inspektion und Stack Traces ohne einen einzigen var_dump().
-
Maxim Mironjuk
-
Januar 04, 2025
Wer Magento- und Hyvä-Shops nur in Chromium testet, übersieht Rendering-Unterschiede, die echte Kunden in Firefox oder Safari tatsächlich treffen. Playwright macht es einfach, dieselbe Testsuite gegen mehrere Browser-Engines laufen zu lassen, doch echte Wirkung entsteht erst durch eine bewusste Browser-Matrix, die auf realen Analytics-Daten statt auf Standardeinstellungen beruht.
-
Maxim Mironjuk
-
Januar 04, 2025
Routing in React war lange eine Quelle von Laufzeitfehlern: falsche URL-Parameter, untypisierte Search Params, fehlende Routen-Guards. TanStack Router löst das durch ein vollständig typsicheres Routing-System, bei dem der TypeScript-Compiler jeden Fehler in Navigation, Params und Search Params erkennt – bevor der Code den Browser erreicht.
-
Maxim Mironjuk
-
Januar 04, 2025
Der Slow Query Log ist nur der erste Schritt, denn eine Rohdatei mit tausenden Zeilen bringt allein keine Erkenntnis. Dieser Artikel zeigt, wie long_query_time sinnvoll gewählt wird, wie pt-query-digest und mysqldumpslow die Daten aggregieren, und wie man daraus eine belastbare Priorisierung für die nächsten Optimierungen ableitet.
-
Maxim Mironjuk
-
Januar 04, 2025
Der Merkzettel-Button gehört zu den unscheinbarsten, aber am häufigsten falsch ausgezeichneten Interaktionselementen im Onlineshop: Ein Herzen-Icon wechselt beim Klick seinen Zustand, ohne dass sich am umgebenden Markup sichtbar etwas ändert, und genau dieser stille Statuswechsel ist für Screenreader-Nutzer ohne zusätzliche ARIA-Arbeit unsichtbar. Wer das Toggle-Button-Pattern mit aria-pressed konsequent einsetzt und Statusänderungen aktiv ansagt, macht aus einem rein visuellen Wechsel eine nachvollziehbare Aktion, auch bei der Verwaltung des Merkzettels selbst.
-
Maxim Mironjuk
-
Januar 04, 2025
PHPUnit findet Laufzeitfehler – aber nur, wenn die entsprechenden Tests existieren. PHPStan und Psalm finden Typfehler statisch, bevor der Code je ausgeführt wird. Erst die Kombination beider Ansätze schließt die Lücken, die jedes Tool allein offen lässt. Dieser Artikel zeigt, wie man PHPStan, Psalm und PHPUnit als durchgehende Qualitätskette in PHP-Projekten integriert.
-
Maxim Mironjuk
-
Januar 03, 2025
Jede zusätzliche Sekunde Ladezeit im Checkout kostet nachweislich Umsatz, gerade auf mobilen Geräten mit schwacher Verbindung. Checkout-Performance in Magento 2 hängt an konkreten, messbaren Stellen: der Totals-Berechnung, der Anzahl redundanter API-Aufrufe, dem Session-Storage und externen Diensten wie Fraud-Prüfung oder Versandkosten-Berechnung.
-
Maxim Mironjuk
-
Januar 03, 2025
Ein Netzwerk-Timeout beim Aufruf einer Zahlungs- oder Bestell-API sagt nichts darüber aus, ob der Schreibvorgang auf dem Server tatsächlich fehlgeschlagen ist. Ein naiver Retry-Mechanismus riskiert deshalb doppelte Buchungen, doppelte Bestellungen oder doppelt versendete Benachrichtigungen. Ein Idempotenzschlüssel löst dieses Problem nicht in der Anwendungslogik, sondern strukturell auf Datenbankebene, mit einem UNIQUE-Constraint, der doppelte Verarbeitung selbst bei paralleler Zustellung derselben Anfrage zuverlässig verhindert. Dieser Artikel zeigt das praktische Tabellendesign, Response-Snapshots und eine saubere Aufräumstrategie.
-