Domain Driven Design (DDD) führt die Konzepte Aggregate, Aggregate-Root und Repository ein. Wenn man diese Konzepte ernst nimmt, stellt man fest, dass viele Dinge, die man sich im Kampf in der Arbeit mit JPA angewöhnt hat, nicht wirklich akzeptabel sind. Mehr noch, es werden sogar ganze Features von JPA überflüssig oder zumindest wesentlich weniger wichtig.
In diesem Vortrag stelle ich vor, welche Auswirkungen DDD auf ein Objekt-Modell hat, und wie dies massiv die Komplexität reduziert. Wir werden sehen, wie es Integrationstests vereinfacht und ganze Kategorien von Fehlern vermeidet, die aktuell in sehr vielen Datenbankanwendungen vorhanden sind.
Diese Designentscheidungen eröffnen schließlich auch noch die Möglichkeit über die Vor- und Nachteile von Foreign-Keys nachzudenken, um diese gezielter und bewusster einsetzen zu können.
Das beschriebene Vorgehen ist integraler Bestandteil der Architektur von Spring Data JDBC und in den letzten ca. 10 Minuten werden wir dies nutzen, um uns das Ganze in der Praxis anzuschauen.
Über Jens Schauder
Jens Schauder hat vor unglaublich langer Zeit auf einem in Assembler programmierbaren Tischrechner angefangen zu programmieren. Nach fast 20 Jahren als Consultant für meist große Konzerne, hat er es 2017 geschafft sich beim Spring Data Team ein zu schleichen. Dort arbeitet er meist an den Modulen Commons, JPA und JDBC, erzählt davon auf Konferenzen oder hilft anderen Entwicklern auf Stackoverflow.
Aufzeichnung