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
Figma
Figma est un outil de conception d'interface collaboratif en ligne, utilisé pour créer des maquettes UI/UX interactives.
Flutter
Flutter est un framework open source développé par Google pour créer des applications mobiles, web et desktop avec une seule base de code.
UI
L’UI (User Interface) correspond à la partie visible d’une application avec laquelle l’utilisateur interagit : boutons, couleurs, typographies, etc.