Design Patterns: Anleitungen und Praxiswissen | Seite 9 | mironsoft Blog
Design Patterns
-
26.09.2025
Eine Scroll Progress Bar zeigt Lesern eines langen Artikels auf einen Blick, wie viel Inhalt noch folgt und wie weit sie bereits gekommen sind. Mit Alpine.js lässt sich diese Fortschrittsanzeige in wenigen Zeilen umsetzen, performant an das Scroll Event gebunden und wahlweise als horizontale Leiste oben oder vertikal am Seitenrand.
-
26.09.2025
Das Repository Pattern trennt Domänenlogik von der konkreten Datenzugriffstechnologie, indem eine Sammlung von Domänenobjekten hinter einem einfachen Interface verborgen wird. Wer das Repository Pattern in reinem PHP versteht, kann Geschäftslogik testen, ohne eine echte Datenbank zu berühren, und die zugrunde liegende Speichertechnologie später austauschen, ohne den restlichen Code anzufassen.
-
23.09.2025
Ein gutes Kanban-Board lebt von klaren Spaltengrenzen, gut lesbaren Karten und sichtbarem Feedback während des Ziehens. Mit Tailwind CSS für Layout und Zustände sowie Alpine.js für Drag-and-drop-Interaktion entsteht ein Board, das auch bei vielen Karten und Spalten übersichtlich bleibt.
-
18.09.2025
Domain Driven Design in Symfony scheitert selten am strategischen Verstaendnis der Fachdomaene und fast immer an der taktischen Umsetzung im Code. Dieser Artikel zeigt konkret, wie Value Objects, Aggregate Grenzen, Repository Interfaces und Domain Events in Symfony implementiert werden, ohne dass Doctrine Annotationen die reine Domain Schicht verschmutzen.
-
17.09.2025
Das Page-Object-Pattern soll Tests von Selektoren und DOM-Struktur entkoppeln, wird in der Praxis aber oft zu Klassen mit versteckter Business-Logik und tiefen Vererbungsketten aufgebläht. Dieser Artikel zeigt, was das Pattern tatsächlich löst, welche Overengineering-Fallen typisch sind, wie ein minimales Page Object aussieht und wann ein Test ganz ohne dieses Pattern auskommt.
-
13.09.2025
Web Components sind eine Gruppe nativer Browser-APIs, mit denen sich gekapselte UI-Bausteine bauen lassen, die ohne Framework-Runtime funktionieren. Custom Elements, Shadow DOM und HTML Templates ermöglichen Komponenten, die in React, Vue, Angular und in reinem HTML gleichermaßen einsetzbar sind, ideal für Design-Systeme über Team- und Stack-Grenzen hinweg.
-
13.09.2025
Ein gewöhnliches Map-Objekt als Zuordnung von Objekten zu privatem Zustand verhindert, dass diese Objekte jemals vom Garbage Collector eingesammelt werden, solange die Map existiert. WeakMap und WeakSet lösen genau dieses Problem, indem sie ihre Schlüssel nur schwach referenzieren und damit private Zustände ermöglichen, die automatisch mit dem zugehörigen Objekt verschwinden.
-
11.09.2025
Eventual Consistency ist kein Kompromiss fuer schlecht gebaute Systeme, sondern eine bewusste Konsequenz des CAP-Theorems bei jedem verteilten System, auch bei Read-Replicas in relationalen Datenbanken. Wer Konsistenzmodelle, Konfliktaufloesung und Replikations-Lag konkret versteht, trifft bessere Entscheidungen darueber, wo eine kurze Verzoegerung akzeptabel ist und wo nicht.
-
05.09.2025
Ein Nutzer, der zwanzig Minuten in ein Formular investiert hat und dann versehentlich den Tab schließt, verliert seine Arbeit komplett, wenn keine Warnung bei ungespeicherten Änderungen greift. Mit Dirty-State-Tracking, dem beforeunload-Event und einem eigenen Bestätigungsdialog für interne Navigation lässt sich dieser Datenverlust in Alpine.js zuverlässig verhindern.
-
02.09.2025
PHP hat, anders als Elixir oder das vorgeschlagene JavaScript-Feature, keinen nativen Pipe Operator. Mit einer einzigen kleinen pipe()-Funktion lässt sich der gleiche lesbare Datenfluss trotzdem in PHP 8.4 nachbauen, von links nach rechts statt tief verschachtelter Funktionsaufrufe.