Qu'est-ce que la conception axée sur le domaine? [fermé]
J'ai donc reçu cette question de l'un des développeurs de mon équipe: Qu'est-ce que le design piloté par le domaine? Je pourrais bien sûr pointer vers le livre D'Evans, mais est-ce réellement une réponse?
Comment expliquez-vous DDD en quelques phrases aux ingénieurs logiciels juniors de votre équipe?
7 réponses
Je dirais que cette pratique favorise la concentration de vos efforts sur l '"espace problème" plutôt que sur l' "espace solution". Conduire une solution émergente (la conception) en étudiant et en apprenant vraiment à connaître et à comprendre le domaine. L'une des pratiques (tirée de XP) serait l'écriture d'histoires qui se produisent dans le domaine du problème. À partir de ceux-ci, vous pouvez identifier vos cas d'utilisation et vos objets pour votre conception. Ils "émergent" et vous disent ce qui doit être dans la solution, et comment ils devront interagir les uns avec les autres.
InfoQ a un eBook gratuit:
Conception Pilotée Par Domaine Rapidement
C'est une bonne lecture avec beaucoup d'exemples.
Dans le processus de découverte du "domaine", vous formez un langage commun, que les développeurs et toutes les autres parties prenantes du projet comprennent.
Le modèle de domaine et son "jargon" sont assez observables dans le code source du produit fini. C'est au moins mon expérience
Une partie importante de DDD est le langage dit omniprésent; c'est-à-dire parler la même langue que les experts en affaires. Et faites votre code / architecture de sorte qu'il reflète ce langage pour éviter les problèmes d'impédance.
Essayer de comprendre ce qu'est le logiciel que vous écrivez et refléter cette compréhension dans le modèle.
La conception axée sur le domaine consiste à gérer la complexité d'une application dans le modèle de domaine où elle peut le plus facilement être distillée.
C'est très difficile à décrire en quelques phrases, mais je recommanderais le livre InfoQ comme une bonne introduction. J'ai aussi entendu parler de beaucoup de gens qui font un club de lecture avec le livre DDD D'Evans qui a beaucoup aidé à le comprendre.
Pour moi est le niveau suivant de OOD / OOP où l'encapsulation est tout au sujet de l'espace de problème, tel que décrit et compris par les utilisateurs, et pas tellement sur l'implémentation technique.