Refactoring
Préambule
Qu'est-ce que le réfactoring?
Le refactoring est une technique grĂ¢ce à laquelle vous pouvez restructurer et modifier votre code existant de telle sorte que son comportement reste inchangé. Le refactoring vous permet de rationaliser, de simplifier et d'améliorer les performances et la lisibilité du code de votre application. Il faut bien avoir à l'esprit que lorsque l'on fait du refactoring nous devons faire des évolution mais surtout pas de révolutions.
Pourquoi?
On peut refactorer du code dans plusieurs optiques. La première qui est souvent la plus évoquée est la lisibilité du code. En effet, si votre code n'est pas lisible par d'autre cela peut ajouter des risques lors de sa modification et par conséquent engendrer des bugs qui auraient pu être évités.
La seconde raison est l'amélioration de la qualité du code. Lorsque nous codons pour la première fois une fonctionnalité celle-ci peut-être trop longue en terme de lignes de code ou encore avoir un algorithme compliqué. C'est pour cela que nous pouvons refactorer cette fonctionnalité pour avoir par exemple un algorithme très simple. Cela peut encore être fait dans le but de pouvoir maintenir un code beaucoup plus simplement.
La troisième raison qui nous pousse à faire du refactoring est la peur des bugs. Nous ne sommes jamais à l'abris de bug, de coquilles dans notre code. C'est pour cela qu'il peut être intéressant de relire le code en l'améliorant et en vérifiant que le répond bien aux normes de développement.
Enfin, la 4ème et dernière raison de faire du refactoring est le fait de vouloir ne pas être dépendant d'une technologie.
Utilisation dans Scrum
Le refactoring est très bien intégré dans la méthode agile Scrum. Il fait en effet partie de ce que l'on appelle l'xProgramming. On y fait des revues de code. La revue de code consiste à relire le code d'une personne en critiquant ce code et en l'améliorant. On peut aussi travailler à deux sur un même code pour réfléchir à deux sur celui-ci. Tout cela est donc directement lié au Refactoring.