Domain-driven Design ist ein weit verbreiteter Ansatz mit Schwerpunkt auf Verständnis der Domäne, Kommunikation mit einer allgegenwärtige Sprache, die Trennung durch "Bounded Contexts" und mehr. Die meisten Ressourcen, inklusive des Buches von Eric Evans, schlagen aber auch konkrete Implementationsmuster und Bausteine vor, die man benutzen kann, um Domain-driven Design zu implementieren: Entities, Value Objects, Services, Layered Architecture, Aggregates usw.
Wie passen diese Bausteine aber zur Objektorientierung? Sollten beispielsweise Value-Objekte getter-Methoden haben? Würde das die Kapselung nicht verletzen? Oder den Law of Demeter? Sind Services eigentlich Prozeduren? Verletzen Services die Kohäsion vielleicht? Sind Technische Bausteine wie Model, View, Controller überhaupt erlaubt?
Basierend auf Beispielen aus echten Projekten und Grundprinzipien wie Kapselung und Kohäsion erforscht dieser Vortrag, welche Domain-driven-Design-Konzepte vereinbar mit Objektorientierung sind und welche vielleicht anders eingesetzt werden müssten. Ziel ist, ein neues Design kennenzulernen, das beide Paradigmen erfolgreich kombiniert.
Vorkenntnisse
Grundkenntnisse in den Themen Objektorientierung und Domain-driven Design sind von Vorteil.
Lernziele
Teilnehmer werden lernen, wie Bausteine von Domain-driven Design interpretiert werden können, um bessere objektorientierte Software schreiben zu können.
Referent
Robert Bräutigam@robertbrautigam
ist seit 1999 als Java- und Java-Enterprise-Entwickler in Rollen vom Entwickler in Kleinprojekten bis zum Lead-Architekt in internationalen Großprojekten tätig. Er sucht nach und argumentiert leidenschaftlich für alternative, leichtgewichtige Lösungen im technischen Bereich sowie prinzipientreuem und diszipliniertem Vorgehen in der Softwareentwicklung.