BDD – Behavior Driven Development
Cette formation enseigne une approche pour améliorer la communication et la compréhension des besoins afin de développer le bon produit.
L'objectif de cette formation est de maîtriser les concepts clés du Domain-Driven Design (DDD) pour aligner l'architecture logicielle sur le domaine métier. Dans un contexte d'adoption massive de l'IA, formaliser le domaine avec rigueur constitue le socle indispensable pour structurer le contexte injecté aux agents IA, prévenir l'accumulation de dette technique générative, assurer la modularité et garantir ainsi la valeur à long terme des systèmes à forts enjeux.
Aligner la tech et le métier via le langage ubiquitaire
Réduction des erreurs de compréhension, diminution des ré-exécutions et fluidification de la livraison.
Structurer l'architecture globale et délimiter les responsabilités
L'architecture faiblement couplée figure parmi les meilleurs prédicteurs statistiques de la fréquence de déploiement (DORA).
Implémenter un modèle métier robuste et maintenable
Réduction des coûts de maintenance, élimination de la duplication de code et diminution par 15 du nombre de défauts majeurs.
Garantir la pérennité et la documentation évolutive du système
Récupération de 23% à 42% du temps de développement perdu dans la dette technique et sécurisation de la transmission du savoir applicatif.
Introduction
Apercu général de Domaine-Driven Design : pourquoi DDD et à quoi ca nous sert de suivre la pratique. DDD comme un outil mental pour mieux concevoir le logiciel et mieux le faire correspondre aux besoins des utilisateurs.
Domain language
Découvrir le domain métier : comment travailler la curiosité pour mieux explorer le domaine métier et comprendre le langage utilisé.
Comprendre la notion du langage ubiquitaire ou omnipresent du métier.
La relation entre l’équipe tech et les experts du métier : une relation de partership avec des conversations dans les deux sens.
Relation entre DDD et BDD (Behavior-Driven Developement) et la complémentarité des deux pratiques pour expliciter l'implicit et mieux comprendre le métier.
Domain modeling
Collaborer avec les experts du métier pour mieux modéliser le code logiciel.
Modéliser le métier dans le code en s’appuyant sur le langage ubiquitaire.
Surpasser les modèles mentaux qu’on a pour mieux explorer et par conséquent mieux modéliser.
L'impact map pour mieux comprendre le métier (l'objectif, les acteurs, l'impact...).
Comprendre la notion d'invariant du domain pour mieux la modéliser dans le code.
Strategic DDD
Comment l'alignement de l'architecture sur les équipes (Conway’s Law) facilite le développement d'une plateforme interne de qualité (Quality Internal Platform).
Connaitre les tips et heuristiques pour identifier les bounded contexts et les pièges à éviter.
L'importance de l'isolation et l'autonomy des domaines.
Le context map comme outil pour visualiser les relations entre les bounded contexts.
Comprendre les différents patterns tactiques de DDD (entities, value objects, services, aggregates, repositories...) pour mieux les implémenter.
Connaitre la différence entre objets instanciables et injectables.
Comment les règles des object calisthenics peuvent aider à mieux implémenter les patterns tactiques.
Identifier le bruit dans le nommage
Architecture Hexagonale
Découvrir l'architecture, ses avantages et ses inconvénients
Les notions de ports et adapters, le principe de Dependency inversion, le pattern d'anti-corruption layer pour se défendre au mieux des domaines exterieurs
DDD et Living documentation
Comprendre le lien entre DDD et Living Documentation
L'annotation comme moyen d'augmenter le code pour une meilleure documentation et une meilleure compréhension.
Write tests, write code, write doc : avec la living documentation la frontière devient fine entre ces notions.
DDD et IA générative
Profiter des outils GenAI pour comprendre le métier.
Challenger l'identification des bounded contexts avec la GenAI.
Préparer au mieux le context engineering pour un meilleur apprentissage par les outils GenAI.
Cette formation s'adresse aux :
- Développeuses & développeurs
- Architectes logiciel
Souhaitant découvrir ou conforter leur connaissance et leur pratique du DDD. Elle est recommandée à toute personne impliquée dans la modernisation des systèmes existants (Legacy Code) ou la conception de nouvelles applications complexes.
Pour les devs et architectes logiciel :
Expérience en développement logiciel
Connaissance des risques liés au manque de qualité
Compréhension de la complexité technique
Connaissance en design logiciel
Compréhension des enjeux business du logiciel
Les formateurs distribueront les supports de la formation au format électronique PDF à la fin de la formation.
La formation est donnée en français ou en anglais. Les supports de formation sont en anglais. Durant la formation, nous inciterons à travailler sur des exemples de code en langage orienté objet.
Pour toute personne en situation de handicap, n’hésitez pas à nous contacter au 07 63 74 20 95 ou à formation@arolla.fr.
Par ailleurs, toutes nos formations sont accessibles en distanciel.
CTO associé Arolla
Formateur Arolla - Lead technique craft
Senior software craftsman
Formatrice et CTO Arolla
Senior software craft engineer
Coach software craft