Seite 8 - Design Patterns
-
Maxim Mironjuk
-
Oktober 27, 2025
Before, After, Around – Magento-Methoden erweitern ohne Core-Override. Plugin-Chains, sortOrder, Einschränkungen und die wichtigsten Fallstricke vollständig erklärt.
-
Maxim Mironjuk
-
Oktober 26, 2025
Eine Polymorphic Association verspricht eine einzige Kommentar-Tabelle fuer Beitraege, Fotos und Videos gleichzeitig, doch der generische Fremdschluessel dahinter bricht die referentielle Integritaet der Datenbank. Dieser Beitrag zeigt, wie das klassische type-plus-id-Muster entsteht, warum es zu verwaisten Datensaetzen fuehrt, und mit welchen drei Alternativen sich dasselbe Problem loesen laesst, ohne auf Fremdschluessel-Constraints zu verzichten.
-
Maxim Mironjuk
-
Oktober 19, 2025
In den meisten Agenturprojekten wachsen Attribut-Sets unkontrolliert: Jeder neue Produkttyp bekommt sein eigenes Set, Namenskonventionen fehlen, und nach zwei Jahren verwaltet niemand mehr, welche der achtzig Sets tatsächlich noch produktiv genutzt werden. Wer Attribut-Sets stattdessen vor der Erstellung an Produkttypen und Geschäftsanforderungen ausrichtet, sie programmatisch über Data Patches erzeugt und über einen klaren Governance-Prozess kontrolliert, hält die EAV-Struktur wartbar, performant und für neue Entwickler nachvollziehbar.
-
Maxim Mironjuk
-
Oktober 11, 2025
Eine normale Destrukturierung zerstört die Reaktivität eines reactive()-Objekts, weil einzelne Felder zu einfachen Kopien werden. toRef() und toRefs() lösen genau dieses Problem, indem sie jede Property in einen eigenständigen Ref verwandeln, der weiterhin an die Originalquelle gekoppelt bleibt.
-
Maxim Mironjuk
-
Oktober 10, 2025
Wer bei jedem Zustands-Update ein komplettes Objekt oder Array tief kopiert, verschenkt Speicher und Rechenzeit. Structural Sharing löst dieses Problem, indem eine persistente Datenstruktur beim Update nur den geänderten Pfad neu aufbaut und alle unveränderten Teilbäume mit der alten Version teilt, statt sie zu duplizieren.
-
Maxim Mironjuk
-
Oktober 09, 2025
Eine reine Validierungsfunktion, die nur true oder false zurückgibt, verwirft die einzige Information, die sie durch die Prüfung gewonnen hat, und zwingt den restlichen Code, dieselbe Prüfung an jeder weiteren Stelle zu wiederholen. Dieser Artikel erklärt das Prinzip Parsing statt Validieren, bekannt als Parse, Don't Validate, und zeigt anhand von Refinement Types, verschachtelten Parsern und praktischen TypeScript-Beispielen, wie sich unknown-Zustände dauerhaft aus einer Codebasis entfernen lassen, statt sie immer wieder neu zu prüfen.
-
Maxim Mironjuk
-
Oktober 09, 2025
Promises kapseln das Ergebnis einer asynchronen Operation, bevor dieses Ergebnis überhaupt vorliegt, während ein Deferred Object die Kontrolle über Auflösung und Ablehnung von außen bereitstellt. Wer die drei Zustände eines Promise, die Regeln der Verkettung und die gängigen Kombinatoren versteht, kann komplexe asynchrone Workflows in PHP strukturieren, egal ob mit ReactPHP, Amp oder einer eigenen minimalen Implementierung.
-
Maxim Mironjuk
-
Oktober 07, 2025
Ein wartbares Dark-Light-Token-System entsteht nicht aus einer einzigen Ebene von Custom Properties, sondern aus drei sauber getrennten Schichten: Primitive Tokens, Semantic Tokens und Component Tokens. Zusammen mit der light-dark() Funktion lässt sich diese Architektur ohne doppelte Media Queries pro Komponente umsetzen.
-
Maxim Mironjuk
-
Oktober 02, 2025
Ein modularer Monolith teilt eine Symfony Anwendung in klar abgegrenzte Module auf, jedes als eigenes Bundle mit eigener Datenschicht und definierter Schnittstelle. So bleibt ein wachsendes Projekt wartbar, ohne sofort die operative Komplexitaet von Microservices zu uebernehmen. Dieser Artikel zeigt die konkrete Verzeichnisstruktur, die Kommunikation zwischen Modulen und wie Deptrac Architekturgrenzen automatisch durchsetzt.
-
Maxim Mironjuk
-
September 27, 2025
Feature Flags trennen das Deployment von Code von der Aktivierung eines Features für Nutzer. In Vue-Apps entsteht daraus ein mächtiges Werkzeug für schrittweise Rollouts, A/B-Tests und schnelles Zurückschalten im Fehlerfall, sofern die Composable-Architektur, Typsicherheit und Aufräumdisziplin von Anfang an mitgedacht werden.
-