Kurz erklärt
Domain-Driven Design (DDD) richtet Software an der Fachlichkeit aus. Entwickler und Fachleute entwickeln eine gemeinsame Sprache, und der Code bildet die Fachbegriffe ab.
Genauer
Große Systeme werden in „Bounded Contexts“ geteilt, in denen jeder Begriff eine klare Bedeutung hat („Kunde“ im Vertrieb ist etwas anderes als in der Buchhaltung). Innerhalb eines Kontexts modelliert man mit Entitäten, Wertobjekten und Aggregaten.