TCR: test && commit || revert
#test #git #TDD #TCR
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