vmontagn.fr

devblog

TCR: test && commit || revert



russian roulette
Ceci est une roulette russe pour sys-admin, merci de ne pas reproduire ceci sur votre machine !
[image: http://www.commitstrip.com/en/2014/05/16/russian-roulette/]

Envie de sensation forte ? Kent Beck, pionnier du TTD, eu l’idee de creer, suite aux ideologies de Oddmund Strømme, un workflow de programmation qui oblige les devs a forcer leur code a une version anterieur si les tests ne passent pas !
L’article medium de Kent Beck: https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864

Le principe

Vous est-il deja arrive de recuperer un projet d’un autre collegue de boulot dont les tests ne compilent pas ? Grace au test && commit || revert (ou TCR), ce cas n’arriveras plus jamais ! Le principe est simple, si au moment de creer un commit, les tests ne passent pas, le code est automatiquement revert !

Ce qui implique que les tests sont toujours fonctionnel, d’autant plus si les developeurs utilisent le TDD sur le projet !

Les inconvenients

Mise a part se faire supprimer son travail si l’on fait des erreurs idiotes, ce qui peux provoquer de la frustration, le TCR n’as pas trop de default en lui meme dans une equipe ayant deja une bonne maitrise des tests.

Mais attentions, car des developpeurs mal intentionnes peuvent ecrire de faux tests (ou juste ne pas en ecrire) pour bypasser le TCR !

Un exemple ?

Le TCR explique dans un kata sur le FizzBuzz (article en anglais): https://www.marcusoft.net/2019/01/trying-out-test-commit-or-revert.html

Conclusion

Avec beaucoups de rigeurs (et de commit !), le test && commit || revert peux etre une bonne approche pour les developpeurs ayant creeant de trop gros commits ou n’ayant pas le reflexe de tester son programme.

Pour finir, voici les deux raisons donnees par Kent Beck pour au moins une fois tester le test && commit || revert :
=> C’est pas cher (voir gratuit)
=> Il y a toujours quelques-chose a apprendre