À retenir
- Priorité absolue aux besoins et à la logique du métier.
- Collaboration étroite entre développeurs et experts du domaine.
- Code structuré pour être lisible et compréhensible par des non-techniciens du secteur.
Le DDD est une approche de conception logicielle qui place les besoins et la logique métier au cœur du développement. Plutôt que de construire un logiciel en pensant d'abord à la base de données ou à l'interface, on se concentre sur la réalité du métier (par exemple, comment fonctionne réellement une banque ou un entrepôt) pour créer un code qui en est le reflet exact.
Étymologie
Acronyme de l'anglais Domain-Driven Design (conception pilotée par le domaine). Le concept a été formalisé par Eric Evans dans son ouvrage de référence publié en 2003. Bien que le sigle DDD puisse désigner un composé chimique dans d'autres contextes, en informatique, il se réfère exclusivement à cette méthodologie de conception.
Exemples d'usage
- Dans un logiciel de gestion de bibliothèque, utiliser des termes comme
Livre,EmpruntetAdhérentdirectement dans le code, au lieu de termes techniques vagues. - Découper une application de vente en ligne en modules distincts comme le 'Catalogue', le 'Panier' et la 'Livraison', chacun ayant ses propres règles métier.
Cas d'usage
On utilise le DDD principalement pour des projets logiciels complexes où les règles métier sont nombreuses et évolutives. Il est particulièrement prisé dans l'architecture en microservices pour définir clairement les frontières entre les différents services d'un système.
Bonnes pratiques
Il est essentiel de mettre en place un Ubiquitous Language (langage omniprésent) : les développeurs et les experts métier doivent utiliser les mêmes mots pour désigner les mêmes concepts. Il faut aussi éviter de créer un modèle trop vaste et préférer le découper en 'Bounded Contexts' (contextes délimités) pour éviter les confusions.
Synonymes
Antonymes
Conseil
Si vous débutez, ne vous laissez pas impressionner par le jargon technique du DDD. Retenez surtout l'idée principale : votre code doit raconter une histoire que n'importe quel expert de votre domaine d'activité pourrait comprendre.
Questions fréquentes
Le DDD est-il indispensable pour tous les projets ?
Non, pour des applications simples ou de petits sites vitrines, le DDD peut être inutilement complexe et lourd à mettre en place.
Qu'est-ce qu'un expert métier ?
C'est une personne qui connaît parfaitement le fonctionnement d'un secteur (un comptable pour un logiciel de finance, par exemple) sans forcément être informaticien.
Est-ce un langage de programmation ?
Non, c'est une méthode de travail et d'organisation du code qui peut s'appliquer à n'importe quel langage (Java, C#, Python, etc.).