Seite 16 - Monthly Archives: February 2026
-
Maxim Mironjuk
-
Februar 07, 2026
Ein TypeScript Transformer greift direkt in den Compiler-Durchlauf ein, noch bevor JavaScript entsteht, und verändert den abstrakten Syntaxbaum programmatisch. Das ermöglicht Dinge, die weder ein Linter noch ein einfaches Build-Skript leisten kann, etwa das automatische Entfernen von Debug-Code oder das Einfügen von Metadaten basierend auf tatsächlichen Typinformationen.
-
Maxim Mironjuk
-
Februar 07, 2026
Wer zum ersten Mal ein dense_vector-Feld anlegt, wählt die Vektor-Dimension meist danach, was das gewählte Embedding-Modell nun einmal liefert, ohne die tatsächlichen Speicher- und Performance-Kosten zu hinterfragen. Bei einem kleinen Testkatalog fällt das kaum auf, bei mehreren Millionen Produkten in mehreren Sprachen summieren sich die Kosten pro Vektor jedoch schnell zu einem spürbaren Infrastrukturproblem. Zwischen der Wahl der Dimension, der Quantisierungsstrategie und den HNSW-Graphparametern bestehen enge Wechselwirkungen, die über Speicherbedarf, Indexierungsgeschwindigkeit und Suchqualität gemeinsam entscheiden. Dieser Artikel zeigt, welche Trade-offs bei der Dimensionswahl tatsächlich relevant sind, wie int8- und int4-Quantisierung Speicher spart, ohne die Suchqualität unbrauchbar zu machen, und wie sich die Indexierungsgeschwindigkeit bei großen Produktkatalogen praktisch verbessern lässt.
-
Maxim Mironjuk
-
Februar 07, 2026
MFTF automatisiert genau die Klasse von Fehlern, die Unit-Tests systematisch übersehen: kaputte Checkout-Flows, fehlerhafte JavaScript-Interaktionen und Admin-Formulare, die nach einem Update plötzlich nicht mehr speichern. Wer MFTF sauber aufsetzt, bekommt einen Browser-gestützten Absicherungslayer, der echte Klickpfade im Storefront und Backend automatisch nachstellt und Regressionen findet, bevor Kunden sie finden.
-
Maxim Mironjuk
-
Februar 07, 2026
Dieselbe Abfrage kann auf zwei Datenbanken mit identischem Schema, aber unterschiedlicher Datenverteilung, zwei vollkommen verschiedene Ausführungspläne erhalten, ohne dass sich am SQL-Text ein einziges Zeichen ändert. Verantwortlich dafür ist der Cost-Based Optimizer, der aus vielen theoretisch möglichen Zugriffsstrategien anhand von Statistiken, Kardinalitätsschätzungen und einem Kostenmodell diejenige auswählt, die er für die günstigste hält. Wer versteht, wie dieser Entscheidungsprozess intern abläuft, kann Optimizer-Fehlentscheidungen gezielt diagnostizieren statt sie nur zu vermuten.
-
Maxim Mironjuk
-
Februar 07, 2026
Der GitLab Runner ist der Motor jeder Pipeline – er führt die Jobs aus, die in .gitlab-ci.yml definiert sind. Welcher Runner-Typ für Magento-Builds und Deployments geeignet ist, hängt von Isolation, Performance, Sicherheitsanforderungen und verfügbarer Infrastruktur ab.
-
Maxim Mironjuk
-
Februar 06, 2026
Die Wahl des richtigen Nuxt Auth Moduls entscheidet über Wochen an Entwicklungszeit und über die langfristige Wartbarkeit der Authentifizierung. sidebase-nuxt-auth, nuxt-auth-utils und ein selbst gebautes JWT System verfolgen grundlegend unterschiedliche Ansätze, die sich für unterschiedliche Projektgrößen eignen.
-
Maxim Mironjuk
-
Februar 06, 2026
Magento erlaubt mehrere Websites, Stores und Store-Views in einer einzigen Datenbank, doch mit wachsender Anzahl an Mandanten stellt sich die Frage, ob dieses Multi-Store-Schema noch trägt oder ob getrennte Datenbanken pro Mandant die bessere Architektur sind. Die Antwort haengt von Attributanzahl, Traffic-Verteilung und Team-Struktur ab, nicht von einer pauschalen Best Practice.
-
Maxim Mironjuk
-
Februar 06, 2026
EXISTS und IN wirken auf den ersten Blick austauschbar, unterscheiden sich aber in einem entscheidenden Punkt: dem Umgang mit NULL-Werten in der inneren Ergebnismenge. Waehrend EXISTS ausschliesslich die Existenz einer Zeile prueft und NULL dabei keine Rolle spielt, kann ein NOT IN mit einer NULL-haltigen Liste stillschweigend eine leere Ergebnismenge liefern, ein Verhalten, das in Produktion regelmaessig zu fehlenden Zeilen in Reports fuehrt, ohne dass ein Fehler auftritt.
-
Maxim Mironjuk
-
Februar 06, 2026
Nicht jeder Hintergrunddienst muss beim Boot sofort laufen, manche werden nur sporadisch gebraucht und verbrauchen die meiste Zeit über nur unnötig Arbeitsspeicher. Socket Activation dreht das klassische Startmodell um: systemd öffnet den Netzwerk-Socket bereits beim Boot, startet den eigentlichen Dienst dahinter aber erst, wenn die erste Verbindung tatsächlich eintrifft. Für selbst geschriebene PHP-Hintergrunddienste in einer Magento-Infrastruktur ist das ein einfacher Weg zu schnellerem Boot und geringerem Ressourcenverbrauch, ohne auf Verfügbarkeit zu verzichten.
-
Maxim Mironjuk
-
Februar 06, 2026
Eine zehn Minuten lange Pipeline, die fuenfzigmal am Tag laeuft, kostet ein Team ueber acht Stunden Wartezeit taeglich. Systematische Optimierung beginnt nicht mit Raten, sondern mit Messen.
-