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). DDD est une approche fondamentale de conception logicielle qui permet de résoudre des problèmes complexes en alignant l'architecture du système sur une compréhension approfondie et partagée du domaine métier. En intégrant les concepts autour de DDD, les participants apprendront à :
Garantir la qualité et la pérennité du code Le DDD est une pratique clé du Software Craft qui vise à construire un code propre, lisible, et beaucoup plus facile à maintenir pour accueillir les évolutions. La qualité interne du système est ainsi renforcée, améliorant la maintenabilité et l'évolutivité à long terme.
Booster la productivité et l'agilité business La mise en œuvre d'un code de haute qualité permet des bénéfices business quantifiables. Les organisations dotées d'un code sain bénéficient d'une vitesse de développement deux fois plus rapide* et peuvent réduire l'incertitude des délais de réalisation par neuf*. En gérant la dette technique de manière proactive, qui gaspille en moyenne 23 % à 42 % du temps de développement, l'organisation peut augmenter son efficacité de livraison de fonctionnalités de +25 %.*
Réduire les risques et les coûts L'alignement du code avec le métier et l'adoption de bonnes pratiques permettent de réduire les anomalies : un code de haute qualité présente 15 fois moins de défauts que le code de mauvaise qualité ("Red Code"). De plus, en se concentrant sur la simplification et la consolidation du code, vous limitez les risques de duplication de code.
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.
Tactical DDD
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.
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