Dieses Problem wird als „cross-cutting concern“ (oder, für Germanophile, „querschnittlicher Belang“) bezeichnet und es gibt unterschiedlich saubere Möglichkeiten, diesem zu begegnen. Die beste von allen ist die Anwendung eines Programmierparadigmas, dem „aspektorientierten Programmieren“ (AOP).
Aspektorientiertes Programmieren
AOP ermöglicht dem Entwickler, die verschiedenen Belange in jeweils eigenen Modulen zu entwickeln. Die verschiedenen Aspekte werden dann erst zur Laufzeit zur endgültigen Anwendung zusammengefügt und verhalten sich so, als wären sie als ein Teil entwickelt worden.
In der Praxis entwickeln Sie ein Domain Model, das sich um Sicherheitsaspekte, Protokollierung usw. nicht kümmert. Separat programmieren Sie Klassen, die nur auf Sicherheit und Logging spezialisiert sind. Schließlich definieren Sie, wie die Sicherheits- und Loggingaspekte zur Laufzeit in das Domain Model eingewoben werden sollen.
Die Möglichkeiten, die AOP bietet, sind sehr mächtig. So lassen sich eben durch zentral definierte Sicherheitsmechanismen auch Code-Teile schützen, die erst später, von vielleicht eher unerfahrenen Entwicklern beigesteuert werden. Auch lassen sich Transaktions- und Persistenzmanagement durch Aspekte für den Anwendungsentwickler transparent integrieren. So kann sich der Entwickler auf seine eigentliche Aufgabe, die Entwicklung einer Software im Sinne seines Auftraggebers, konzentrieren.
Das TYPO3-Framework
Bisher waren Techniken wie AOP anderen Programmiersprachen – vornehmlich Java – vorbehalten. Ein sehr populäres Projekt, das auch zur weiteren Verbreitung von AOP beigetragen hat, ist das Spring Framework [1].
Da das Entwicklerteam von TYPO3 5.0 Domain-Driven Design für eine sehr sinnvolle Herangehensweise hält, beschloss man im Zuge der Entwicklung von TYPO3 5.0, ein PHP-basiertes Application-Framework [2] zu entwickeln, das die Anwendung von Domain-Driven Design und die Verwaltung von Inhalten besonders unterstützt. Dieses Framework ist selbstverständlich auch ohne das TYPO3-CMS verwendbar und eignet sich für sämtliche PHP-Applikationen, die einen Hello-World-Funktionsumfang überschreiten.







2 Antworten
von Die Zukunft der Extension-Entwicklung: N… 01.12.2009 (09:42Uhr) 1.
[...] in abstrahierte Softwareobjekte – das Domänen-Modell („Domain Model“) – übersetzt [1]. Objekte, die explizit nicht zum Domänen-Modell gehören sind solche, die für das Speichern und [...]
von Wie am besten Extbase lernen? - TYPO3-ne… 11.11.2011 (16:11Uhr) 2.
[...] werden, der Autor hat außerdem eine Zusammenfassung veröffentlich.Domain-driven DesignEin t3n-Artikel von Robert Lemke (Team Leader FLOW3) führt in das Thema ein.Das Buch Domain-Driven Design: Tackling Complexity in [...]