Quelqu'un peut-il expliquer (en termes succincts) en quoi consiste exactement la conception pilotée par domaine? Je vois beaucoup le terme mais je ne comprends vraiment pas de quoi il s'agit ni à quoi il ressemble. En quoi diffère-t-il de la conception non pilotée par domaine?
De plus, quelqu'un peut-il expliquer ce qu'est un objet de domaine? En quoi le domaine diffère-t-il des objets normaux?
domain-driven-design
Calanus
la source
la source
Réponses:
ÉDITER:
Comme cela semble être un résultat optimal sur Google et ma réponse ci-dessous ne l'est pas, veuillez vous référer à cette bien meilleure réponse:
https://stackoverflow.com/a/1222488/1240557
VIEILLE RÉPONSE (pas si complète :))
De: Domain Driven Design par Eric Evans.
Ce livre décrit très bien DDD.
Inscrivez-vous pour télécharger un résumé du livre , ou téléchargez le résumé directement .
la source
La conception pilotée par domaine est une méthodologie et une prescription de processus pour le développement de systèmes complexes dont l'objectif est de mapper les activités, les tâches, les événements et les données d'un domaine problématique dans les artefacts technologiques d'un domaine de solution.
La conception pilotée par domaine met l'accent sur la compréhension du domaine problématique afin de créer un modèle abstrait du domaine problématique qui peut ensuite être implémenté dans un ensemble particulier de technologies. La conception pilotée par le domaine en tant que méthodologie fournit des directives sur la façon dont ce développement de modèle et le développement technologique peuvent aboutir à un système qui répond aux besoins des personnes qui l'utilisent tout en étant robuste face aux changements dans le domaine problématique.
Le côté processus de la conception pilotée par le domaine implique la collaboration entre les experts du domaine, les personnes qui connaissent le domaine problématique et les experts en conception / architecture, les personnes qui connaissent le domaine de la solution. L'idée est d'avoir un modèle partagé avec un langage partagé de sorte qu'en tant que personnes de ces deux domaines différents avec leurs deux perspectives différentes discutent de la solution, elles discutent réellement d'une base de connaissances partagée avec des concepts partagés.
L'absence d'une compréhension commune du domaine problématique entre les personnes qui ont besoin d'un système particulier et les personnes qui conçoivent et mettent en œuvre le système semble être un obstacle majeur à la réussite des projets. La conception pilotée par le domaine est une méthodologie pour remédier à cet obstacle.
C'est plus que d'avoir un modèle objet. L'accent est vraiment mis sur la communication partagée et l'amélioration de la collaboration afin que les besoins réels dans le domaine problématique puissent être découverts et une solution appropriée créée pour répondre à ces besoins.
Conception basée sur le domaine: le bien et le défi fournit un bref aperçu de ce commentaire:
Consultez également cet article Conception pilotée par domaine pour l'architecture de services qui fournit un court exemple. L'article fournit la description miniature suivante de la conception pilotée par domaine.
Martin Fowler a écrit un certain nombre d'articles dans lesquels la conception pilotée par domaine en tant que méthodologie est mentionnée. Par exemple, cet article, BoundedContext , fournit une vue d'ensemble du concept de contexte borné de Domain Driven Development.
la source
Vous NE POUVEZ COMPRENDRE QUE la conception pilotée par domaine en comprenant d'abord les éléments suivants:
Abattu d' ici
la source
Voici un autre bon article que vous pouvez consulter sur la conception pilotée par domaine . si votre demande est quelque chose de sérieux qu'une affectation au collège. Le principe de base est de tout structurer autour de vos entités et d'avoir un modèle de domaine solide. Faites la différence entre les services qui fournissent des éléments liés à l'infrastructure (comme l'envoi d'e-mails, la persistance de données) et les services qui font réellement des choses qui sont vos exigences commerciales principales.
J'espère que cela pourra aider.
la source
Comme dans TDD et BDD, vous / l'équipe vous concentrez plus sur le test et le comportement du système que sur la mise en œuvre du code.
De la même manière lorsque l'analyste système, le propriétaire du produit, l'équipe de développement et bien sûr le code - entités / classes, variables, fonctions, processus d'interface utilisateur communiquent en utilisant le même langage, appelé Design piloté par domaine
DDD est un processus de pensée. Lors de la modélisation d'une conception de logiciel, vous devez garder le domaine / processus métier au centre de l'attention plutôt que les structures de données, les flux de données, la technologie, les dépendances internes et externes.
Il existe de nombreuses approches pour modéliser systerm en utilisant DDD
Objet de domaine:
En termes très naïfs, un objet qui
la source
DDD (domain driven design) est un concept utile pour analyser les exigences d'un projet et gérer la complexité de ces exigences. relations il n'est pas vieux mais il a quelques problèmes:
Dans les grands projets avec des exigences complexes, cela n'est pas utile, bien qu'il s'agisse d'un excellent moyen de conception pour les petits projets.
lorsque vous n'avez affaire à aucune personne technique qui n'a pas de concept technique, ce conflit peut causer d'énormes problèmes dans notre projet.
DDD gère donc le premier problème en considérant le projet principal comme un domaine et en divisant chaque partie de ce projet en petits morceaux qui nous sont réputés dans Bounded Context et chacun d'eux n'a aucune influence sur les autres morceaux. Et le deuxième problème a été résolu avec un langage omniprésent qui est un langage commun entre les membres de l'équipe technique et les propriétaires de produits qui ne sont pas techniques mais ont suffisamment de connaissances sur leurs besoins
Généralement, la définition simple du domaine est le projet principal qui rapporte de l'argent aux propriétaires et aux autres équipes.
la source
Je crois que le pdf suivant vous donnera une vue d'ensemble. Conception pilotée par domaine par Eric Evans
REMARQUE: pensez à un projet sur lequel vous pouvez travailler, appliquez les petites choses que vous avez comprises et voyez les meilleures pratiques. Il vous aidera également à développer votre capacité à l'approche de conception d'architecture de micro-service.
la source
Je ne veux pas répéter les réponses des autres, donc, en bref, j'explique certains malentendus courants
Vous devez éviter de l'utiliser partout dans votre projet
Fondamentalement, c'est parce que cela prend trop de temps et d'efforts. Il est donc suggéré de décomposer l'ensemble du domaine en sous-domaines et de simplement l'appliquer à ceux à forte valeur commerciale. (ex pas dans un sous-domaine générique comme email, ...)
Ce n'est pas une programmation orientée objet.Il s'agit principalement d'une approche de résolution de problèmes et ( parfois ) vous n'avez pas besoin d'utiliser des modèles OO (tels que Gang of Four) dans vos modèles de domaine. Tout simplement parce que cela ne peut pas être compris par les Business Experts (ils ne connaissent pas grand-chose à Factory, Decorator, ...). Il existe même des modèles dans DDD (tels que le script de transaction, le module de table) qui ne sont pas conformes à 100% aux concepts OO.
la source