Design Patterns: Anleitungen und Praxiswissen | Seite 11 | mironsoft Blog
Design Patterns
-
24.07.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.
-
23.07.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.
-
19.07.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.
-
17.07.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.
-
15.07.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.
-
13.07.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.
-
08.07.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.
-
06.07.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.
-
06.07.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.
-
01.07.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.