Refactoring : améliorer le design du code existant

Qu’est-ce-que le Refactoring ?

La « refactorisation » (anglicisme à éviter) ou plutôt, en bon français, le réusinage de code (Vous comprenez pourquoi j’ai préféré le terme anglais) est le processus de modification d’un programme qui n’altère pas le fonctionnement externe du code, mais améliore sa structure interne. Il s’agit d’une façon disciplinée de nettoyer le code permettant de réduire la probabilité d’introduire des bugs. C’est donc essentiellement, l’amélioration du design du code après que celui-ci ai été écrit.

« L’amélioration du design après que celui-ci ai été écrit. » C’est une drôle de phrase. Dans notre compréhension actuel du développement logiciel, nous pensons que nous concevons et qu’ensuite nous développons. Une bonne conception vient en premier et le développement vient en second. La plupart du temps le code sera modifié, et l’intégrité du système, sa structure en rapport avec le design se dégrade. Le code s’enfonce doucement de l’ingénierie vers le bidouillage.

Le Refactoring  est l’opposé de cette pratique. Vous pouvez partir d’un code mal conçu, souvent chaotique, et le retravailler en un code bien architecturé. Chaque étape est simple, voir simpliste. Vous déplacez un champ d’une classe à une autre, déportez du code d’une méthode vers une nouvelle méthode, ou déplacez du code vers le haut ou le bas d’une relation d’héritage. Les effets cumulés de toutes ces petites modifications peut radicalement améliorer le design. C’est l’opposé exact de la notion habituelle de déstructuration d’un logiciel.

Avec le Refactoring vous trouvez l’équilibre dans le travail nécessaire au changement. Vous concevez tout au long du développement, plutôt que tout au début, votre logiciel. Vous apprenez en construisant le système, comment améliorer le design. Le résultat de ces interactions dirige vers un programme au bon design tout au long des développements.

Merci à Martin Fowler pour ses explications qui sont d’une grande clartées.

Référence : Refactoring, Improving the design of existing code. Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts. Object Technology International, Inc.

Poster un Commentaire

1 Commentaire sur "Refactoring : améliorer le design du code existant"

Me notifier des
avatar
Trier par:   plus récents | plus anciens | plus de votes
wpDiscuz