Seite 11 - Design Patterns
-
Maxim Mironjuk
-
Juli 24, 2025
Seit ES2022 erlauben static Class Blocks eine echte, mehrstufige Initialisierungslogik fuer statische Klassenfelder, inklusive Zugriff auf private Felder und regulaerer Fehlerbehandlung. Dieser Artikel zeigt, warum das Feature notwendig wurde, wie die Syntax im Detail funktioniert und wo es in der Praxis den Unterschied macht.
-
Maxim Mironjuk
-
Juli 23, 2025
Ein Custom Ref gibt vollständige Kontrolle über Dependency Tracking und Update-Auslösung. Wer die customRef API versteht, kann Debounce, Validierung, Storage-Synchronisation und andere Muster als sauberes, wiederverwendbares reaktives Primitiv kapseln, statt sie in jeder Komponente neu zusammenzuklicken.
-
Maxim Mironjuk
-
Juli 19, 2025
Docker Swarm und Kubernetes lösen dasselbe Grundproblem, nämlich Container über mehrere Hosts hinweg zuverlässig zu betreiben, aber mit völlig unterschiedlichem Betriebsaufwand. Wer die Entscheidung allein am Bekanntheitsgrad von Kubernetes festmacht, baut sich oft unnötige Komplexität ein, die kein Team im Alltag braucht.
-
Maxim Mironjuk
-
Juli 17, 2025
Primitive Obsession, also das Abbilden fachlicher Konzepte durch nackte Strings und Integer, ist eine der häufigsten Ursachen für unklaren Domänencode. Embeddables machen Value Objects wie Money oder Address zu erstklassigen Bürgern im Doctrine-Mapping, ohne eigene Datenbanktabellen zu benötigen.
-
Maxim Mironjuk
-
Juli 15, 2025
Klassisches Responsive Design denkt in festen Gerätebreiten und drei bis vier Breakpoints. Intrinsic Web Design dreht diese Perspektive um: das Layout reagiert direkt auf seinen eigenen Inhalt und den tatsächlich verfügbaren Platz, mit minmax, clamp, auto-fit und Container Queries als praktischen Werkzeugen für diesen Ansatz.
-
Maxim Mironjuk
-
Juli 13, 2025
Echte Komponentenisolation braucht zwei getrennte Garantien: kollisionsfreie Klassennamen und eine vorhersagbare Spezifitätsreihenfolge. CSS Modules liefern die erste Garantie zur Build-Zeit, native Cascade Layers die zweite zur Laufzeit, und zusammen entsteht eine Isolation, die ohne Shadow DOM und ohne UI-Framework auskommt.
-
Maxim Mironjuk
-
Juli 08, 2025
Sobald ein eigener Indexer auf den Ergebnissen eines anderen aufbaut, entscheidet sauberes Indexer Dependency Management darueber, ob die Daten am Ende konsistent sind oder ob ein nachgelagerter Indexer regelmaessig mit veralteten Zwischenergebnissen rechnet, ohne dass jemand den Fehler sofort bemerkt.
-
Maxim Mironjuk
-
Juli 06, 2025
Anonyme Klassen erlauben es, mit new class() eine vollwertige Klasse direkt an der Verwendungsstelle zu definieren, ohne einen globalen Namen zu vergeben. Wer sie richtig einsetzt, ersetzt damit Mocking-Bibliotheken bei Tests, vermeidet unnötige Klassennamen für One-off-Implementierungen und schreibt kompakteren, dennoch typsicheren Code.
-
Maxim Mironjuk
-
Juli 06, 2025
Architektur Tradeoffs mit Claude zu bewerten bedeutet, jede Entscheidung entlang konkreter Kriterien wie Komplexität, Latenz, Betriebsaufwand und Teamgröße durchzugehen, statt sich auf die zuletzt gelesene Konferenz-Folie zu verlassen. Claude strukturiert die Abwägung zwischen Monolith und Microservices, synchron und asynchron oder SQL und NoSQL anhand der tatsächlichen Projektsituation.
-
Maxim Mironjuk
-
Juli 01, 2025
Das Shared Kernel Pattern loest ein Problem, das in fast jeder Symfony Microservice Landschaft entsteht: mehrere Services brauchen dieselben Value Objects, Fehlercodes oder Event Vertraege. Dieser Artikel zeigt, wie ein Shared Kernel als eigenes, versioniertes Composer Paket aufgebaut wird, was hineingehoert, was draussen bleiben muss, und wie Contract Tests eine schleichende Kopplung verhindern.
-