Debugger avec l'IA
Invoquer un allie : decrire le bug pour que l'IA t'aide.
4.1Le mauvais reflexe (qu'on a tous eu)
Le reflexe numero 1 du debutant : copier l'erreur, la coller dans ChatGPT, et ecrire "aide-moi". Le probleme ? L'IA ne connait pas ton projet. Elle va te donner une reponse generique qui ne correspond pas a ton code.
TypeError: Cannot read properties of undefined (reading 'name')
aide moi
# Resultat : l'IA te dit "verifiez que la variable existe"
# Merci Captain Obvious... mais WHERE ?4.2Le template de debug parfait
Voici la structure qui va transformer chaque session de debug en victoire :
Je travaille sur un projet Next.js 15 avec TypeScript et Supabase.
## Le message d'erreur
```
TypeError: Cannot read properties of undefined (reading 'name')
at UserCard (components/UserCard.tsx:12:24)
```
## Ce que je faisais
J'essaie d'afficher les donnees d'un utilisateur fetche depuis Supabase.
## Ce que j'attendais
Le composant UserCard affiche le nom de l'utilisateur.
## Ce qui se passe
La page crash avec l'erreur ci-dessus.
## Mon code
```tsx
// UserCard.tsx
export function UserCard({ userId }: { userId: string }) {
const [user, setUser] = useState()
useEffect(() => {
supabase.from('users').select('*').eq('id', userId).single().then(({ data }) => {
setUser(data)
})
}, [userId])
return <h2>{user.name}</h2>
}
```
## Ce que j'ai deja essaye
- Verifier que userId n'est pas undefined
- console.log(user) -> affiche undefined au premier render
Explique-moi le probleme avant de proposer une correction.4.3Les 4 niveaux du debug IA
Niveau 1 : Comprendre l'erreur
"Explique-moi cette erreur en termes simples : [erreur]"
Niveau 2 : Diagnostiquer avec contexte
Ajoute ton code, ta stack, et ce que tu as deja essaye.
Niveau 3 : Rubber duck IA
"Pose-moi des questions pour m'aider a trouver le bug moi-meme."
Niveau 4 : Prevention
"Comment eviter ce type d'erreur a l'avenir ? Donne-moi un pattern."
4.4Le rubber duck IA : la technique secrete
Le "rubber duck debugging" classique, c'est expliquer ton probleme a un canard en plastique. L'IA fait un canard encore meilleur : elle te pose des questions !
Tu es mon partenaire de debug. Mon composant UserCard ne s'affiche pas correctement.
Au lieu de me donner la solution directement, pose-moi 5 questions diagnostiques
pour m'aider a trouver le bug moi-meme.
Voici mon code :
```tsx
[ton code]
```
L'IA va te demander :
1. "Que renvoie console.log(user) juste avant le return ?"
2. "Est-ce que useEffect a la bonne dependance ?"
3. "A quel moment setUser est appele ?"
4. etc.4.5Les prompts de debug a garder
# Prompt 1 : Explication simple
Explique-moi cette erreur comme si j'etais un debutant :
[coller l'erreur]
# Prompt 2 : Diagnostic complet
[coller le template de la section 4.2]
# Prompt 3 : Prevention
J'ai corrige ce bug : [description].
Comment eviter ce type d'erreur a l'avenir ?
Propose un pattern ou une regle ESLint qui l'aurait detecte.