Qu’est ce que le code « legacy »?

Dans l’équipe nous avons l’habitude de considérer que le code « Legacy » est l’ensemble du code qui n’est pas testé unitairement (je crois l’avoir déjà lu dans un bouquin, n’hésitez pas à commenter si vous savez). Ce code est difficilement réutilisable car non couvert par des tests automatisés de non-régression.

Que faire?

La solution que nous appliquons quand nous nous retrouvons face à ce genre de code, que nous allons impacter avec un nouveau développement, ou une simple refacto, est de : coder les tests unitaires pour couvrir l’ensemble de son scope fonctionnel.

_le relou: Ouais.. mais bon, mon code est legacy de chez legacy

_c’est à dire?

_bah on va dire qu’on a perdu la spécification…

Que faire?

Easy peasy, il faut prendre le temps de comprendre le code. A chaque fois que j’ai compris ce que fait un bout de code, en adéquation avec ce que font les fonctionnalités qui l’utilisent, et avec la bénédiction du Responsable Produit, je code le test correspondant. Ca prend plus de temps, mais on n’a pas mieux pour le moment 🙂

_le relou: Ouais… mais mon code il est legacy structuropathe

_c’est à dire?

_on peut pas le tester.

legacy_code

The legacy code

Que faire?

Easy peasy too much. Utiliser un framework de Mocking.

Je vous vois venir, ce sont des classes statiques en veux tu? (oui) en voila! blablabla. On s’en fout. L’excellent projet de recherche Pex & Moles (mangez des moles) vous permet de vous sortir d’a priori toutes les situations grotesques de code tout pourri qui respecte les principes LIQUID (à lire au passage, da SOLID principles)

EDIT 30.03.12: Il existe maintenant le framework Microsoft Fakes pour toutes ces horreurs 😀

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s