Qu'est-ce que Domain-Driven Design
Conception basée sur le domaine métier
Qu'est-ce que DDD
Domain-Driven Design (DDD) est une approche de développement logiciel axée sur la modélisation du domaine métier et la collaboration étroite entre développeurs et experts du domaine.
Conception Stratégique
| Concept | Description | |---------|-------------| | Bounded Context | Limites du modèle avec langage ubiquitaire | | Ubiquitous Language | Langage partagé de l'équipe et du métier | | Context Map | Carte des relations entre contextes | | Subdomain | Sous-domaine (Core/Supporting/Generic) |
Conception Tactique
| Pattern | Objectif | |---------|----------| | Entity | Objet avec identité | | Value Object | Objet valeur immuable | | Aggregate | Groupe d'entités liées | | Aggregate Root | Point d'entrée vers l'agrégat | | Repository | Accès aux agrégats | | Domain Service | Logique métier hors entités | | Domain Event | Événement dans le domaine | | Factory | Création d'objets complexes |
Types de Sous-domaines
- Core Domain — avantage concurrentiel
- Supporting Subdomain — supporte le core
- Generic Subdomain — solutions standard
Patterns d'Intégration
| Pattern | Description | |---------|-------------| | Shared Kernel | Noyau partagé entre contextes | | Customer-Supplier | Relation client-fournisseur | | Conformist | Conformité au modèle upstream | | Anticorruption Layer | Protection contre modèles externes | | Open Host Service | API publique du contexte |
Quand appliquer DDD
- Logique métier complexe
- Projet à long terme
- Accès aux experts du domaine
- Équipe prête à investir dans le design