Refactoriser la conception d'une application

La remise à plat du code d'une application peut-être très utile afin de rendre plus aisée sa maintenance. C'est notamment le cas si ce programme est passé par de nombreuses phases d'évolution complexifiant ses sources.

 

 

BRUNO RIZZI Architecte, Sogeti

Ses contributions

 

Bien qu'ayant été développées à l'aide de "Nouvelles Technologies" certaines applications ont derrière elles une vie bien remplie et parfois bien mouvementée. Leur structure, souvent qualifiée de plat de spaghetti ou d'usine à gaz, devient un obstacle insurmontable à leur maintenance ou à leur évolution. Les causes peuvent être multiples : erreurs de conception, évolutions fonctionnelles et techniques faites dans l'urgence ou simplement évolution de l'état de l'art. La situation peut-être grave, voire désespérée. La réécriture n'est pas pour autant la seule alternative envisageable. Pourquoi ne pas donner une nouvelle jeunesse à votre application par un refactoring de conception et de code ?

La démarche décrite ci-après propose de re-concevoir tout où partie d'une application puis, à l'aide de la programmation par interface et un conteneur IoC tel que Spring, de plaquer de manière temporaire l'implémentation existante sur le nouveau modèle pour, finalement, rénover progressivement le code existant. Cette méthode permet de contrôler le processus de refactoring en maîtrisant sa complexité et d'éviter un chantier de longue durée pendant lequel la version de développement n'est plus en état de fonctionner. Elle permet également de rendre l'application testable unitairement et, par conséquent d'éviter les régressions.

Définir le périmètre à refactorer

Avant toute chose, tracez précisément les limites du système à rénover : il peut s'agir de l'ensemble de l'application, si sa taille est raisonnable et si son état le nécessite, d'une fonctionnalité ou d'un ensemble de fonctionnalités. Si le périmètre est trop important pour être appréhendé en une seule passe, procédez par itérations successives. Soyez ambitieux, un refactoring cosmétique n'améliorera pas la situation, mais soyez réaliste dans l'évaluation de l'effort à fournir.

 


JDN Développeur Envoyer Imprimer Haut de page