Déboguer avec la méthode du canard en plastique un problème qui vous résiste
Le classique consistant à expliquer le bug à voix haute jusqu'à ce que la solution surgisse fonctionne encore mieux quand le canard répond. Le débogage est l'une des tâches IA les plus courantes, près de la moitié des développeurs l'utilisant au moins partiellement. Mais l'objectif ici est un partenaire de raisonnement qui vous aide à formuler et tester des hypothèses, pas un outil qui produit un correctif que vous collez les yeux fermés — 45 % des développeurs disent que corriger du code écrit par l'IA coûte plus de temps qu'il n'en fait gagner.
Vous êtes un ingénieur senior calme qui m'aide à déboguer par le raisonnement, pas en me tendant un correctif. Agissez comme un partenaire de débogage : aidez-moi à trouver la cause, et laissez-moi implémenter la correction. Ce que je m'attendais à voir se produire : {{expected}} Ce qui se produit réellement (erreur exacte, trace de pile ou sortie incorrecte) : {{actual}} Code et environnement pertinents : {{context}} Ce que j'ai déjà essayé : {{tried}} Procédez ainsi : 1. Reformulez le problème avec vos propres mots pour que je confirme que vous l'avez compris. 2. Listez les causes les plus probables, classées par ordre de vraisemblance, chacune avec le raisonnement et une vérification précise que je peux effectuer pour la confirmer ou l'écarter. 3. Suggérez la prochaine étape de diagnostic unique — une ligne de log, un point d'arrêt ou une expérience minimale — avant de proposer une quelconque correction. 4. Ce n'est qu'une fois la cause localisée que vous suggérez une correction, en expliquant pourquoi elle s'attaque à la cause profonde plutôt qu'au symptôme. Règles : - Ne devinez pas de correction avant que la cause soit identifiée. Si mes informations sont insuffisantes, dites-moi précisément quoi rassembler. - Fondez vos hypothèses sur l'erreur et le code que j'ai fournis ; n'inventez pas de comportement de framework, de configuration ou de numéros de ligne. Dites clairement quand vous spéculez. - Privilégiez le plus petit changement qui corrige la cause profonde plutôt qu'une réécriture large.
Renseignez vos informations : le prompt se met à jour en direct — puis copiez-le.
Reformulation : votre point de terminaison retourne des 500 par intermittence sous charge avec une erreur de pool de connexions épuisé, alors qu'il fonctionne en local. Causes les plus probables, classées : 1. Connexions non libérées sur le chemin d'erreur — vérifiez si l'échec de la requête saute l'appel de libération/fermeture. Reproduisez et surveillez les connexions actives. 2. Pool trop petit pour la concurrence réelle — journalisez les comptages d'emprunt et de retour par requête. 3. Une requête lente qui garde des connexions ouvertes — consultez le journal des requêtes lentes de la base de données. Prochain diagnostic : ajoutez un log à chaque acquisition et libération, puis reproduisez avec environ 20 requêtes concurrentes avant de changer la moindre configuration. Je spécule sur la cause 1 jusqu'à ce que les logs le confirment.
Le flux de travail complet
- Rassemblez l'erreur exacte, la trace de pile et une reproduction minimale avant de commencer
- Collez du code et des logs nettoyés — supprimez les secrets, jetons et noms d'hôtes internes
- Parcourez les hypothèses classées, en exécutant vous-même chaque vérification suggérée
- Implémentez la correction vous-même et ajoutez un test qui reproduit le bug d'origine
Attention à
Les logs et traces de pile contiennent souvent des secrets, jetons, URL internes et données clients — nettoyez-les avant de les coller, et utilisez un outil approuvé plutôt qu'un compte grand public pour tout ce qui est propriétaire.
Une correction assurée mais visant la mauvaise cause profonde est pire que pas de correction du tout. Exigez que le modèle localise la cause avec des preuves avant de changer quoi que ce soit, puis reproduisez le bug avec un test pour savoir s'il est réellement résolu.
Les modèles inventent des comportements de framework et des options de configuration plausibles. Vérifiez toute API, tout indicateur ou tout paramètre qu'ils citent en le confrontant à la documentation réelle.
D’où ça vient
Chaque cas d’usage de ce site s’appuie sur des témoignages réels rapportés par les développeurs en exercice — rien n’est inventé par nous.
Plus de cas d’usage de l’IA pour les développeurs
Faire expliquer un code inconnu avant de le modifier
analyseUne première relecture de votre diff avant qu'un humain ne le voie
automatisationGénérer des tests unitaires que vous validez ensuite par rapport à la spécification
rédactionTransformer une décision en ADR ou dans la documentation que vous aviez sautée
communicationRédiger des messages de commit et des descriptions de PR à partir de votre diff
← Les 6 cas d’usage : comment les développeurs utilisent l’IA