La conception pilotée par le domaine est une méthodologie et une prescription de processus pour le développement de systèmes complexes dont l'objectif est de faire correspondre les activités, les tâches, les événements et les données d'un domaine de problèmes aux artefacts technologiques d'un domaine de solutions.
L'accent de la conception pilotée par le domaine est mis sur la compréhension du domaine du problème afin de créer un modèle abstrait du domaine du problème qui peut ensuite être mis en œuvre dans un ensemble particulier de technologies. La conception pilotée par le domaine, en tant que méthodologie, fournit des lignes directrices sur la manière dont ce développement de modèle et de technologie peut aboutir à un système qui répond aux besoins des personnes qui l'utilisent tout en étant robuste face aux changements dans le domaine du problème.
Le processus de conception pilotée par le domaine implique la collaboration entre les experts du domaine, c'est-à-dire les personnes qui connaissent le domaine du problème, et les experts en conception/architecture, c'est-à-dire les personnes qui connaissent le domaine de la solution. L'idée est de disposer d'un modèle commun avec un langage commun, de sorte que lorsque les personnes de ces deux domaines différents, avec leurs deux perspectives différentes, discutent de la solution, elles discutent en fait d'une base de connaissances commune avec des concepts communs.
L'absence d'une compréhension partagée du domaine du problème 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 qui permet de remédier à cet obstacle.
C'est plus que d'avoir un modèle d'objet. L'accent est mis sur la communication partagée et l'amélioration de la collaboration afin de découvrir les besoins réels dans le domaine du problème et de créer une solution appropriée pour répondre à ces besoins.
Conception pilotée par le domaine : Les bons et les mauvais côtés fournit un bref aperçu avec ce commentaire :
DDD permet de découvrir l'architecture de haut niveau et d'informer sur les mécanique et dynamique du domaine que le logiciel doit reproduire. reproduire. Concrètement, cela signifie qu'une analyse DDD bien faite minimise les malentendus entre les experts du domaine et les architectes de logiciels. logiciels et réduit le nombre de demandes de changement coûteuses. de changement. En divisant la complexité du domaine en contextes plus petits, DDD évite de forcer les architectes de projet à concevoir un objet gonflé. modèle objet surdimensionné, qui fait perdre beaucoup de temps à l'élaboration des détails d'implémentation, en partie parce que le nombre d'entités à traiter entités à traiter dépasse souvent la taille des tableaux blancs des salles de conférence.
Voir aussi cet article Conception pilotée par le domaine pour l'architecture des services qui fournit un court exemple. L'article fournit la description succincte suivante de la conception pilotée par le domaine.
La conception pilotée par le domaine préconise une modélisation basée sur la réalité de l'environnement. des affaires, en fonction de nos cas d'utilisation. Comme elle vieillit et que le le niveau d'engouement diminue, beaucoup d'entre nous oublient que l'approche DDD aide vraiment à aide vraiment à comprendre le problème en question et à concevoir des logiciels en fonction la compréhension commune de la solution. Lors de la création d'applications, DDD parle des problèmes comme de domaines et de sous-domaines. Elle décrit les étapes/domaines indépendants des problèmes en tant que contextes délimités. un langage commun pour parler de ces problèmes et ajoute de nombreux concepts techniques, comme les entités, les objets de valeur et les règles de racine agrégées soutenir la mise en œuvre.
Martin Fowler a écrit un certain nombre d'articles dans lesquels la conception pilotée par le domaine est mentionnée en tant que méthodologie. Par exemple, cet article, BoundedContext fournit un aperçu du concept de contexte délimité du développement piloté par le domaine.
A l'époque, on nous conseillait de construire un modèle unifié de toute l'entreprise. de toute l'entreprise, mais DDD reconnaît que nous avons appris que "l'unification totale l'unification totale du modèle de domaine pour un grand système ne sera pas faisable ou rentable" 1 . Ainsi, au lieu de cela, DDD divise un grand système en contextes délimités, chacun d'entre eux pouvant avoir un modèle unifié. essentiellement une façon de structurer les modèles canoniques multiples.