Domänen
Jede Software hat zum Ziel, Probleme innerhalb eines Fachgebiets – der Domäne – für ihren Anwender zu lösen. Alle weiteren Funktionen dieser Software sind lediglich Beiwerk und dienen dazu, dieses Ziel zu unterstützen.
Wenn die Domäne Ihrer Software das Buchen von Hotelzimmern ist, gehört das Reservieren und Stornieren von Zimmern zu ihren Hauptaufgaben. Die Darstellung von Buchungsformularen oder das Protokollieren von sicherheitsrelevanten Ereignissen gehört jedoch nicht zur Domäne „Hotelzimmerbuchung“ und dient vornehmlich dazu, die Durchführung der Hauptaufgabe zu unterstützen. Sie können die Zugehörigkeit einer Funktion zu einer Domäne ganz einfach überprüfen: Stellen Sie sich vor, Sie wünschen ein Zimmer von einem Rezeptionisten. Diese Aufgabe ist ihm bestens vertraut und er wird Ihrem Wunsch gerne entsprechen. Stellen Sie sich nun vor, wie dieser Angestellte reagiert, wenn er für Sie ein Buchungsformular rendern oder überprüfen soll, ob Ihre Sitzung noch gültig ist. Die Aufgaben liegen nicht in seiner Domäne.
In den seltensten Fällen heißt die Domäne einer Anwendung „Software“. Die meisten Programme bieten vielmehr Lösungen für Prozesse aus dem wirklichen Leben. Um der Komplexität Ihrer Applikation Herr zu werden, ist es deshalb unverzichtbar, die Bereiche, die die Domäne betreffen, sauber von dem Code zu trennen, der nur der Infrastruktur dient. Sie benötigen hierfür eine Schichtenarchitektur – ein Ansatz, der sich seit Jahrzehnten bewährt hat.
Auch wenn Sie bisher keine bewusste Aufteilung in Schichten betrieben haben, sollte Ihnen das Mantra „Model-View-Controller“ locker von den Lippen gehen. Das Modell, das Teil dieses MVC-Musters ist, ist nämlich im besten Fall ein Modell eines Teils der Domäne. Es wird als „Domain Model“ von der restlichen Applikation getrennt und residiert in seiner eigenen Schicht, dem „Domain Layer“.







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 [...]