• Save
Working effectively with legacy code
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Working effectively with legacy code

on

  • 1,002 views

 

Statistics

Views

Total Views
1,002
Views on SlideShare
1,000
Embed Views
2

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 2

https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Working effectively with legacy code Presentation Transcript

  • 1. Développer efficacement avec du code legacy Mathieu Gandin @octomga
  • 2. La plupart du temps on se retrouve à développer sur une application dont le code est relativement propre …© OCTO 2012 2
  • 3. … mais on se retrouve aussi àdévelopper sur du code Legacy…© OCTO 2012 3
  • 4. Vision Produit Le code legacy, c’est quoi ? Quelques retours d’expérience Pas qu’une histoire de code Atelier© OCTO 2012 4
  • 5. Du vieux code Du code sans test N’importe quel code existant Du code que tu n’as pas écrit Du code qui n’est plus supporté Du code avec des vieilles techno Du code de la version précédente© OCTO 2012 5
  • 6. Tu peux fuir le code legacy …© OCTO 2012 6
  • 7. Tu peux maudire le code legacy … © OCTO 2012 7
  • 8. … Mais en ce moment, beaucoup(beaucoup) de code legacy est en cours d’écriture …© OCTO 2012 8
  • 9. … Et c’est important car Du code legacy doit encore être étendu Du code legacy doit être corrigé Du code legacy doit changer technologiquement© OCTO 2012 9
  • 10. © OCTO 2012 TDD 10
  • 11. Sans les tests, le code a peu de chance d’être de meilleure qualité Les méthodes et les classes s’allongentOn pourrait ajouter des méthodes en testant et en effectuant de la délégation© OCTO 2012 11
  • 12. « Pour refactorer j’ai besoin d’avoir des testspour mettre des tests en place, j’ai besoin de refactorer … »© OCTO 2012 12
  • 13. Identifier les éléments que l’on souhaite changer Trouver un point d’entrée Ecrire un test Casser les dépendances Modifier le code© OCTO 2012 13
  • 14. © OCTO 2012 Sprout class & Sprout Method 14
  • 15. Pourquoi être si prudent ?Avec une certaine masse de code il est facilede faire des erreurs sans s’en rendre compte Préserver les comportements© OCTO 2012 15
  • 16. Singleton (variable globale)Instanciation interne (hardcodé (ça casse les tests …)) Code procédurale (c’est long (très) à tester)© OCTO 2012 16
  • 17. © OCTO 2012 Orange 17
  • 18. © OCTO 2012 Cadremploi 18
  • 19. © OCTO 2012 Mediametrie 19
  • 20. © OCTO 2012 Code Review 20
  • 21. « Organizations which design systems are constrained toproduce designs which are copiesof the communication structures of these organizations » © OCTO 2012 21
  • 22. Troisième atelier MailService NoteRetriever Scheduler SchedulerDisplayTimeService Event DayTime Meeting 22
  • 23. User Story #1“Il ne faut pas pouvoirajouter au schedulerdévénements datés davantaujourdhui. ” 23
  • 24. User Story #2 “Ignorer les notes dela base qui sont uniquementdesséries despace.” 24
  • 25. User Story #3“Corriger lanomaliesur le filtrage desbalises HTML.”(ex. <b>Formation TDD</b>Octo) 25