• Domain-Driven Design

DE L’ESPACE DU PROBLEME A L’ESPACE DE LA SOLUTION

Dans la plupart des projets, nous sautons très souvent trop tôt sur l’espace de la solution (choix de frameworks, stacks techniques, data stores) avant même d’avoir bien compris ce qu’il fallait faire. Le logiciel n’est-il pourtant pas là pour nous aider à résoudre efficacement des problèmes métiers à la base ? Pour celles et ceux qui auraient déjà exploré certaines techniques pour découvrir le métier (comme l’Event Storming par exemple), la question se pose ensuite très vite de comment on passe du post-it au code.

Par quoi commencer ? Comment articuler ce passage délicat entre l’exploration et le code qui laisse bien des gens sur le tapis ?

Lors de cette formation de 2 jours, nous allons revoir ensemble à la fois les bases et tout le cycle du développement logiciel à la Domain Driven Design (DDD). Ceci se fera à travers un exemple concret de besoin métier que vous allez devoir découvrir en groupe, dès le premier jour. Vous utiliserez pour ce faire des techniques d’exploration et de distillation du domaine bien connues du DDD que nous vous présenterons en détail : Event Storming, Context Mapping, Example Mapping (issue du BDD) ou la reformulation, si chère à Éric Evans (le créateur du DDD).

Le second jour, vous allez vivre cette transition vers le code tout en appliquant et en découvrant au fil de l’eau un ensemble de concepts et de techniques du DDD qui nous serviront à travers la résolution de plusieurs modules/labs. Nous découvrirons en passant la forme de Test Driven Development vers laquelle nous avons convergé après 15 ans de pratiques du TDD : l’Outside-In et sa double boucle. Enfin, nous protégerons ensemble notre code métier en l’isolant de la partie technique grâce à la mise en place d’une Architecture Hexagonale (que nous vous présenterons en passant). Alors que le premier jour sera consacré à l’espace du Problème, le second sera dédié à l’espace de la Solution, mais surtout à l’articulation entre les deux.

Toutes ces notions seront découvertes à travers de nombreux ateliers interactifs animés pendant ces deux jours en mode « training from the back of the room » (i.e. c’est en faisant qu’on apprend et retient mieux les choses).


Programme

Jour 1 – Espace du problème

Introduction
• Les attentes de chacun
Domain-Driven Design a brief tour
• La genèse du DDD selon Éric Evans
• Le DDD en 2020 (vous avez dit micro services ?)
Event Storming – essential workshop
• Motivations métier pour notre cas pratique
• Découverte du workflow métier à travers les Domain Events
• Émergence des premiers contextes (Bounded Contexts + Context Map)
Example Mapping – essential workshop
• A la découverte de nos invariants métiers
• La puissance expressive et l’efficacité de l’Example Mapping
• Utilité d’un exemple et challenges associés
Modeling
• Challenge collaboratif pour trouver le bon modèle
• Confrontation des modèles vis-à-vis notre problème métier
Recap
• Depuis la motivation métier jusqu’aux modèles envisagés
• Q & A et bilan des attentes de chacun pour cette première journée

Jour 2 – Espace de la solution

Introduction
• Warm-up - Q & A
• Rappel sur la modélisation envisagée la veille
Test-first coding flow (from problem space to solution space)
• Outside-In TDD à la rescousse. Pourquoi et Comment.
Patterns tactiques du DDD en renfort • Le style fonctionnel : Value Object/Types, Closure of operations
• Zoom sur le cœur du problème (Agrégats)
architecture et patterns strategiques
• Présentation et motivation
• Implémentation d’une architecture hexagonale sur notre base de code existante
• Anti-corruption layer pattern
Recap
• Q & A et bilan des attentes de chacun après les deux jours 


Méthode pédagogique

• 80% de travaux pratiques et 20% de théorie
• Combinaison de présentations, de livecoding, de discussions, d’ateliers et d’exercices pratiques
• La formation privilégie les échanges et la collaboration de tous les participants
• Animation repose sur l’approche proposée du “training from the back of the room”


Audience

• Expert Métier
• Développeur
• Architecte

• Profils techniques doivent venir avec un laptop de développement pour des ateliers C# & Java


Livrables

• Les supports en anglais
• Les exercises


Lieu

• Le lieu de la formation -à Paris- sera communiqué un mois avant la date de la formation


Intra-Entreprises

• Sur Devis
• Durée adaptée
• Dans vos locaux
• Dates Flexibles