Les ateliers de relecture de mon livre consacré à la programmation fonctionnelle ont démarré en janvier. Découvrez Practical FP !
Retour
Domain-driven design
Domain-driven design
Une codebase où tout dépend de tout, c’est des régressions qu’on ne comprend pas, des bugs en prod, des refactos qui virent au cauchemar et au final beaucoup d’argent perdu. Le Domain-driven design apporte des réponses sur ce point précis car il travaille en premier lieu la modularité du système d’information. Oui, il n’y a qu’une seule planète Terre, mais on peut dresser une infinité de cartes pour la décrire : on peut vouloir décrire la densité de population, les ressources en minerai de fer, les courants marins ou bien encore la topologie (quel pays jouxte quel pays, et là ça pique un peu les yeux). Aucune carte ne suffit à décrire la réalité, aucune n’est "vraie", mais chacune constitue une modélisation utile de la Terre dans la poursuite d'un objectif précis. Là réside la notion centrale de "bounded context", que nous aborderons au travers de nombreuses interactions ludiques jusqu’à en acquérir l’intuition, au fond très simple. Nous procéderons également à l’étude approfondie d’un cas pratique (au choix parmi 3 dans des domaines différents), afin de rendre concrets les apprentissages du DDD stratégique et tactique, jusqu’à la mise en œuvre d’une architecture hexagonale.
Plan de cours
1DDD stratégique : à la recherche des bounded contexts
1.1L'importance des mots
1.2Ubiquitous language
1.3Des modules, pour quoi faire ?
1.4Bounded contexts et premières heuristiques
1.5Domaine vs. contextes
1.6Anti-heuristiques
1.7Conséquences sur l'organisation des équipes
1.8Acheter ou développer ?
2DDD tactique : de la mise en œuvre d'une stratégie
2.1Déploiement en microservices
2.2Communication événementielle (EDA)
2.3Le charme discret du monolithe modulaire
2.4Event Sourcing & CQRS
2.5Architecture hexagonale
2.5.1Inversion et injection de dépendances
2.5.2Lignes directrices de design d'API
2.5.3Functional core, imperative shell
2.6Patterns tactiques
2.6.1Value objects et entités
2.6.2Aggregates
2.6.3Repositories
2.6.4Services
3Étude de cas approfondie (1 domaine au choix parmi 3)
Modalités
Pour managers produit & tech + développeurs
Tout langage typé (JavaScript/TypeScript, Java, C#…)
La connaissance usuelle d'un langage de programmation est requise
50% théorique / 50% pratique
Modulable de 2 à 3 jours
3 à 10 apprenants
Sur site ou à distance
Un avant-goût
Quelques articles afin de vous familiariser d'ores et déjà avec le sujet :
Prix
Le prix inter-entreprises s'applique jusqu'à 3 apprenants d'une même entreprise. Au-delà, un tarif intra-entreprise dégressif vous sera proposé.
1 800 € H.T. / apprenant (format 2 jours)2 200 € H.T. / apprenant (format 3 jours)