Funktionale Eleganz oder objektorientierte Struktur: Anemic u. Rich Domain Model


Details
Nach einem kleinen Sommerloch freue ich mich das nächste Meetup ankündigen zu dürfen. Dieses Mal wird uns Gulmariyam Yerzhanova aufzeigen welche verschiedenen Möglichkeiten es eigentlich gibt ein Domänenmodell zu implementieren, was wir bei diesen berücksichtigen müssen und wie sich die verschiedenen Implementierungen auf die Wartbarkeit unseres Codes auswirken.
Liebe Grüße und bis zum nächsten Meetup,
Marcus Franz
Agenda
Wir planen folgende Agenda:
- 18:00 bis 18:30 Uhr - Ankommen, Begrüßung, Kennenlernen
- 18:30 bis ca. 19:30 Uhr - Talk von Gulmariyam Yerzhanova inkl. Diskussion
- ab ca. 19:30 Uhr - Get-Together, Diskussionen (wir sorgen für Drinks & Fingerfood)
Abstract
Den Kern einer Anwendung bildet, nach Domain-Driven Design, die Fachlichkeit der Domain. Dieser Ansatz fokussiert sich bei der Entwicklung komplexer Softwaresysteme auf die fachlichen Anforderungen der Domäne. Das zentrale Element dabei ist das Domain Model, das das notwendige fachliche Wissen zur Lösung von Domänenproblemen abbildet und unabhängig von technischen Details ist. Eric Evans propagiert daher in seinem Buch ein sogenanntes "Rich Domain Model.”
Die Implementierung eines Domain Models kann verschiedene Formen annehmen. Eine davon ist das "Anemic Domain Model," das laut Martin Fowler als Anti-Pattern gilt. In diesem Modell bestehen die Objekte hauptsächlich aus Daten, während das Verhalten in separaten Services abgebildet wird. Allerdings wird diese Betrachtung nicht von allen Entwicklern geteilt. Insbesondere in der funktionalen Programmierung findet das Anemic Domain Model Befürworter.
In diesem Talk gebe ich zunächst einen kurzen Überblick über Domain-Driven Design im Allgemeinen und die wichtigsten Muster des taktischen Designs. Im Hauptteil des Vortrags beschäftigen wir uns eingehend mit den verschiedenen Implementierungsformen des Domänenmodells und beantworten dabei Fragen wie:
- Was genau steckt hinter den Begriffen „Anemic Domain Model“ und „Rich Domain Model“?
- Welche Vor- und Nachteile sind mit diesen Ansätzen verbunden?
- In welchen Anwendungsfällen erweisen sich die jeweiligen Modelle als besonders geeignet, unter Berücksichtigung beider Programmierparadigmen?
- Welche Auswirkungen haben sie auf die Wartbarkeit?
- Inwieweit ist das „Anemic Domain Model“ mit DDD kompatibel?
Speaker
Gulmariyam Yerzhanova ist Software Engineer bei Accso. Ihre aktuellen Interessengebiete und Expertisen liegen im Bereich des Domain-Driven Design und den daraus resultierenden domänenzentrierten Architekturen. Diese Leidenschaft spiegelt sich nicht nur in ihrer täglichen Arbeit wider, sondern auch in ihrem Bestreben nach kontinuierlicher Weiterbildung und persönlicher Weiterentwicklung, was ihr nachhaltiges Engagement in diesen Fachgebieten unterstreicht.

Funktionale Eleganz oder objektorientierte Struktur: Anemic u. Rich Domain Model