Direkt zum Inhalt

We've come a long way baby, oder was bisher geschah

Thu 2023-06-22 07:40:13

Hi Folks,

es ist wieder Donnerstag und das heißt, es ist Zeit für ein neues Dev-Diary! In diesem Eintrag möchte ich einen Einblick in die Entwicklungsgeschichte dieses Projektes geben und einige wichtige Aspekte hervorheben.

Board-Game-Center hat bereits eine lange Entwicklungszeit hinter sich, die immer wieder unterbrochen werden musste und zeitweise sogar auf Eis lag. In der Zwischenzeit war beruflich ein bedeutender Meilenstein der Wechsel von Zend Framework zu Laminas und ein damit auch einhergehende Interesse an Mezzio, mit dem sich ein Kollege intensiever auseinandersetzen durfte.

Es stellte sich relativ schnell heraus, dass das notwendige Wissen über die erforderlichen Änderungen noch fehlte – zumindest bei mir, da ich ja nur peripher und zeitlich eingeschränkt mit den neuen Techniken in meinen Hobbies arbeiten konnte. Dieses führte wie zu erwarten zu einigen, vor allem konzeptionellen Fehlern. Erschwerend brachte die lange Entwicklungszeit eine Vermischung von verschiedenen Ansätzen in das Projekt, einfach dadurch, dass sich durch das permanente Lernen neue Herangehensweisen ergaben.

Ein wichtiges Ziel ist die Zugänglichkeit. Deshalb war von Anfang an die Integration eines Hilfsmoduls geplant. Nun ist der perfekte Zeitpunkt gekommen, um dieses Modul zu integrieren. Der Einstieg für die ersten Testbenutzer soll dadurch erleichtert werden und ihr wertvolles Feedback kann direkt in die Erstellung neuer Einträge führen.

Mezzio arbeitet anders als das klassische MVC (Model-View-Controller). Zusätzlich soll gemäß dem SOLID-Prinzip jede Klasse nur eine Verantwortlichkeit haben. Dies führt in vielen Fällen zu einer verbesserten Übersichtlichkeit. Allerdings verhalten sich Formularen etwas anders als der Rest der Seite. Aus unerklärlichen Gründen wurde bisher ein großer Bogen um das Modul Flash-Messenger gemacht. Doch um Formulare auf die richtige Mezzio-Art zu gestalten, müssen Nachrichten (wie Fehlermeldungen) vom Post-Request zum Get-Request transportiert und zwischengespeichert werden.

Dies wurde erfolgreich umgesetzt, auch mithilfe eines eigenen View-Helpers, der die Ausgabe als DOM-Elemente mit barrierefreiem Zugang berücksichtigt.

Darüber hinaus viel die Entscheidung, Zend-Formular und Zend-Filter/Validatoren zu umgehen. Obwohl diese Bibliotheken an sich sehr gut sind, bringen sie auch viel "Magie" mit sich. Das ist großartig für die schnelle Entwicklung von übersichtlichen Projekten. Doch bei genauerer Betrachtung erkennt man, dass es viele "Hinter-den-Kulissen"-Mechanismen gibt, die das Projekt im Laufe der Zeit unverwaltbar machen können. Auch fällt das Debuggen ungleich schwerer, wenn man dann doch mal unbewusst ein Fehler einbaut. Daher sollte hier etwas neues und eigenes eingesetzt werden.

Auch wenn der Ansatz nicht vollständig domaingetrieben ist, wurde zumindest eine entsprechende "Geschmacksrichtung" eingeschlagen. Dies steht jedoch im Widerspruch zu einigen Paradigmen. Beim Hilfsmodul hat dies etwas mehr Zeit in Anspruch genommen: Neue Konzepte mussten erarbeitet werden, und es musste durch die undurchdringliche Dokumentation des Moduls gekämpfen werden. Zudem musste bereits an eine zukünftige Internationalisierung gedacht werden. Allerdings können die gelernten Aspekte jetzt auf viele ältere Module angewendet werden, die sonst in die Jahre gekommen wären. Dadurch wird die Entwicklung auf einen sicheren Weg für die Zukunft gestellt.

In den kommenden Dev-Diaries wird detaillierter auf viele der hier genannten Punkte eingegangen und euch auch ein noch tieferer Einblick in die Ideen und die bisherige Entwicklung von diesem Projekt gegeben.

Bleibt gespannt auf weitere Updates in den nächsten Beiträgen!… und die baldige Veröffentlichung des Hilfe-Moduls.

So long

Amlor