Seite 17 - Monthly Archives: January 2025
-
Maxim Mironjuk
-
Januar 12, 2025
Mit defineCustomElement() lässt sich jede Vue-Komponente in ein echtes, standardkonformes Custom Element verwandeln, das sich wie ein natives HTML-Element in beliebigen Umgebungen einsetzen lässt, auch ohne dass die umgebende Anwendung selbst Vue verwendet. Dieser Artikel zeigt die API im Detail, wie Shadow-DOM-Kapselung Styling-Konflikte verhindert und wo die Einschränkungen gegenüber einer normalen Vue-Komponente liegen.
-
Maxim Mironjuk
-
Januar 12, 2025
Arrays gelten in JavaScript standardmäßig als veränderlich, was in größeren Codebasen zu subtilen Fehlern führt, wenn eine Funktion ein übergebenes Array unbeabsichtigt verändert. TypeScript bietet mit readonly Arrays und readonly Tupeln ein Werkzeug, um solche Mutationen bereits zur Kompilierzeit auszuschließen.
-
Maxim Mironjuk
-
Januar 12, 2025
Wo git apply lediglich einen Diff in den Arbeitsbaum überträgt, rekonstruiert git am aus einer Patch-Datei einen vollständigen Commit inklusive Autor, Datum und Commit-Nachricht. Damit ist git am das zentrale Werkzeug für patch-basierte Workflows, wie sie bei der Linux-Kernel-Entwicklung, bei Git selbst und in vielen mailinglistenbasierten Open-Source-Projekten bis heute Standard sind. Dieser Artikel zeigt, wie einzelne Patches und ganze Serien sauber angewendet werden, wie sich Konflikte während des Vorgangs lösen lassen und wann sich git am gegenüber einem klassischen Pull-Request-Merge lohnt.
-
Maxim Mironjuk
-
Januar 12, 2025
Die Migration von der Options API zur Composition API muss keine Komponente auf einmal komplett umbauen. Vue 3 erlaubt beide Stile im selben Projekt gleichzeitig, wodurch data, methods und computed Komponente für Komponente sauber in die Composition API übersetzt werden können, während der Rest der Anwendung unverändert weiterläuft.
-
Maxim Mironjuk
-
Januar 12, 2025
Das Iterator Pattern steckt tief in Magento 2 Collections. AbstractCollection implementiert IteratorAggregate und lädt Daten lazy. Vom PHP Iterator Interface über EAV-Filter bis zu SearchCriteria — alles was Collections in Magento 2.4.8 wirklich können.
-
Maxim Mironjuk
-
Januar 11, 2025
Falsch konfigurierte Cache-Control-Header lassen Browser bei jedem Seitenaufruf dieselben Dateien erneut laden und kosten damit spürbare Ladezeit sowie unnötige Serverlast. Dieser Artikel erklärt die wichtigsten Direktiven, ETag-Validierung, Cache Busting und das Zusammenspiel von Browser-, Shared- und Service-Worker-Cache anhand konkreter Magento-Beispiele.
-
Maxim Mironjuk
-
Januar 11, 2025
Wer Tailwind CSS in einem Monorepo mit vielen Paketen betreibt, kennt das Problem: Der Build-Prozess wird von Sekunden zu Minuten, sobald die Content-Konfiguration zu viele Dateien scannt. Mit gezielten Globs, Turborepo-Caching, Nx-Task-Pipelines und Parallelisierung lässt sich die Build-Zeit auch bei hunderten Paketen konsequent niedrig halten.
-
Maxim Mironjuk
-
Januar 11, 2025
Ein Backup, das nie tatsaechlich wiederhergestellt wurde, ist eine unbewiesene Vermutung, kein verlaesslicher Schutz. Automatisierte Restore-Tests pruefen regelmaessig, ob eine Sicherung wirklich funktioniert, ob die Daten vollstaendig sind und wie lange die Wiederherstellung tatsaechlich dauert. Dieser Artikel zeigt, wie sich Restore-Tests fuer Linux-Server als fester, ueberwachter Bestandteil des Betriebs etablieren lassen.
-
Maxim Mironjuk
-
Januar 11, 2025
Wer an einem eigenen Modul-Repository arbeitet, aber staendig gegen den Magento-Core nachschlagen muss, kann beide als Multi-Root-Projekt in einem PhpStorm-Fenster fuehren. Jede Wurzel behaelt ihre eigene VCS-Historie, waehrend Navigation und Suche projektuebergreifend funktionieren. Der folgende Artikel zeigt Einrichtung, Grenzen und die Frage, wann zwei separate Fenster doch die bessere Wahl bleiben.
-
Maxim Mironjuk
-
Januar 11, 2025
In fast jeder Anwendung gibt es Logik, die von der aktuellen Zeit abhängt: Ablaufdaten von Gutscheinen, Fristen für Bestellstornierungen, oder zeitgesteuerte Freischaltungen. Wird diese Zeit über ein direktes new \DateTime() im Code abgefragt, wird jeder Test, der einen bestimmten Zeitpunkt simulieren muss, entweder zu einer fragilen Konstruktion mit echten Sleep-Aufrufen oder schlicht unmöglich zu schreiben. Die Symfony Clock-Component löst dieses Problem, indem sie die aktuelle Zeit als injizierbare Abhängigkeit behandelt, die sich in Tests durch eine deterministische Implementierung ersetzen lässt, ohne eine einzige Millisekunde echter Wartezeit.
-