Conception pilotée par le domaine
La conception dirigée par le domaine (ou DDD, de l'anglais domain-driven design) est une approche de la conception logicielle fondée sur deux principes :
- les conceptions complexes doivent être basées sur une modélisation. Par exemple UML ou modèle entité-association ;
- l'accent doit être sur le domaine et la logique associée. Et à ce titre il constitue l'une des couches de l'architecture en couches (entre les couches utilisateur et infrastructure par exemple[1]).
Histoire
L'expression domain-driven design provient du titre d'un livre de Eric Evans en 2003[2].
Concepts
Contexte
Le périmètre où un mot ou phrase a une signification, le même mot peut exister dans d'autres contextes mais avec une autre signification ou ne pas exister.
Au carrefour des contextes, il faut mettre en place un langage ubiquitaire, c'est-à-dire un langage structuré autour du modèle du domaine et utilisé par tous les membres de l'équipe, aussi bien techniques que métiers[3].
Domaine
La sphère d'un métier ou activité pour lequel on développe l'application.
Chaque domaine doit dépendre du noyau, mais le noyau ne doit dépendre d'aucun domaine[4].
Modèle
Une abstraction qui décrit les concepts sélectionnés d'un domaine peut être utilisée pour résoudre les problèmes liés à ce domaine.
Références
- (en) « 6. Domain-Driven Design - Layered Architecture », sur nareshbhatia.dev (consulté le ).
- (en) « Domain-Driven Design by Eric Evans », sur dddcommunity.org, (consulté le ).
- « DDD : Domain-Driven Design (Théorie & Pratique) », sur Alex so yes, (consulté le ).
- (de) « DDD Concepts and Patterns - Distillation of the core domain », sur Opus Software AG, (consulté le ).