Le refactoring : une pratique indispensable

Le refactoring : une pratique indispensable

Au fur et à mesure que les projets Web, le nombre de fonctionnalité augmente et l'architecture se dégrade à chaque itération.

Le refactoring consiste à retravailler le code source non pas pour ajouter une fonctionnalité supplémentaire au logiciel mais pour le rendre plus propre, améliorer sa lisibilité et simplifier sa maintenance. Je vais ici donner quelques conseils pour, je l'espère, rendre cette opération, au combien importante, la plus efficace possible.

Vous avez sans doute déjà été confronté à une classe, une méthode ou une fonction devenue trop longue ou trop complexe. Un code source tend inexorablement à devenir de plus en plus complexe au fur et à mesure de son existence. Le refactoring est la pratique qui offre la possibilité de conserver une architecture simple et efficace quelle que soit la taille et l'historique du projet.

Avantages du refactoring

Pratiquer régulièrement le refactoring offre 2 avantages :

  • maintenir une structure cohérente et lisible des codes sources
  • maîtriser à tout moment l'architecture de votre code, ce qui permet in fine de développer plus proprement

Quand pratiquer le refactoring ?

Sans aucun doute, le meilleur moment pour faire les opérations de refactoring est après le développement d'une fonctionnalité, avant de passer à la fonctionnalité suivante. Le fonctionnel étant posé, c'est le moment idéal. Cela permet de repartir pour la prochaine itération sur des bases solides et un code bien architecturé.

Les différentes niveaux de refactoring

Les opérations de refactoring peuvent se découper en 3 étapes distintes.

Modification de la présentation

Durant cette étape, on va améliorer la lisibilité du code notamment en veillant à ce que les conventions de codages soient bien respecté, on corrigera également les commentateurs qui ne sont pas synchroniser avec le code source.

Modification des algorithmes

Ce type de modification est destiné à conserver des méthodes aussi simples que possible sans altérer la structure. Par exemple, on améliorer certaines conditions, remplacer des passage par valeur par des passage par références, ou retravailler certaines boucles pour en réduire la complexité.

Dans ce type de modification, il est tout à fait possible (et fréquent) d'introduire des bugs, il est donc fortement conseillé de construire une batterie de tests unitaires et de l'exécuter après chaque modification.

Réorganisation de la structure

Dès lors que notre code est plus lisible et que les algorithmes mieux travailler, on peut aisément retravailler la structure de notre code, son architecture. C'est à cette étapes que l'on va externaliser certains algorithmes dans des méthodes voir des classes spécifiques. On pourra retravailler également notre hiérarchie de classe. Notre code n'en sera que plus clair, plus pratique et toutes les modifications futures seront plus simples.

C'est aussi à ce niveau que l'on pourra introduire des design pattern dans notre application.

Le refactoring est certainement l'une des opérations les plus importantes dans le développement d'application Web robuste. Négliger cette phase serait une grave erreur car elle induirait de facto une application complexe très difficile à maintenir. La perte de temps engendré serait bien plus grande que le temps qu'on y aurait consacré.

Commentaires

clavierlogitech

merci pour cet article .. en fait je ne savais pas ce que refactoring signifiait

TransBlogExpres...

[...] Le refactoring : une pratique indispensable : si comme moi, vous ignoriez ce mot, Sylvain vous l’explique. [...]

buzzmobile

Je ne connaissais pas le nom de cette méthode. La démarche est très nécessaire mais c'est vrai qu'on à tendance à se laisser aller à faire des mises à jour, des modifs, des corrections, des évolutions, ... et puis 3 mois plus tard, impossible de s'y retrouver dans le code. Tu as raison d'insister sur ce point discret mais vital pour un site finalement.

Chris

Merci pour cette article intéressant. Le refactoring est malheureusement trop peu appliqué et ses nombreux avantages sont bien souvent considérés comme une perte de temps. Je le vois de plus en plus comme un investissement sur le long terme qui permet à la fois d'optimiser et de maintenir facilement des portions de code plus ou moins importantes.

sandra mera

Salut, très belle article merci beaucoup pour ces informations. j'ai trouver que le refactoring est très important et il faut l'applique par tous ;)

Refactoring PHP

Les techniques de refactoring reposent essentiellement sur les meilleures pratiques de développement objet et sont donc généralisables à tous les langages reposant sur ce paradigme. Dans le domaine Java/J2EE, le refactoring a bénéficié d’outils de plus en plus sophistiqués facilitant sa mise en oeuvre au sein des projets, mais PHP ne bénéficie pas d'autant d'outils, c'est dommage.

Celius

Ton article aurait besoin d'un refactoring... Insiste bien sur le module "Orthographe".

Ajouter un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
By submitting this form, you accept the Mollom privacy policy.