Seite 9 - Design Patterns
-
Maxim Mironjuk
-
September 26, 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.
-
Maxim Mironjuk
-
September 26, 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.
-
Maxim Mironjuk
-
September 23, 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.
-
Maxim Mironjuk
-
September 18, 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.
-
Maxim Mironjuk
-
September 17, 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.
-
Maxim Mironjuk
-
September 13, 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.
-
Maxim Mironjuk
-
September 13, 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.
-
Maxim Mironjuk
-
September 11, 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.
-
Maxim Mironjuk
-
September 05, 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.
-
Maxim Mironjuk
-
September 02, 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.
-