Breakpoints

Episode 3 (cf Episode 2 par Laurent Bossavit)

🐌🛑🐢

— Victor ! Ticket 915 : ça te dit ? 🪑
— Yes ! Débugguer, ça me familiarise avec la base de code.

— Oui, ben te familiarise pas trop, parce que ce module là on va le refondre.
— Ah bon ? Quand ça ?
— La roadmap n'est pas encore finalisée, mais ce sera fait avant la fin d'année.
— Donc en vrai, on a du temps pour améliorer des trucs ?
— De quoi tu parles ?
— Jérémie, la semaine dernière, j'ai proposé qu'on essaye une technique de test…
— On a du temps pour les trucs absolument indispensables, pas pour explorer des nouvelles techniques.
— Ok, Ok. Vas-y montre-moi ce bug.
— J'arrive. Tu vas comprendre pourquoi on refond cette partie.

— 🤬 Je suis encore passé au dessus du bloc. Comment on fait un point d'arrêt conditionnel, déjà…
— 🥱
— T'endors pas Victor, il n'est que 10h10. Tiens bon !
— Mais c'est tellement leeeeent ! Tu réalises qu'à chaque fois qu'on s'arrête à cette ligne, là, 5482, pour observer le contenu de cet objet, on fait la même chose que l'ordi, seulement 60 millions de fois plus lentement ?
— Qu'est-ce que tu proposes ?
— Tu connais assert ?
— Oui je connais assert. Où est-ce que tu veux en venir ?
— À la place de ton point d'arrêt, mets un assert dans le code, sur la condition que tu veux.
— C'est pas bête.
— Comme ça on le lance et on arrive plus vite au moment qui nous intéresse.
— Oui, eh bien c'est aussi ce qu'on fait avec un point d'arrêt, je te signale. C'est juste que je ne me souviens plus comment on crée un point d'arrêt conditionnel…

— Bon, eh bien c'est réparé. Victor, tu veux mettre à jour le ticket ? De mon côté, je vais effacer ces asserts.
— Ah bah non !
— Quoi non ?
— On n'a pas fait tout ce chemin pour rien quand même.
— Quel chemin ?
— Hier on avait : du code, un ticket expliquant comment produire le bug, et c'est tout. Ce matin on a ça, plus des assertions, c'est à dire du code qui documente le code. Et toi tu voudrais effacer le peu de documentation qu'on vient de produire.
— Oui mais non : on ne va garder ça, le code est déjà assez 🤬 comme ça !
— On n'a qu'à les sortir…
— Dans un module appelant tu veux dire ? Tu oublies qu'ils interrogent des variables d'instances et des variables locales tes asserts.
— On n'a qu'à rendre celles-ci publiques… 😬
— Pas question !
— … 😒
— … 😠
— Bon. Cet assert, là : il nous dit quel est l'invariant de la classe Facture. Tout à l'heure, il cassait sur la facture donnée en exemple dans le ticket.
— Où est-ce que tu veux en venir ?
— Dans le module appelant, on instancie la même facture que dans le ticket, et on lance la méthode de recalcul.
— Ok…
— Et on repart de l'assert. On dit : "Même avec remises, une facture garde un montant positif".
— Bien vu.
— Tu es d'accord que ce test fait le même job que l'assert, mais en mieux ?
— Je dis pas non. Mais ajouter du code à propos d'un module qui va mourir, bof !
— Hmm. On peut faire un break ?
— Faudrait savoir !
— Non je veux dire une pause. J'ai besoin d'un café, là. publié sur Linked In le 05/05/2023