Les erreurs fréquentes (et comment les éviter)
Un guide de survie pour ne plus perdre de temps. Gagnez des mois d'expérience en apprenant des erreurs des autres.
Introduction
Bienvenue dans la partie "Aller plus loin". Vous maîtrisez désormais les bases. Vous savez comment générer du code, tester, et utiliser Git. Mais la réalité du terrain est souvent moins lisse qu'un tutoriel.
Tous les utilisateurs, même les ingénieurs seniors, commettent des erreurs avec les IA génératives. La raison est simple : nous avons tendance à leur parler comme à des humains, en oubliant qu'il s'agit de modèles probabilistes.
Ce chapitre n'est pas là pour vous juger. Il a pour but de vous faire gagner un temps précieux en vous montrant précisément ce qui ne fonctionne pas. Connaître le piège, c'est déjà l'éviter.
Les 20 erreurs les plus fréquentes
Erreur #1 : Créer une application entière en un prompt
L'erreur
L'utilisateur demande "Crée-moi un clone de Netflix".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #2 : Ne pas donner suffisamment de contexte
L'erreur
L'utilisateur demande "Fais un bouton d'achat".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #3 : Ne pas préciser la technologie
L'erreur
L'utilisateur demande de l'animation 3D sans préciser de librairie.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #4 : Modifier plusieurs fonctionnalités
L'erreur
L'utilisateur demande "Change la couleur, répare le footer et ajoute l'auth".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #5 : Travailler en production
L'erreur
L'utilisateur modifie directement les fichiers du serveur live.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #6 : Ne jamais utiliser Git
L'erreur
L'utilisateur ne fait aucun commit pendant 3 jours.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #7 : Ne pas tester après chaque modif
L'erreur
L'utilisateur génère 10 fichiers d'affilée sans regarder le navigateur.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #8 : Copier sans lire
L'erreur
L'utilisateur fait Ctrl+C / Ctrl+V dès que le fond noir apparaît.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #9 : Ignorer les erreurs
L'erreur
L'utilisateur voit du rouge dans la console mais se dit "tant que ça marche...".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #10 : Ne pas sauvegarder
L'erreur
L'utilisateur laisse son code sur sa machine sans le pousser sur Github.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #11 : Questions vagues
L'erreur
L'utilisateur dit "Fais en sorte que ça soit joli".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #12 : Confiance aveugle
L'erreur
L'utilisateur met le code en production sans tester les cas limites.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #13 : Modifier sans comprendre
L'erreur
L'utilisateur demande de changer la BDD sans regarder le schéma actuel.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #14 : Objectifs contradictoires
L'erreur
L'utilisateur demande un site "ultra rapide mais avec 40 vidéos HD".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #15 : Optimiser trop tôt
L'erreur
L'utilisateur passe 2h à optimiser une fonction appelée une fois par mois.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #16 : Ne pas demander d'explications
L'erreur
L'utilisateur intègre un code complexe qu'il serait incapable de modifier.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #17 : Refactoring massif en une fois
L'erreur
L'utilisateur dit "Réécris tout mon projet en TypeScript".
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #18 : Changer plusieurs technos
L'erreur
L'utilisateur passe de React à Vue.js au milieu du projet.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #19 : La précipitation
L'erreur
L'utilisateur lance 5 prompts par minute quand il est frustré.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Erreur #20 : Prendre Codex pour un humain
L'erreur
L'utilisateur s'énerve contre la machine ou attend d'elle une réflexion morale.
Pourquoi c'est un problème
L'IA va saturer. Elle fera des choix arbitraires qui produiront un code inutilisable à la moindre contrainte réelle.
Mauvais exemple
"Génère mon site e-commerce avec le panier et le paiement."
Bonne approche
"Commençons le projet. Étape 1 : crée-moi juste le squelette HTML vide de l'en-tête."
Les erreurs spécifiques des débutants
Quand on démarre, on s'attend souvent à ce que la machine "sache" :
- "Je pensais qu'il connaissait mon projet" : Codex ne voit que ce que vous lui montrez. S'il n'a pas accès au fichier A, il ne pourra pas deviner qu'il est lié au fichier B.
- "Pourquoi pose-t-il une question au lieu de coder ?" : C'est le signe d'un bon agent IA. S'il vous pose une question, c'est que votre demande initiale manquait d'une information cruciale (ex: "Quelle couleur pour ce bouton ?"). Remerciez-le de ne pas avoir inventé la réponse.
- "Il a modifié plusieurs fichiers sans que je le demande." : Une fonctionnalité touche souvent la vue (HTML), le style (CSS) et la logique (JS). Précisez vos limites si nécessaire.
Les erreurs spécifiques des développeurs expérimentés
L'expérience n'empêche pas de se tromper avec l'IA. Au contraire :
- Prompts trop complexes : Le dev Senior veut faire un "one-shot" de 50 lignes. L'IA se perd dans la complexité architecturale.
- Le Refactoring massif : Demander "Migre ces 50 composants vers la nouvelle API". L'IA n'a pas assez de mémoire de travail (tokens) pour faire cela sans oubli.
- L'arrogance technique : Refuser de lire le code de l'IA parce qu'on pense avoir "bien prompté". Les hallucinations existent toujours.
Checklist : Les 20 signes qu'une demande est mal préparée
- [ ] Le prompt tient sur une ligne
- [ ] Je suis agacé/pressé
- [ ] Aucune cible métier définie
- [ ] Le mot "Rapide" ou "Joli" est utilisé
- [ ] Les noms de fichiers ne sont pas donnés
- [ ] Aucune mention du framework
- [ ] "Fais le backend en même temps"
- [ ] J'ai oublié de faire un Git Commit
- [ ] Je n'ai pas testé le code précédent
- [ ] J'utilise des abréviations incompréhensibles
- [ ] Je n'ai pas défini la BDD (Base de données)
- [ ] Je lui donne 5 objectifs
- [ ] La console F12 est pleine d'erreurs rouges
- [ ] Je n'ai pas lu sa réponse précédente
- [ ] Je modifie un fichier aveuglément
- [ ] La conversation fait déjà 80 messages
- [ ] Je demande du code pour demain matin
- [ ] Je copie l'erreur sans le contexte
- [ ] Je ne lui indique pas le résultat visuel
- [ ] Je croise les doigts "pour que ça marche"
Les bons réflexes à adopter
Divisez mentalement chaque tâche en trois.
Testez le résultat comme si c'était le code de quelqu'un d'autre.
Ne faites pas confiance à votre chance. Faites Ctrl+S et Commit.
Études de cas
Étude de cas 1 : Le SaaS en folie
Scénario : Lucas demande : "Fais un site complet comme Airbnb avec Stripe et authentification".
Résultat : L'IA recrache 300 lignes de code non structuré qui ne compile pas.
L'Erreur : Périmètre infini.
La Correction : "Initialise le projet vide. Faisons juste la maquette de la page d'accueil d'abord."
Étude de cas 2 : L'obstination mortelle
Scénario : Un bug CSS apparaît. Emma passe 1h30 à demander "Non, ça marche pas. Corrige."
Résultat : Le CSS est devenu une bouillie de !important.
L'Erreur : Ne pas annuler une mauvaise approche.
La Correction : Faire un `git restore .` et dire "On efface tout, utilisons CSS Grid proprement."
Avant / Après (Améliorer ses prompts)
❌ Prompt Débutant : "Centre le titre."
✅ Prompt Pro : "Dans le composant `Header.tsx`, utilise Flexbox pour centrer le `h1` verticalement et horizontalement, sans casser le bouton de droite."
Pourquoi : Le pro verrouille le fichier, la méthode, et protège l'existant.
❌ Prompt Débutant : "Centre le titre."
✅ Prompt Pro : "Dans le composant `Header.tsx`, utilise Flexbox pour centrer le `h1` verticalement et horizontalement, sans casser le bouton de droite."
Pourquoi : Le pro verrouille le fichier, la méthode, et protège l'existant.
❌ Prompt Débutant : "Centre le titre."
✅ Prompt Pro : "Dans le composant `Header.tsx`, utilise Flexbox pour centrer le `h1` verticalement et horizontalement, sans casser le bouton de droite."
Pourquoi : Le pro verrouille le fichier, la méthode, et protège l'existant.
❌ Prompt Débutant : "Centre le titre."
✅ Prompt Pro : "Dans le composant `Header.tsx`, utilise Flexbox pour centrer le `h1` verticalement et horizontalement, sans casser le bouton de droite."
Pourquoi : Le pro verrouille le fichier, la méthode, et protège l'existant.
❌ Prompt Débutant : "Centre le titre."
✅ Prompt Pro : "Dans le composant `Header.tsx`, utilise Flexbox pour centrer le `h1` verticalement et horizontalement, sans casser le bouton de droite."
Pourquoi : Le pro verrouille le fichier, la méthode, et protège l'existant.
Tableau récapitulatif des erreurs
| Erreur | Conséquence | Bonne pratique | Gravité |
|---|---|---|---|
| 1. App Entière en 1 prompt | Code incomplet, décousu, impossible à réparer. | Découpage en petits composants. | Critique |
| 2. Zéro contexte | L'IA invente un métier qui n'est pas le vôtre. | Préciser l'utilisateur final. | Élevée |
| 3. Oublier la technologie | Code obsolète (ex: requêtes jQuery en 2024). | Spécifier les versions (Next 14). | Élevée |
| 4. Demandes multiples | Bugs croisés indétectables. | Un prompt = Une action unique. | Critique |
| 5. Coder en Production | Crash du site en direct pour les clients. | Travail en localhost + staging. | Critique |
| 6. Zéro Git | Impossible d'annuler une erreur de l'IA. | `git commit` après chaque succès. | Critique |
| 7. Oublier de tester | Accumulation de bugs silencieux. | Tester visuellement chaque génération. | Élevée |
| 8. Copier sans lire | Failles de sécurité, code mort. | Demander des explications sur le code. | Élevée |
| 9. Ignorer la console | Bugs de performance invisibles. | Traquer tout le texte rouge (F12). | Critique |
| 10. Ne pas sauvegarder | Perte d'une journée de travail. | Pousser sur Github en fin de journée. | Critique |
| 11. Prompt "Fais un beau design" | Design aléatoire, souvent laid. | Fournir un design system ou un exemple. | Moyenne |
| 12. Confiance aveugle | Régressions sur l'existant. | Adopter l'esprit de testeur QA. | Élevée |
| 13. Refacto aveugle | Architecture complètement détruite. | Refacto fichier par fichier. | Critique |
| 14. Injonctions paradoxales | L'IA tourne en boucle sans solution. | Choisir un objectif technique clair. | Moyenne |
| 15. Optimisation précoce | Code complexe, illisible pour rien. | Faire marcher, puis faire propre. | Élevée |
| 16. Accepter la boîte noire | Vous ne savez plus maintenir votre app. | Faire écrire des commentaires à l'IA. | Critique |
| 17. Méga-commit | En cas de bug, on ne sait pas d'où ça vient. | Petits commits isolés. | Élevée |
| 18. Changer de framework au milieu | Le projet ne compile plus. | Rester sur la stack initiale. | Critique |
| 19. Précipitation frénétique | Effet boule de neige d'erreurs. | `git restore .` et pause. | Élevée |
| 20. Prendre l'IA pour un humain | Frustration face à l'amnésie de l'IA. | Répéter les contraintes clés. | Moyenne |
Atelier pratique (Identifier l'erreur)
Exercice 1 : Un utilisateur copie cette erreur dans Codex : "SyntaxError: Unexpected token". Quel est le problème ?
Solution : Il manque tout le contexte. De quel fichier parle-t-on ? Sur quelle ligne ? L'IA va devoir deviner ou poser des questions inutiles.
Exercice 2 : Vous ouvrez un chat datant de 3 semaines pour demander un nouveau bouton.
Solution : Le contexte de l'IA est pollué par du vieux code qui a peut-être changé entre temps. Ouvrez toujours un nouveau chat pour une nouvelle feature.
Conseils bienveillants
Les erreurs sont la preuve que vous travaillez.
Ne vous en voulez pas si vous bloquez sur un prompt. Chaque développeur au monde a un jour tapé sur son bureau parce que l'IA a effacé une fonction par erreur. Prenez une pause, buvez un café, relancez le serveur local, et formulez votre demande de manière plus scientifique.
FAQ
Ce qu'il faut retenir
- Les erreurs sont normales et font partie de la courbe d'apprentissage.
- Elles deviennent problématiques uniquement lorsqu'on s'obstine sans changer de méthode.
- Une méthode stricte (OQAF, Petits pas, Git systématique) élimine 90% des erreurs d'inattention.
- Comprendre pourquoi l'IA échoue vous permet d'ajuster votre tir immédiatement.
Maintenant que vous savez comment éviter les pièges classiques, le prochain chapitre abordera un sujet fondamental : les véritables limites de Codex. Nous allons voir ce qu'il est physiquement impossible de demander à une IA aujourd'hui.