Qu’est-ce que le Domain Driven Design ?
La conception pilotée par le domaine (DDD) est une approche du développement logiciel qui met l’accent sur l’importance de la connaissance du domaine dans la conception et le développement d’applications logicielles.
La prémisse de DDD est qu’une partie importante de la complexité des systèmes logiciels provient du domaine du problème lui-même, et que cette complexité peut être minimisée en se concentrant sur la modélisation du domaine.
DDD n’est pas une technologie ou un cadre spécifique, mais plutôt un ensemble de principes et de lignes directrices qui peuvent être appliqués à tout projet de développement logiciel.
Certains des concepts clés de DDD incluent :
* Modèle de domaine : modèle conceptuel du domaine du problème qui inclut à la fois les données et le comportement.
* Logique de domaine : les règles métier qui régissent le comportement des objets dans le modèle de domaine.
* Contexte délimité : étendue limitée dans laquelle un modèle de domaine spécifique s’applique.
Les principes fondamentaux du Domain Driven Design
La conception pilotée par domaine (DDD) est une approche du développement logiciel pour des besoins complexes en connectant la mise en œuvre à un modèle évolutif. Le terme a été inventé par Eric Evans dans son livre du même nom.
Dans DDD, le domaine est d’abord modélisé indépendamment de toute implémentation. Ces modèles sont ensuite utilisés pour piloter la mise en œuvre. L’objectif est de réduire au maximum les écarts entre le modèle de domaine et le modèle de code. En les gardant proches, il devient plus facile de garder les modèles alignés au fur et à mesure que le code évolue.
Il existe trois principes fondamentaux de DDD : stratégique, tactique et opérationnel.
La conception stratégique se concentre sur la vision à long terme du système. Il définit comment le système doit se comporter pour atteindre ses objectifs. Cela inclut la modélisation non seulement de la logique métier, mais également de l’expérience utilisateur, des performances, de l’évolutivité, etc.
Les avantages du Domain Driven Design
La conception pilotée par le domaine (DDD) est une approche du développement logiciel pour les systèmes complexes. Il est basé sur les principes suivants :
1. Gardez le modèle étroitement aligné avec le domaine.
2. Exprimez le modèle dans un langage que les experts du domaine peuvent comprendre.
3. Concentrez-vous sur le comportement des objets plutôt que sur leur état.
4. Basez la conception sur une série d’interactions entre les objets.
5. Définissez chaque objet en fonction de son rôle dans l’interaction.
6. Répétez ces étapes jusqu’à ce que vous compreniez parfaitement le système.
7. Créez un vocabulaire partagé pour le domaine afin que tout le monde travaille avec les mêmes concepts et la même terminologie.
Application du Domain Driven Design
La conception pilotée par domaine (DDD) est une approche du développement logiciel pour des besoins complexes en connectant la mise en œuvre à un modèle évolutif. Le principe de la conception pilotée par le domaine est le suivant :
Mettre l’accent principal du projet sur le domaine principal et la logique du domaine
Baser des conceptions complexes sur un modèle du domaine
Initier une collaboration créative entre les experts techniques et du domaine pour affiner de manière itérative un modèle conceptuel qui traite des problèmes de domaine particuliers.
DDD tente d’analyser et de comprendre des domaines complexes, puis d’intégrer ces connaissances dans le logiciel. Il essaie également de créer un langage omniprésent au sein de l’équipe de développement – et entre les parties prenantes du développement et de l’entreprise – afin de connecter toutes les activités relatives à ce domaine. De cette façon, toutes les personnes impliquées peuvent discuter de solutions à l’aide de modèles qui reflètent fidèlement la réalité sans ambiguïté.