Assiéger un bug
J'adore le débogage – un objectif clair, des surprises techniques éventuellement intéressantes, une liberté d'approche totale et une créativité de coloration requise dans les lignes. Parfois, quand on me confie un bogue, je ressens même quelque chose qui pourrait être décrit comme de la joie. Mais bien sûr, le débogage n’est pas que de l’amour et de la joie. Des émotions très différentes peuvent être impliquées.
"Cela devrait être facile."
Ou:
"Hein?!"
Ou:
"C'est dégoûtant. Comment en sommes-nous arrivés là ? Nous devrions tout brûler.
Ou:
"Cela n'a pas de sens. Cela ne devrait pas arriver.
Ou:
"Pourquoi moi?"
Ou:
« Écoute, ce n’est peut-être pas un bogue ? Peut-être que ça devrait être comme ça ?
Ou:
"Je ne corrigerai jamais ça."
C'est quand vous avez décidé de faire quelque chose de différent, quand on ne vous a pas attribué un ticket de bogue mais une fonctionnalité et que vous avez continué, en sifflant et en écrivant du code, puis encore un peu plus, puis le bogue est apparu et vous avez essayé de l'ignorer et de mettre un pansement mais il ne disparaît pas et vous avez réessayé – un pansement plus gros – et cela ne fonctionne pas et puis vous essayez de le réparer un peu mieux mais encore une fois sans succès et puis vous essayez encore et encore et ça ne disparaîtra tout simplement pas.
Et puis vous vous asseyez et vivez un moment très personnel que votre femme ne comprendra pas lorsque vous en parlerez au dîner, mais ensuite c’est parti. Vous retroussez les manches – pour de vrai et en code. Vous supprimez les correctifs temporaires, vous respirez et vous commencez à ajouter des outils de débogage appropriés, pas seulement des instructions d'impression (console.log, print c’est de vous que je parle), mais des outils réels qui ne sont pas écrits pour être jetés en 10 minutes. Vous modifiez les structures de données avec lesquelles vous travaillez pour contenir des informations de débogage réellement utiles, vous lisez vraiment tout le code environnant, même les bits que vous ne pensiez pas pertinents. Ensuite, croyez-le ou non, vous lisez également la documentation (?!) comme elle doit être lue et pas seulement des extraits ici et là dans l'espoir de pouvoir jeter un coup d'œil sur un remède en une ligne à votre douleur existentielle. Bon sang, vous pourriez même chercher comment utiliser un débogueur.
Parce qu'à ce stade, vous savez maintenant que la seule façon de corriger ce bogue est d'en apprendre davantage sur son origine, pourquoi il vient de là, comment et quand il se comporte comme il le fait – pour le mettre en lumière autant que possible. Il ne reste plus un seul coin sombre dans lequel il puisse se cacher. En d’autres termes, vous l’assiéger.
C'est là que j'en suis ce matin avec mon bogue. Je ne dirais pas que c’est l’amour et la joie que je vis en ce moment, mais demandez-le-moi dans quelques jours.