Skip to main content

Catalogue des formations

Retour au calendrier

Clean Crafter

En route vers l’artisanat logiciel

Parce qu’il n’y a pas d’agilité sans excellence technique et apprentissage continu.

Dans cette formation, les participants découvriront ce qu’est le « Software Craftsmanship », l’état d’esprit associé, et les techniques / pratiques clés pour pouvoir travailler de manière itérative et incrémentale.

Cette formation vise à aider les développeur-ses à devenir meilleurs dans la conception, l’écriture et la maintenance de code.

“Porter continuellement attention à l’excellence technique et à la qualité de la conception renforce l’agilité.”

Manifeste Agile – Principe 9

Objectifs pédagogiques

• Comprendre ce que l’on entend par « Software Craftsmanship » et les pratiques qui y sont liées.

• Être capable d’appliquer les principes « Clean code » et « S.O.L.I.D » au quotidien.

• Utiliser l’Example Mapping afin de s’aligner sur les fonctionnalités à délivrer.

Pratiquer le Test-Driven Development et comprendre qu’il ne s’agit pas d’une approche de test mais d’une approche de conception.

• Se sentir à l’aise pour refactorer du code, même du code legacy (sans tests).

• Comprendre l’importance des tests dans la production de logiciels et le développement.

Contenu de la formation

Jour 1 : Clean Coder

• Qu’est-ce que le « Software Craftsmanship » ?

  • Le manifeste pour l’artisannat logiciel
  • Les pratiques associées
  • Le jeu “Craft challenges”

• Clean Code en pratiques

  • Crappy-Driven Development kata (en utilisant l’Ensemble Programming)
  • Comment identifier des « code smells » et les remédier
  • Programmer’s Brain: Clean Code du point de vu cognitif

• Les principes S.O.L.I.D

  • Good code vs Bad Code
  • Refactoring à l’aide des principes S.O.L.I.D 

• Test-Driven Development (T.D.D) dans la vraie vie

  • Chicago school
  • Les 3 règles de T.D.D
  • Kata Roman Numeral
  • Pourquoi TDD n’est pas une approche de test

Jour 2 : Testing at Heart

• Les principes du « Clean Testing »

  • Unit Test Anti-patterns et best practices
  • Nommage et propriétés des bons Unit Tests
  • Clean Tests kata

• Designer avec T.D.D – Xtrem T.D.D kata

  • Mesurer la qualité de nos tests
    • Code coverage vs Code Quality
    • Mutation Testing
  • T.D.D et Design
    • Utiliser l’Example Mapping pour clarifier une fonctionnalité
    • Définir 1 Test List
  • Utiliser T.D.D comme « driver » de refactoring (strangler pattern)

• Comment refactorer du code Legacy

  • Trip Service kata
  • Seams, Test Data Builders, Property-Based Testing, …

Modus Operandi

Cette formation est un mélange de théorie et de pratique. Nous appliquerons chaque apprentissage sur des exemples concrets afin que chaque participant-e puisse avoir la capacité de comprendre par où commencer.

Puisque dans la réalité, nous sommes souvent amenés à travailler sur de l’existant et du code legacy, nous verrons également comment tester et refactorer du code dans ce contexte.

Les exercices pratiques sont disponibles en java et C# mais l’ensemble des concepts abordés sont agnostiques du langage utilisé au quotidien. Ainsi vous pourrez les utiliser quel que soit votre stack de développement (Typescript, .NET, Java, …)

Les participants expérimenteront « l’apprentissage par la pratique » à travers différentes activités :

• Code katas en utilisant le « Pair Programming » et le « Mob Programming »

• Ateliers permettant de stimuler l’intelligence collective

Concepts couverts

• Software Craftsmanship / manifeste

• Extreme Programming

• Clean Code

• Principes S.O.L.I.D

• Specification by Example

• Example mapping

• Test-Driven Development

• Techniques de refactoring automatisés

• Anti-patterns de Unit Testing et bonnes pratiques associées

• Mutation Testing

• Pair / Mob Programming

Informations complémentaires

Installations et matériel requis :

  • Ordinateurs des participants (au moins 1 pour 2) avec votre IDE préféré
  • Accès à Internet

Code katas en C# sur .NET 6 et java (>=17)

  • Les développeurs.ses devraient au moins se sentir à l’aise avec un de ces langages
  • Les participants.es pourront obtenir de l’aide pendant les exercices, mais nous n’aurons pas le temps de couvrir les bases de l’installation, de la compilation, de la syntaxe, etc.

Cette formation s’adresse aux développeurs.ses de logiciels qui souhaitent :

• Écrire et concevoir du code de meilleure qualité en travaillant de manière agile (itérer, incrémenter, collaborer).

Améliorer la collaboration et le partage de connaissance au sein de son équipe mais également avec toutes les parties prenantes.

• Être capable de maintenir et faire évoluer des systèmes « legacy« .

• Connaître les bases de la Programmation Orientée Objet.

• Maîtriser un langage orienté objet comme Java ou C#.

• Être capable d’écrire et d’exécuter des tests unitaires.

Durée : 2 jours

Nombre de participants : de 6 à 12 maximum

Ces formations peuvent également vous intéresser

Ils nous ont fait confiance

Cette formation nous a permis de nous aligner sur les bonnes pratiques du Software Craftsmanship que nous recommandons ...