Archive: 2025-03 | Seite 15
Archive: March 2025
-
13.03.2025
PHP-Projekte brauchen Composer für Backend-Dependencies und Node für Asset-Compilation. Beide in einem Container zu zwingen ist falsch – beide auf dem Host laufen zu lassen ist unpraktisch. Multi-Stage-Builds und sauber getrennte Build-Container lösen das elegant.
-
12.03.2025
object-fit entscheidet, ob ein Bild in seinem Container gestaucht, beschnitten oder unveraendert dargestellt wird, waehrend object-position den Fokuspunkt des Zuschnitts festlegt. Zusammen ersetzen beide Eigenschaften serverseitiges Bildzuschneiden fuer die meisten Layout-Faelle und funktionieren, anders als background-size, auch mit echten img- und video-Elementen inklusive Alt-Text und Ladeoptimierung.
-
12.03.2025
Seit Git 2.34 lässt sich ein bereits vorhandener SSH-Schlüssel direkt zum Signieren von Commits nutzen, ganz ohne separate GPG-Installation und ohne eigene Schlüsselverwaltung. Wer SSH ohnehin schon für Push und Pull einsetzt, kommt so mit deutlich weniger Aufwand zu verifizierten Commits.
-
12.03.2025
InnoDB kann Tabellen seitenweise komprimieren, ohne dass die Anwendung davon etwas mitbekommt. Der Mechanismus dahinter, die Wahl der richtigen KEY_BLOCK_SIZE und der Trade-off zwischen Speicherplatzersparnis und zusätzlichem CPU-Overhead entscheiden aber darüber, ob sich ROW_FORMAT=COMPRESSED für eine konkrete Tabelle wirklich lohnt. Für Magento-Installationen mit umfangreichen Log- und Archivtabellen kann die Kompression spürbar Plattenplatz und Cache-Druck reduzieren, für heiß beschriebene Kerntabellen kann sie dagegen zur Bremse werden.
-
12.03.2025
HTTP/3 ersetzt TCP durch das neue Transportprotokoll QUIC und löst damit ein Problem, das HTTP/2 trotz Multiplexing nie vollständig behoben hat. Wer versteht, wie Head-of-Line-Blocking, 0-RTT-Handshakes und Connection Migration technisch funktionieren, kann realistisch einschätzen, welchen Effekt das neue Protokoll für Magento-Shops und ihre mobilen Besucher tatsächlich hat.
-
12.03.2025
Symbol.iterator ist der bekannteste Vertreter der well-known Symbols, aber laengst nicht der einzige. Dieser Artikel zeigt im Detail, wie Symbol.toPrimitive, Symbol.hasInstance und Symbol.toStringTag das Verhalten eigener Objekte bei Typumwandlung, instanceof-Pruefungen und Debug-Ausgaben gezielt steuern, und wie eigene Symbole kollisionsfreie Objekt-Keys ermoeglichen.
-
12.03.2025
Ein einzelnes Akkordeon ist mit Alpine.js in wenigen Zeilen erledigt, doch sobald ein Akkordeon-Eintrag selbst wieder ein Akkordeon enthält, etwa bei FAQ-Kategorien mit mehreren Unterfragen, treten schnell Überraschungen auf: Ein Klick auf eine Unterfrage schließt fälschlich die gesamte Elternkategorie, weil sich Klick-Ereignisse und geteilter Zustand ungewollt vermischen. Wer verschachtelte Akkordeons robust bauen will, muss verstehen, wie Alpine.js-Scopes ineinander verschachtelt sind, wie Klick-Events sich durch den DOM-Baum nach oben propagieren und wie sich beide Ebenen sauber voneinander trennen lassen, ohne auf zwei komplett unabhängige, unverbundene Komponenten zurückzugreifen.
-
12.03.2025
Eine Preistabelle mit Umschalter zwischen monatlicher und jährlicher Abrechnung ist bei SaaS-Produkten und Abo-Modellen Standard, weil sie den Jahresrabatt direkt sichtbar macht und die Kaufentscheidung erleichtert. Mit Alpine.js entsteht eine Preistabelle, die Beträge reaktiv umrechnet, Rabatt-Badges anzeigt und den empfohlenen Tarif hervorhebt, komplett ohne Page Reload und ohne serverseitige Logik im Frontend.
-
12.03.2025
Lange Produktlisten, Artikel-Feeds und Dokumentationsseiten zwingen den Browser, Layout und Style für tausende Elemente zu berechnen, auch wenn davon nur ein Bruchteil sichtbar ist. content-visibility überspringt diese Arbeit gezielt für Bereiche außerhalb des Viewports und macht aus einer trägen langen Seite eine Seite, die sich anfühlt wie eine kurze.
-
12.03.2025
Ein Playwright-Test, der nur gegen CSS-Klassen oder feste Timeouts prüft, testet im Hyvä-Theme oft am eigentlichen Problem vorbei, weil ein erheblicher Teil des Komponentenzustands nicht im sichtbaren DOM, sondern im reaktiven Alpine-State hinter x-data lebt. Dieser Artikel zeigt, wie sich der Alpine-State direkt über die öffentliche Alpine-API abfragen lässt, wie ein Test zuverlässig auf die Initialisierung wartet statt auf feste Wartezeiten zu setzen, und welche Fallstricke in CSP-restriktiven Hyvä-Setups typischerweise zu Flaky Tests führen.