Débogage : les règles indispensables pour résoudre même les problèmes les plus difficiles à trouver (2004)
(dwheeler.com)-
Critique de David A. Wheeler
- David J. Agans, auteur de "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems", est considéré comme un ouvrage incontournable sur le débogage pour les développeurs logiciel et matériel.
- Ce livre explique les principes fondamentaux pour trouver et corriger des bugs, plutôt que de se concentrer sur une technologie particulière, ce qui le rend particulièrement utile aux développeurs débutants ou intermédiaires.
- L’ouvrage est structuré autour de « neuf règles », avec pour chacune une explication et une méthode d’application.
-
Les neuf règles
- Comprendre le système : il est important de lire la documentation, de maîtriser les bases et de bien utiliser les outils.
- Provoquer l’échec : il est important de reproduire l’échec et d’identifier la cause des bugs intermittents.
- Arrêter de réfléchir et observer : commencer par recueillir des données, sans s’appuyer sur des suppositions.
- Diviser pour régner : résoudre le problème en le réduisant progressivement et en utilisant des motifs de test faciles à identifier.
- Ne modifier qu’une seule chose à la fois : isoler les éléments clés et changer les tests un par un.
- Conserver une trace d’audit : noter ce qui a été fait et les résultats obtenus, en comprenant que chaque détail peut compter.
- Vérifier la prise : remettre en question ce que l’on suppose acquis et tester les outils.
- Obtenir un nouveau point de vue : il est important d’acquérir de nouvelles intuitions et d’écouter la voix de l’expérience.
- Si ce n’est pas corrigé, ce n’est pas réparé : vérifier que le problème a réellement été résolu et corriger sa cause.
-
Points forts et points faibles du livre
- Le livre se concentre sur les principes fondamentaux du débogage, ce qui le distingue d’autres ouvrages techniques.
- Il contient des conseils pratiques sur la manière de traiter les problèmes intermittents.
- Les annexes incluent des liens vers des sites web liés au sujet et vers un téléchargement d’affiche.
- Parmi les regrets, on peut citer l’absence d’une page récapitulative listant toutes les règles et sous-règles, ainsi que le manque de conseils concrets sur des technologies spécifiques.
-
Conclusion
- Ce livre est utile pour apprendre ou se remémorer les principes de base du débogage, et il peut aider aussi bien les débutants que les experts.
- David A. Wheeler le recommande vivement et souligne l’importance de ces principes fondamentaux.
1 commentaires
Avis Hacker News
La tentation est grande de modifier du code contenant un bug, mais il est plus facile de casser du code qui fonctionne que de réparer du code défectueux. Comme dans l’exemple des guirlandes de Noël, il est efficace de partir d’un exemple minimal qui fonctionne pour trouver le problème
Lorsqu’on résout un problème, l’important est de ne pas paniquer. Il faut penser clairement, et un bon manager aide à se concentrer sur la résolution du problème
git bisectest utile pour trouver, parmi plusieurs commits, celui qui a introduit le problème. C’est particulièrement efficace pour localiser rapidement un souci dans une grande base de codeIl est important de comprendre le système, mais lire tous les manuels est irréaliste. Une approche pragmatique est nécessaire
Il est important d’éditer le bon fichier sur la bonne machine
Livres recommandés pour développer un état d’esprit orienté résolution de problèmes :
Règles supplémentaires :
Il faut ajouter le bug aux tests du CI pour éviter les régressions. Il faut vérifier que le CI échoue avant la correction puis réussit après
Le travail n’est pas terminé après le débogage. Pour chaque bug, il faut se poser trois questions :
Il est important de reproduire le problème avec une configuration minimale. Dans la plupart des cas, cela permet de trouver le bug. Diviser le code en deux pour identifier précisément la partie fautive est une méthode efficace