Eine Referenz für Domain-Driven Design

the next big thing  –  16 Kommentare

Wer sich mit Domain-Driven Design (DDD) beschäftigt, dem begegnen regelmäßig eine ganze Reihe von Fachbegriffen. Von Eric Evans gibt es dazu einen guten Überblick, der nun auch in einer deutschen Fassung vorliegt.

Domain-Driven Design ist eine Vorgehensweise in der Softwareentwicklung, die das Problem der interdisziplinären Kommunikation adressiert: Die wenigsten Projekte kommen nämlich ohne diese aus, allerdings funktioniert sie auch selten. Da Entwickler und Fachleute mit unterschiedlichen Terminologien arbeiten, gibt es Verständnisprobleme.

Das ist vor allem ein sprachliches Problem (und mit sprachlich ist in dem Fall nicht die Programmiersprache gemeint). DDD hilft, diese Barriere zu überbrücken, indem es Entwicklern und Fachleuten ein Regelwerk an die Hand gibt, wie man zu einem gemeinsam Verständnis und dadurch auch zu einem gemeinsamen Modell der zugrunde liegenden Domäne gelangt.

CRUD ist ungeeignet für die fachliche Modellierung

Für Entwickler bedeutet das, sich teilweise von lieb gewonnenen Denkmustern zu verabschieden und sich aus der eigenen Komfortzone heraus zu bewegen, beispielsweise, indem man sich von CRUD (Create, Read, Update and Delete) als Werkzeug zur Modellierung von Daten verabschiedet. CRUD ist als Ausgangsbasis für das Entwickeln eines Modells aus fachlicher Sicht nicht nur ungeeignet, sondern sogar gefährlich.

Leider fällt vielen Entwicklern der Einstieg in DDD schwer, da es zumindest auf den ersten Blick schwer zu greifen ist und unglücklicherweise häufig auch noch mit CQRS (Command-Query-Responsibility-Segregation) und Event-Sourcing in einen Topf geworfen wird, obwohl diese Konzepte nicht zwingend mit DDD verbandelt sind: Sie ergänzen einander nur zufälligerweise gut.

Einen Überblick, was die Konzepte bedeuten und wie sie zusammenhängen, liefert der Artikel "DDD, Event-Sourcing und CQRS" im Blog des IT-DIenstleisters Maiborn-Wolff.

Eine Referenz für DDD

Als Referenz speziell für die Fachbegriffe von DDD hat Eric Evans, der den Begriff übrigens ursprünglich geprägt hat, ein PDF veröffentlicht, das als Nachschlagewerk sehr hilfreich ist. Dieses Werk hat Heise-Developer-Blog-Kollege Eberhard Wolff gemeinsam mit Michael Plöd, Sonja Scheungrab und Christian Stettler nun ins Deutsche übersetzt. Die Links zum Download finden sich auf der zugehörigen Webseite.

tl;dr: Der Einstieg in DDD fällt häufig schwer, weil dessen Terminologie von DDD an sich schwer verständlich und zunächst verwirrend wirkt. Abhilfe schaffen ein anschaulicher Einstieg und eine gute Referenz.