Conception pilotée par le domaine Simon Laroche: PCMS Ernst Perpignand: Pyxis Technologies
Pourquoi ?
Développer du logiciel c'est complexe
On s'améliore
Alors, pourquoi sommes nous ici ?
Apporter une valeur ajoutée aux utilisateurs
Résoudre problématiques complexes du métier
Le métier des clients bien sûr
Modèle du métier
Abstraction utile
Documentation != Modèle
Langage omniprésent Le modèle est le code. Le code est le modèle. Le modèle est le code. Le code est le modèle. Le modèle est le code. Le code est le modèle…
Différents langages
Même langage, différents contextes
La grande bibliothèque
Design calqué sur le modèle
Entités
Objets Valeur
Agrégat
Dépôts
Services
Expliciter les concepts
Spécifications
Fonctions sans effets secondaires ou Séparer les requête des commandes
Encore une démo...
Design Stratégique Un modèle unique pour un domaine complexe est souvent illusoire
Contextes
Cartographier les contextes et leur modèle de collaboration
Quel est le domaine central ? Une question d'affaire !
Supposons... La motivation principale pour construire le système est la suivante « C’est un marché concurrentiel. Si on peut trouver l’itinéraire optimal, cela se traduit directement dans nos profits. De plus, cela nous permet d’attirer et de garder nos clients. »
Domaine Central Router et réserver un envoi Modifier l’itinéraire d’un envoi en transit à la demande du client Déterminer l’itinéraire le plus rapide ou le moins coûteux Recherche parmi les horaires fourni par des tiers parti Émettre des bons de commandes pour l’embarquement ou la décharge d’un cargo Facturer les clients
Toutefois, si... La motivation est la suivante – « Nos prix et exécutions sont comparables au reste du marché » – « Nous fournissons un service très convivial. Nous nous occupons de toute la paperasse correctement, en temps et lieu. Si un problème survient nous nous en occupons promptement sans poser de questions. Et c’est pareil pour les demandes de changements. Ce sont les raisons pour lesquelles nous gagnons et retenons nos clients. »
Domaine Central Router et réserver un envoi Modifier l’itinéraire d’un envoi en transit à la demande du client Déterminer l’itinéraire le plus rapide ou le moins coûteux Recherche parmi les horaires fourni par des tiers parti Émettre des bons de commandes pour l’embarquement ou la décharge d’un cargo… Facturer les clients
Conclusion Construire la carte des contextes Focaliser sur le domaine central pour l’application du DDD Déterminer les parties qui bénéficieront d’une autre approche que le DDD Pousser les conversions en périphérie
Ressources Domain Driven Design Tackling the Complexity in the Heart of Software Cours sur la Conception pilotée par le domaine – – Outils de spécifications exécutables – GreenPepper