Formation Domain-Driven Design

Modélisez vos domaines complexes avec le Domain-Driven Design et concevez des architectures métier plus claires, robustes et évolutives.

Formation Domain-Driven Design

Description

Cette formation Domain-Driven Design vous permettra de mieux modéliser la complexité métier, d’aligner développeur·se·s et expert·e·s métier autour d’un langage commun, et de concevoir des architectures plus cohérentes, maintenables et évolutives.

Pendant 2 jours, vous apprendrez à :

  • Clarifier et découper la complexité métier avec le DDD stratégique
  • Construire un modèle métier robuste avec aggregates et invariants
  • Implémenter une architecture évolutive alignée sur le domaine

Public

Cette formation s’adresse aux équipes qui veulent dépasser les limites d’une approche purement technique pour remettre le domaine au centre des décisions de conception.

Les objectifs

  • Découvrir les principes du Domain-Driven Design stratégique et tactique
  • Identifier les sous-domaines, le Core Domain et les bounded contexts
  • Construire une context map adaptée aux relations entre contextes
  • Modéliser un domaine riche avec entities, value objects et aggregates
  • Implémenter une architecture DDD modulaire et testable
  • Refactorer progressivement un modèle anémique vers un modèle métier plus expressif

Pré-requis

  • Avoir une expérience concrète en développement orienté objet
  • Être à l’aise avec les bases de la conception logicielle
  • Ordinateur portable à apporter

Le programme de la formation Domain-Driven Design

Jour 1 — Modélisation métier & DDD stratégique

  • Introduction rapide : pourquoi Domain-Driven Design ?
    • Limites des architectures techniques
    • Complexité métier vs complexité technique
    • Quand utiliser DDD (et quand éviter)
  • Quand ne PAS faire du Domain-Driven Design
    • CRUD simple
    • Domaine générique
    • Startup early stage / time-to-market critique
    • Petite équipe ou faible complexité métier
    • Risques d’over-engineering
  • Big Picture Event Storming
    • Principe et objectifs
    • Événements métier
    • Commandes et acteurs
    • Vue globale du système
  • Subdomains & Core Domain
    • Core vs Supporting vs Generic
    • Identifier ce qui crée de la valeur
    • Priorisation métier
    • Détection de la complexité
  • Ubiquitous Language & collaboration métier
    • Construire un langage partagé
    • Résoudre les conflits de vocabulaire
    • Collaboration dev / métier
    • Facilitation des ateliers
  • Bounded Contexts
    • Définition d’un bounded context
    • Frontières de cohérence
    • Découpage par modèle métier
    • Erreurs fréquentes
  • Context Map
    • Customer / Supplier
    • Partnership
    • Conformist
    • Anti-corruption layer
    • Shared kernel
    • Choisir la bonne relation

Mises en pratique :

  • Big Picture Event Storming sur un domaine métier commun
  • Identification des événements métier principaux
  • Découverte collaborative des sous-domaines
  • Identification du Core Domain
  • Construction du Ubiquitous Language partagé
  • Création du glossaire métier
  • Découpage en Bounded Contexts par groupes
  • Débrief croisé et comparaison des découpages
  • Construction de la Context Map complète
  • Définition des relations entre contexts
  • Consolidation du modèle métier global

Jour 2 — DDD tactique : Aggregates, Architecture hexagonale et Implémentation

  • Entities vs Value Objects
    • Distinction conceptuelle
    • Égalité par valeur
    • Immutabilité
    • Modèle métier expressif
  • Aggregates
    • Aggregate root
    • Consistency boundary
    • Invariants métier
    • Taille d’un aggregate
    • Mauvais aggregates fréquents
  • Patterns tactiques du Domain-Driven Design
    • Entities
    • Value Objects
    • Aggregates
    • Domain Services
    • Factories
    • Repositories
  • Architecture Domain-Driven Design
    • Architecture en couches DDD
    • Clean Architecture / Hexagonale
    • Monolithe modulaire
    • Microservices orientés domaine
    • Anemic vs Rich Domain Model
  • Communication entre Bounded Contexts
    • Domain events
    • API synchrones
    • Event-driven architecture
    • Saga orchestration
    • Consistance éventuelle
  • Refactoring vers Domain-Driven Design
    • Identifier un modèle anémique
    • Code smells DDD
    • Migration progressive
    • Strangler pattern
  • Tests du domaine
    • Tests d’aggregates
    • Tests d’invariants métier
    • Isolation du domaine
    • Tests expressifs

Mises en pratique :

  • Identification des Entities et Value Objects du modèle
  • Design des aggregates et définition des invariants
  • Découpage des aggregates trop volumineux
  • Implémentation des aggregates du domaine
  • Création des value objects immuables
  • Implémentation des repositories
  • Organisation du projet par bounded context
  • Mise en place d’une architecture DDD modulaire
  • Communication entre contexts via domain events
  • Refactoring d’un modèle anémique vers modèle riche
  • Ajout des invariants métier dans les aggregates
  • Écriture de tests unitaires du domaine
  • Implémentation complète du modèle fil rouge
  • Feedback collectif et refactoring final

Télécharger le programme

FAQ

Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié Qualiopi, ce qui permet la prise en charge par des organismes comme Pôle emploi, votre OPCO ou encore le CPF (Compte Personnel de Formation) pour certaines formations.

Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?

Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.

Voici une journée type :

  • 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
  • 9h30 : la formation commence
  • 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
  • 14h : reprise de la formation
  • 18h : fin de la journée

8 raisons de participer à une formation Human Coders

  • Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1829 sessions réalisées). 99% des participants se disent satisfaits de nos formations
  • Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
  • Catalogue de formations complet : 230 formations au catalogue, de quoi vous accompagner sur tout vos projets
  • Écosystème dynamique : Nous accompagnons les dev depuis 14 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
  • Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
  • Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
  • Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012