Domain Driven Design (DDD)
Approche de conception logicielle centrée sur le domaine métier et le langage commun entre experts métier et développeurs.
Définition
Le Domain Driven Design (DDD) est une approche de conception logicielle qui met l’accent sur la compréhension approfondie du domaine métier et la collaboration étroite entre les développeurs et les experts métier. Introduit par Eric Evans dans son livre Domain-Driven Design: Tackling Complexity in the Heart of Software (2003), le DDD utilise un langage ubiquitaire pour réduire les malentendus et favoriser une architecture logicielle alignée sur la logique métier.
Exemple concret
Imaginons une application de gestion de commandes pour une librairie en ligne. Avec le DDD, on définit des entités comme Commande, Livre, et Client, en intégrant les règles métier directement dans ces objets (par exemple, une commande ne peut être validée que si tous les livres sont en stock). Cela garantit que la logique métier est claire, centralisée et cohérente.
Avantages ou objectifs
- Alignement du code sur le métier réel.
- Réduction des ambiguïtés grâce à un langage commun.
- Amélioration de la maintenabilité et de l’évolutivité.
- Meilleure collaboration entre développeurs et experts métier.
Utilité dans une application mobile
Dans le développement mobile, le DDD permet de structurer le code autour du métier plutôt que de l’interface ou de la base de données. Par exemple, dans une application bancaire, les règles liées aux transactions, aux comptes et à la sécurité peuvent être centralisées dans le domaine, facilitant ainsi les évolutions ou les changements d’interface sans impacter la logique centrale.
À retenir
Le DDD est particulièrement utile pour les projets complexes où la compréhension du domaine est primordiale. Il ne s’agit pas uniquement d’une technique, mais d’une philosophie de conception qui exige une collaboration continue et un langage partagé entre toutes les parties prenantes.
Sources
Découvrir d'autres termes
ISO 27001
ISO 27001 est la norme internationale qui définit les exigences pour mettre en place un système de management de la sécurité de l’information (SMSI) certifiable.
Figma
Figma est un outil de design collaboratif en ligne pour créer des interfaces (UI), des prototypes interactifs et des design systems pour le web et le mobile.
UX
L’UX (User Experience) désigne l’ensemble des perceptions, émotions et interactions d’un utilisateur lorsqu’il utilise un produit ou un service numérique.

