This blog is no longer updated. Please check my new blog here.

Julien Sobczak

Refactoring: Improving the Design of Existing Code

Martin Fowler, Kent Beck, Don Roberts

Exceptionnel/Excellent. Incontournable/Indispensable. Un des rares livres qui profondément changé ma manière de développer.

General

Hardcover 0201485672 464 pages

Review

Refactoring. Un terme sorti de nulle part et pourtant devenu si familier.

Le livre débute par quelques chapitres d’introduction vraiment excellents avant d’entamer une liste tout aussi excellente de Bad Smells (destinée à mettre le doigt sur les endroits où un refactoring s’impose). Arrive ensuite le coeur du livre un catalogue de refactorings qui va nous permettre de remédier à tout cela.

Pour chaque refactoring, un exemple en Java est présenté ainsi que les différentes étapes pour mener à bien ce refactoring. Ces étapes sont de très bas niveau et tellement évidentes que vous serez probablement tenté de les survoler. Pourtant, travailler de la sorte en baby steps, c’est la garantie qu’à tout moment, le code continue de fonctionner. Cela diffère de l’approche qu’on connait tous, où, par un soudain excès de confiance, une grande partie de code est modifiée, avec l’application qui cesse de fonctionner le temps des changements, au risque de ne plus fonctionner du tout….

Le livre achevé, on peut se dire que le contenu est vraiment simpliste mais en prenant un peu de recul, on mesure pleinement le potentiel du refactoring. Associé aux tests unitaires que Martin Fowler présente également à travers JUnit, le refactoring est redoutable d’efficacité avec le fameux “TDD mantra” red/green/refactor.