Modele ddd

Langage omniprésent est le terme Eric Evans utilise dans Domain Driven Design pour la pratique de la construction d`un langage commun et rigoureux entre les développeurs et les utilisateurs. Cette langue doit être basée sur le modèle de domaine utilisé dans le logiciel-d`où la nécessité d`être rigoureux, puisque le logiciel ne fait pas bien face à l`ambiguïté. La conception stratégique est un ensemble de principes pour maintenir l`intégrité du modèle, la distillation du modèle de domaine et le travail avec plusieurs modèles. Couche de modèle de domaine: responsable de la représentation des concepts de l`entreprise, des informations sur la situation de l`entreprise et des règles d`entreprise. État qui reflète la situation de l`entreprise est contrôlé et utilisé ici, même si les détails techniques de stockage sont déléguées à l`infrastructure. Cette couche est le cœur des logiciels d`entreprise. C`est l`un de ces anti-modèles qui a été autour depuis assez longtemps, mais semble avoir une Poussée particulière à l`heure actuelle. Je discutais avec Eric Evans à ce sujet, et nous avons tous deux remarqué qu`ils semblent devenir plus populaires. En tant que grands boosters d`un modèle de domaine approprié, ce n`est pas une bonne chose. En outre, vous devez disposer d`entités toujours valides (voir la section conception des validations dans la couche de modèle de domaine) contrôlée par des racines agrégées (entités racine). Par conséquent, les entités ne doivent pas être liées aux vues du client, car au niveau de l`interface utilisateur, certaines données peuvent toujours ne pas être validées.

C`est pour cela que le ViewModel est pour. Le ViewModel est un modèle de données exclusivement pour les besoins de couche de présentation. Les entités de domaine n`appartiennent pas directement au ViewModel. Au lieu de cela, vous devez traduire entre ViewModels et les entités de domaine et vice versa. Dans ces jeunes jours, il nous a été conseillé de construire un modèle unifié de l`ensemble de l`entreprise, mais DDD reconnaît que nous avons appris que «l`unification totale du modèle de domaine pour un grand système ne sera pas faisable ou rentable» [1]. Au lieu de cela, DDD divise un grand système en contextes limités, chacun pouvant avoir un modèle unifié-essentiellement un moyen de structurer des modèles MultipleCanonicalModels. Une autre façon de voir cela est l`autonomie. Si un microservice doit s`appuyer sur un autre service pour servir directement une demande, il n`est pas véritablement autonome. J`espère que je vous ai encouragé à donner à DDD un essai. Happy DDD-ING;-) Si nous connaissons notre racine agrégée, alors il est facile de commencer la refactorisation.

Toutes les opérations qui modifient l`état de l`agrégat doivent être à l`intérieur. Nous devons donc changer de statut et ajouter des méthodes de commentaire du service à la question. Lorsque la couche de présentation s`exécute dans un espace mémoire distinct, la couche d`application agit également en tant que médiateur entre la couche de présentation et la couche de domaine. La couche de présentation traite généralement des représentations sérialisables d`un objet de domaine ou d`objets de domaine (objets de transfert de données ou DTO), généralement un par «vue». Si celles-ci sont modifiées, la couche de présentation renvoie toutes les modifications apportées à la couche d`application, ce qui détermine à son tour les objets de domaine qui ont été modifiés, les charge à partir de la couche de persistance, puis transmet les modifications apportées à ces objets de domaine. L`exemple le plus facile à expliquer qui me vient à l`esprit est le client. Conformément aux principes mentionnés précédemment, ignorance de persistance et ignorance de l`infrastructure, la couche d`infrastructure ne doit pas «contaminer» la couche de modèle de domaine.

About admin

Site admin (Colin Birney)
Bookmark the permalink.

Comments are closed