10 Oct 2014

Dojo #8

Enoncé:

Refactoring d’un projet.
A partir de 3 implémentations du dojo KataTennis, chaque groupe avait pour mission de refactoriser le code de celui-ci.

Pour rappel, la refactorisation d’un code, ne consiste pas en l’ajout d’une fonctionnalité ou à la correction d’un bug, mais à la simplification de celui-ci dans le but de faciliter sa maintenance ou pour le rendre plus générique. Avec le temps, la dette technique peut s’accumuler, il est donc important de remettre en cause le code pour la diminuer. Mais attention aux régressions qu’une refacto pourrait entrainer, n’oubliez donc pas de jouer les tests unitaires.

Source du dojo :

https://github.com/emilybache/Tennis-Refactoring-Kata

WP_20141007_001

Technologies :

  • 6 équipes en C#
  • 2 équipes en Java.

Points marquants :

Pour ce dojo, et pour la première fois, nous étions en visioconférence avec des développeurs du site de Nanterre, où 2 développeurs Java se sont joints à nous. Cette expérience a été enrichissante et sera donc renouvelée.

Le but de ce dojo étant la réalisation d’une refacto de code,  la complexité de l’algorithme n’était pas très importante. Cependant pour que chaque groupe comprenne l’intérêt de ce dojo, il était nécessaire d’effectuer un temps d’analyse avant d’envisager toutes modifications de code.

Des outils de mesures de code peuvent mettre en évidence, la complexité d’un code, ou son indice de maintenabilité. Dans le code initial, la complexité cyclomatique* est de 99, son niveau de maintenance est 74, et le code contient 296 nombre de lignes

A la fin de la session, l’ensemble des groupes a augmenté son niveau de maintenance et descendu le nombre de lignes de code. La plupart des groupes a fait descendre la complexité cyclomatique. Un groupe a cependant augmenté la complexité cyclomatique au profit d’un code plus facile à lire mais moins maintenable.

Durée du dojo :

  • 1H30 de réalisation
  • 15 minutes de débriefing

 

*La complexité cyclomatique permet de mesurer la complexité d’un code, plus cette mesure est base, plus le code est facile à lire, testable et maintenable.

Share