• Refactoring Legacy Code

VAINCRE L’ADVERSITE DU LEGACY

Le code legacy règne sans partage dans les entreprises. Et pour cause, les techniques de refactoring ne sont pas vraiment enseignées à l’école. Les techniques décrites dans cette formation sont donc issues à la fois de nos expériences terrain (éprouvées dans diverses entreprises) mais aussi celles de Michaël Feathers qui ont la particularité de combiner des petits pas (baby steps) avec un attachement viscéral à ne pas « casser la prod ».

À l’issue de cette formation, vous saurez caractériser le code legacy, maîtriser les bases du refactoring et enfin comment obtenir une couverture totale de votre code avant toute modification structurelle sur celui-ci. Vous maîtriserez également le vocabulaire des codes smells qui vous permettra de mieux les identifier afin de les corriger rapidement.

Vous apprendrez comment vous organiser pour vos sessions de refactoring, que ce soit pour un simple fragment de code, ou dans le cadre d'un système d’information plus conséquent.

Vous comprendrez l’importance de la communication dans la création ou le maintien de la dette technique dans vos applications. Vous connaîtrez les techniques pour vous débarrasser des dépendances externes à votre système, tout en conservant une compatibilité avec la production. Vous ferez le tour de toutes les techniques de simulacre y compris leurs différences comportementales. Vous saurez enfin choisir le bon outillage pour vos fakes, tout en produisant des tests avec ceux-ci.

Vous expérimenterez à travers code kata, les meilleurs techniques pour casser les dépendances en toute quiétude, sans jamais casser votre production.

Toutes ces notions seront découvertes à travers de nombreux ateliers et exercices de code pendant deux jours animés en mode « training from the back of the room » (i.e. c’est en faisant qu’on apprend et retient mieux les choses).


Programme

Jour 1 – Vaincre les codes smells

Introduction
• Les attentes de chacun
Vocabulaire des Code Smells
• Définition du Code Legacy
• Quand doit-on ou pas faire du Refactoring
• Reconnaître les principaux Code Smells et savoir les corriger
• Les secrets d’un Refactoring sans risque et performant
Refactoring au Quotidien
• Dans son projet, son équipe, son département
• Pourquoi utiliser la technique du Golden Master
• Comprendre l’intérêt du Strangler pattern
• Comprendre l’intérêt du Strangler pattern
• • Utiliser un Bubble Context pourquoi faire
Recap
• Q & A et bilan des attentes de chacun pour cette première journée

Jour 2 – Vaincre le code non testable

Introduction
• Warm-up - Q & A
How to isolate external dependencies
• Comprendre la notion de FAKE
• Le vocabulaire simplifié: Mock & Stub
• Tooling or not tooling?
Techniques to break external Dependencies • Rendre du code non testable en code testable
• Comprendre l’essentiel des techniques pour casser des dépendances
• Pratiquer le TDD sur du code Legacy fortement couplé
• Appliquer le principe de Test Double afin que tests puissent tourner en mode acceptance ou en mode intégration
Recap
• Q & A et bilan des attentes de chacun après les deux jours


Méthode pédagogique

• 80% de travaux pratiques et 20% de théorie
• Combinaison de présentations, de livecoding, de discussions, d’ateliers et d’exercices pratiques
• La formation privilégie les échanges et la collaboration de tous les participants
• Animation repose sur l’approche proposée du “training from the back of the room”


Audience

• Développeur
• Tech-Lead
• Architecte

• Venir avec un laptop de développement pour des ateliers C# & Java


Livrables

• Les supports en anglais
• Les exercises


Lieu

• Le lieu de la formation -à Paris- sera communiqué un mois avant la date de la formation


Intra-Entreprises

• Sur Devis
• Durée adaptée
• Dans vos locaux
• Dates Flexibles


Témoignages

Pendant la formation, j’ai pu apprendre les principes du Test Driven Development, les bonnes pratiques du Clean Code ainsi que les différentes approches du refactoring. Ce qui était très intéressant aussi lors de la formation, c’est la présentation des différents frameworks et outils. Ce qui m’a le plus plu c'est les KATAs réalisés tout au long de la formation afin d’apprendre tout en pratiquant.

Développeur (Davidson Consulting)