XTREM T.D.D. - Le software craftsmanship en pratique

Formation inter-entreprise

À qui s'adresse la formation?

Ce cours est destiné aux développ.euse.eur.s, ayant une réelle expérience professionnelle d’au moins 2 ans:

  • Écrivant couramment l’un des langages objet suivants: Java ou C#
  • Capables d’écrire et d’exécuter des tests unitaires à partir d’un framework (JUnit, XUnit)

Niveau atteint

Spécialisation

Durée

2,00 jour(s)

Langues(s) de prestation

FR

Prochaine session

Prérequis

La formation impliquera l’écriture intensive de codes.
Pour cela, il est absolument nécessaire de:

  • Être suffisamment à l’aise, sans être un.e expert.e, dans le codage avec un des langages suivants: Java ou C#
  • Être capable de créer un projet, builder son code source et exécuter des cas de tests dans son environnement de développement

De plus, apporter son propre ordinateur portable peut être un plus, cela pour être le plus à l’aise avec son environnement de développement

Objectifs

  • Améliorer vos techniques de développement et de design afin de créer du code bien conçu, robuste et maintenable
  • Acquérir des techniques et pratiques immédiatement applicables à tout contexte de développement, base de code nouvelle ou existante
  • Comprendre les principes du Software Craftsmanship et leurs implications au quotidien

A l’issue de la formation, vous serez capable de:

  • Écrire du "code propre" (clean code), facile à comprendre, à maintenir et adapter
  • Mettre en pratique l’approche Test-Driven Development (TDD): utiliser les tests comme base de conception et de création de son code
  • Savoir définir les contours des tests et leurs responsabilités
  • Ecrire des tests exprimant les comportements fonctionnels attendues et non les implémentations techniques
  • Tester et améliorer en continue (refactoring) votre code
  • Augmenter votre productivité grâce à des techniques de refactoring automatisées démontrées
  • Faciliter des sessions d’alignement autour des spécifications

Contenu

  • Utilisation avancée du Test-Driven Design (TDD) à partir d’un code existant et nouveau
  • Les Principes du Clean Code et d’une bonne conception
  • Utiliser le T.D.D comme outil pour guider l’implémentation
  • Utiliser des métriques pour évaluer la qualité du code
  • Apprendre comment communiquer avec ses co-équipiers et travailler comme une réelle "équipe" (mob) pour résoudre des problèmes complexes
  • Mettre à l’épreuve la qualité de vos tests grâce au "mutation testing"
  • Utilisation de certains paradigmes fonctionnels: transparence référentielle, immutabilité, monades, etc.
  • Mettre à l’épreuve ses règles métier grâce aux "tests basés sur les propriétés" (property-based testing)
  • Utiliser l’exemple mapping pour mettre à l’épreuve les règles métier et déterminer avec les stakeholders des cas d’exemples concrets
  • Mise en pratique de la "Clean architecture" (principalement Use Cases)

Points abordés

Software craftmanship, TDD, Clean code, Programmation fonctionnelle, Test, Conception logicielle, Architecture logicielle, software design, business rules, règles métier,Mob Programming, Strangler Pattern, Fight Primitive Obsession, Monads, Mutation Testing, Sprout Technique, Test Data Builders, Factory Pattern, Example Mapping, Property-Based Testing, Exceptions vs Errors, Immutability, Fluent assertions, IDE Productivity Tips, Pure functions, Clean Architecture, SOLID principles

Méthodes pédagogiques

  • Travail sur une base de code commune, pour pratiquer et apprendre ensemble, comme un véritable "bande" (mob).
  • Un espace game sous forme de jeu de cartes illustrées spécialement conçu pour cette occasion, définissant le fil rouge de la formation.

Évaluation

L’évaluation sera réalisée de manière continue, au fil des exercices

Certificat, diplôme

Une attestation de participation sous format électronique sera envoyée aux participants à l’issue de la formation

Mode d'organisation

Avant la formation:
Il est recommandé de prévoir de prendre son propre ordinateur portable. Des instructions seront communiquées pour préparer l’environnement.

Pendant la formation:
Les collations et boissons sont prévues à l’accueil et pour les pauses.
Pour la pause déjeuner, un repas ensemble est également inclus (restaurant à proximité)

Informations supplémentaires

Le nombre total de places est limité à 8, soit 4 places en Java et 4 autres en C#.

Le but est de maximiser le potentiel de chacune et chacun dans ce contexte et le volume de Savoir à transmettre.