Comprendre le fonctionnement interne de Codex
Arrêtez d'utiliser l'IA comme une boîte noire magique. Comprendre sa mécanique interne est la clé pour devenir un développeur expert.
Introduction
L'erreur la plus courante chez les débutants est de penser que Codex possède une sorte de conscience globale et "connaît" tout de votre projet de manière magique et instantanée.
Dans les faits, ce n'est pas le cas. Codex est un programme informatique extrêmement avancé, mais il reste soumis à des règles physiques : il ne peut analyser que ce qu'on lui donne, et sa "mémoire" (la fenêtre de contexte) est limitée.
Savoir comment Codex "regarde" votre projet, comment il navigue entre vos fichiers et comment il tire ses conclusions va transformer votre manière de lui poser des questions. Vous allez cesser de lutter contre l'outil pour commencer à collaborer intelligemment avec lui.
Comment Codex analyse un projet
Lorsque vous appuyez sur "Entrée" après avoir tapé un prompt, il se passe énormément de choses en coulisses en l'espace d'une seconde.
Voici le cheminement exact de sa réflexion :
- Ouverture et scan : Codex regarde l'arborescence du dossier ouvert dans VS Code. Il dresse une liste des noms de fichiers (ex: index.html, style.css, app.js).
- Lecture de votre prompt : Il analyse sémantiquement votre demande. (ex: "Change la couleur d'arrière-plan").
- Sélection des fichiers : En croisant son scan et votre prompt, il déduit les fichiers utiles. (ex: Il va ouvrir et lire
style.css, mais ignoreraapp.js). - Création du contexte : Il assemble votre prompt et le contenu des fichiers sélectionnés dans un énorme bloc de texte caché.
- Envoi à l'IA : Ce bloc est envoyé aux serveurs d'OpenAI.
- Génération : L'intelligence artificielle produit la solution.
- Intégration locale : Codex reçoit la réponse et modifie visuellement vos fichiers dans VS Code.
graph TD;
A[Prompt utilisateur] --> B[Scan du dossier];
B --> C[Lecture des fichiers pertinents];
C --> D[Création du grand contexte];
D --> E[Envoi à OpenAI];
E --> F[Génération du code];
F --> G[Modification locale];
Comment Codex choisit les fichiers
Puisqu'il ne peut pas lire des milliers de fichiers à chaque question, il fait des choix. Voyons plusieurs scénarios :
- Scénario 1 : Modifier une couleur
Fichiers consultés : Principalement les fichiers `.css` ou les composants de style.
Pourquoi : Il sait que les couleurs ne se gèrent généralement pas dans la logique JavaScript. - Scénario 2 : Corriger un bug sur un clic de bouton
Fichiers consultés : Le fichier HTML (pour voir l'ID du bouton) et le fichier JavaScript (pour voir la fonction attachée).
Pourquoi : Une interaction nécessite toujours ces deux couches. - Scénario 3 : Ajouter une nouvelle page complexe
Fichiers consultés : Le routeur du projet, le menu de navigation existant, et l'architecture générale.
Pourquoi : Une nouvelle page doit être reliée au reste de l'application pour exister.
Le contexte est essentiel
Le contexte est l'ensemble des informations dont dispose Codex au moment de répondre. C'est l'essence même de son intelligence.
Comparons deux situations :
Situation A : Peu d'informations (Contexte pauvre)
Vous êtes dans un dossier vide. Vous dites : "Crée un composant de carte produit."
Codex va générer une carte générique, avec des couleurs par défaut (souvent du bleu et du gris), une police standard, et une architecture HTML classique. C'est du "prêt-à-porter".
Situation B : Beaucoup d'informations (Contexte riche)
Vous êtes dans un dossier contenant déjà votre fichier charte-graphique.css et votre fichier produits.js. Vous dites la même chose : "Crée un composant de carte produit."
Codex va analyser vos fichiers. Il verra que votre site est rouge et noir. Il verra que vos produits ont une "taille" et un "poids". La carte générée utilisera VOS couleurs et VOS données. C'est du "sur-mesure".
Plus votre projet avance, plus Codex devient intelligent et pertinent, car il s'imprègne de vos habitudes de code et de vos choix de design.
Pourquoi ouvrir le bon dossier est indispensable
Nous l'avons vu au chapitre 5, mais il faut comprendre pourquoi c'est techniquement si dangereux de se tromper.
- Si vous ouvrez votre dossier "Documents" complet : Codex va scanner des milliers de fichiers PDF, Word et photos. L'analyse prendra un temps infini, sa mémoire explosera (Token Limit Reached) et il ne pourra rien faire.
- Si vous ouvrez le mauvais projet : Vous demandez de modifier la page d'accueil de votre Blog, mais vous êtes dans le dossier de votre application Météo. Codex va chercher `index.html`, trouver celui de la météo, et le détruire pour y mettre un blog.
- Si vous ouvrez le dossier parent (qui contient 3 projets) : Codex va mélanger les styles du projet A avec la logique du projet B. C'est la recette garantie d'un désastre technique.
Comment Codex comprend les relations entre les fichiers
En programmation web, les fichiers ne sont jamais isolés. Ils forment une toile d'araignée.
- HTML ↔ CSS : Le HTML porte des noms de classes (ex:
class="btn"). Le CSS cible ces classes. Codex lit les deux pour s'assurer qu'il utilise les bonnes classes. - HTML ↔ JS : Le HTML possède des identifiants (ex:
id="submit"). Le JS écoute ces identifiants. Si Codex modifie l'ID dans le HTML, il ira le modifier dans le JS. - Système d'imports : Si le fichier A dit
import { data } from './fichierB.js', Codex comprend immédiatement que le fichier B est crucial pour le fonctionnement du fichier A.
graph LR;
HTML[Page HTML] -->|Utilise les classes| CSS[Feuille de Style];
JS[Script JS] -->|Cible les ID| HTML;
JS -->|Importe des données| JSON[Fichier Données];
Les limites de Codex
L'IA n'est pas infaillible. Il est primordial d'accepter ses limites :
- Il peut manquer de contexte : Si vous lui demandez de corriger un bug visuel sans lui dire que le bouton est à l'intérieur d'un formulaire, sa solution CSS pourrait être erronée.
- Il peut interpréter de travers : Le mot "header" désigne à la fois l'en-tête visuel d'un site et des données techniques de serveur. Si votre prompt est ambigu, il peut agir au mauvais endroit.
- Il ne devine pas vos préférences : Face à un problème, il y a souvent 5 manières valables d'écrire le code. Il choisira la plus courante. Si vous en préférez une autre, vous devez l'exiger.
Pourquoi deux personnes obtiennent parfois des réponses différentes
C'est une grande frustration chez les débutants : "Mon collègue a tapé ce prompt, il a eu un super résultat. Moi, le site a crashé. Pourquoi ?"
Parce que le prompt n'est que la partie visible de l'iceberg. L'IA réagit à la somme du Prompt + le Contexte.
Si le collègue avait un code très bien nommé (calculerTotalPanier()) et que vous aviez un code opaque (fonctionX()), Codex a parfaitement compris le projet du collègue, mais a dû deviner le vôtre (et s'est trompé).
Atelier pratique : Comprendre par l'exemple
Ces exercices mentaux vous aideront à anticiper le comportement de Codex.
Exercice 1 : Deviner la cible
Contexte : Votre projet a 3 fichiers (index.html, style.css, script.js).
Prompt : "Le texte est trop petit."
Que fait Codex ? Il scanne le CSS à la recherche des règles `font-size` et proposera de les augmenter.
Exercice 2 : Conflit de compréhension
Contexte : Votre projet a une page `contact.html` et une `about.html`.
Prompt : "Ajoute un logo sur la page."
Que fait Codex ? Il est perdu. Quelle page ? Il vous posera la question ou modifiera `index.html` par défaut.
Exercice 3 : Le pouvoir de l'import
Contexte : Vous êtes dans le fichier `cart.js`.
Prompt : "Calcule la TVA à 20% sur le montant total."
Que fait Codex ? S'il manque de données, il ira chercher si un fichier `products.json` est lié au projet pour trouver les montants.
Exercice 4 : L'erreur invisible
Contexte : Le site plante.
Prompt : "Ça ne marche pas."
Que fait Codex ? Il ne peut rien faire. Sans le message d'erreur de la console, il ne sait pas quel fichier regarder parmi les 50 de votre projet.
Exercice 5 : La protection
Contexte : Vous avez un projet sensible.
Prompt : "Optimise l'apparence mais ne modifie aucune logique métier dans le JS."
Que fait Codex ? Il bloque l'écriture sur tous les fichiers `.js` et se concentre exclusivement sur les fichiers visuels.
Exercice 6 : Comprendre le passé
Contexte : Vous reprenez un vieux projet.
Prompt : "Fais-moi un résumé de l'architecture de ce dossier."
Que fait Codex ? Il scanne l'arborescence complète et vous liste le rôle de chaque grand dossier (src, public, assets).
Exercice 7 : L'hallucination
Contexte : Vous utilisez le framework Vue.js.
Prompt : "Crée un composant React."
Que fait Codex ? Il s'exécute bêtement, créant du code incompatible qui fera planter tout votre projet Vue.js.
Exercice 8 : L'oubli de sauvegarde
Contexte : Vous tapez du code à la main, mais vous ne sauvegardez pas (le point blanc est visible sur l'onglet VS Code).
Prompt : "Que penses-tu de ma nouvelle fonction ?"
Que fait Codex ? Il lit le fichier sur le disque. Il ne voit pas votre nouvelle fonction. Il répond "Quelle fonction ?".
Exercice 9 : La surcharge
Contexte : Vous copiez/collez un document texte de 100 pages dans le prompt.
Prompt : "Code une application basée sur tout ça."
Que fait Codex ? Il plante à cause de la limite de mémoire (tokens).
Exercice 10 : L'explication chirurgicale
Contexte : Vous bloquez sur une ligne de code complexe.
Prompt : "Dans app.js, explique uniquement la ligne 42."
Que fait Codex ? Il se rend ligne 42, lit les lignes 40 à 44 pour le contexte, et vous fournit une explication ciblée.
Les erreurs les plus fréquentes
Maintenant que vous connaissez la mécanique, voici les erreurs logiques que font tous les débutants.
- Symptôme : "Codex modifie mes anciens projets sans que je le demande."
Cause : Vous avez ouvert le dossier "Documents" entier au lieu de cibler un sous-dossier.
Bonne pratique : Vérifiez toujours le nom en haut de la barre latérale gauche de VS Code. - Symptôme : "Il a cassé mon design en changeant le JS."
Cause : Il a renommé un ID en JavaScript sans mettre à jour le CSS associé.
Bonne pratique : Demandez : "Assure-toi de mettre à jour le CSS si tu modifies des ID ou des classes." - Symptôme : "La réponse est géniale, mais elle utilise une bibliothèque que je n'ai pas."
Cause : Vous n'avez pas lu la proposition avant de l'accepter.
Bonne pratique : Lisez toujours. S'il propose `npm install ...`, demandez-lui d'utiliser du code natif (vanilla) à la place. - Symptôme : "Codex ne comprend pas mon code."
Cause : Vos variables s'appellent `a`, `b`, `c` et `truc123`.
Bonne pratique : Renommez vos variables (`prixTotal`, `listeUtilisateurs`). L'IA a besoin de mots pour comprendre le sens. - Symptôme : "Il recrée les mêmes erreurs en boucle."
Cause : Il a conservé votre mauvais code en mémoire dans le contexte de la conversation.
Bonne pratique : Si l'échange devient chaotique, dites-lui d'oublier la précédente conversation ou ouvrez un nouveau terminal. - Symptôme : "La fonctionnalité marche, mais mon code est devenu illisible."
Cause : Codex empile des rustines (patchs) à force de corriger sans cesse le même fichier.
Bonne pratique : Une fois par semaine, demandez-lui : "Prends le temps de refactoriser et nettoyer ce fichier pour qu'il soit plus lisible." - Symptôme : "Il me supprime la moitié de la page."
Cause : Face à un bug complexe, il a décidé que la meilleure solution était de repartir de zéro, sans vous prévenir.
Bonne pratique : L'approche experte vue au chapitre 7 : "Analyse le problème, mais n'écris encore aucun code." - Symptôme : "Je lui donne un prompt parfait, il me répond 'Comment puis-je vous aider ?'"
Cause : Déconnexion réseau ou erreur interne de l'API OpenAI.
Bonne pratique : Re-tapez votre prompt.
Bonnes pratiques : Soyez le chef d'orchestre
L'arborescence est votre amie
Rangez votre projet. Un dossier css/, un dossier images/, un dossier js/. Si votre maison est bien rangée, le majordome (Codex) travaillera dix fois plus vite et se trompera beaucoup moins souvent qu'au milieu d'un capharnaüm de 150 fichiers en vrac.
Utiliser l'IA pour documenter l'IA
Puisque le contexte dicte la qualité, aidez Codex à créer son propre contexte. Si votre projet devient gros, demandez : "Rédige un fichier README.md qui résume toute l'architecture de ce projet". Lors des futures sessions, Codex lira ce fichier et comprendra immédiatement le projet.
Tableau récapitulatif
| Situation | Ce que Codex fait | Bonne pratique |
|---|---|---|
| Lancement initial | Lit le nom du dossier et liste les fichiers. | Ouvrir uniquement le dossier du projet. |
| Demande floue ("Corrige ça") | Tente de deviner le contexte ou demande des précisions. | Préciser le fichier et le symptôme. |
| Demande très précise | Cible immédiatement le fichier concerné. | Donner les noms de fichiers exacts. |
| Projet avec beaucoup de fichiers | Filtre et ne lit que les fichiers les plus pertinents. | Garder une arborescence propre. |
| Erreur console fournie | Analyse l'erreur et trace le problème. | Toujours copier les erreurs rouges. |
| Fichier non sauvegardé | Lit la dernière version sauvegardée sur le disque. | Sauvegarder avant de prompter (Ctrl+S). |
| Présence d'un framework | Adapte sa syntaxe (ex: React hooks). | Laisser les fichiers de config visibles. |
| Code très mal nommé | Peine à comprendre la logique métier. | Utiliser des noms de variables explicites. |
| Dossier "Documents" ouvert | Analyse vos CV et factures. | Ne jamais coder dans un dossier générique. |
| Refactoring massif demandé | Atteint ses limites de mémoire et tronque le code. | Demander le refactoring fichier par fichier. |
| Changement de CSS | Cherche les classes HTML correspondantes. | Nommer le composant visuel (ex: header). |
| Plusieurs projets dans le dossier | Mélange les technologies et s'embrouille. | Un dossier racine par projet technique. |
| Connexion Internet coupée | Plante et affiche une erreur réseau. | Codex nécessite le cloud OpenAI. |
| Instructions contradictoires | Génère un code hybride et buggé. | Relire son prompt avant envoi. |
| Demande de sécurité | Applique les standards de l'industrie (OWASP). | Demander explicitement des audits. |
Foire aux questions
À retenir
Vous n'utilisez plus une boîte noire. Vous comprenez la machine.
- Codex "lit" votre projet uniquement à partir du dossier ouvert. S'il est mal ouvert, le désastre est garanti.
- La qualité d'une réponse de l'IA dépend à 50% de votre prompt et à 50% de l'état de votre code (clarté des noms, organisation).
- Codex ne voit que les fichiers sauvegardés. Toujours faire un Ctrl+S avant de lui parler.
- Plus vous l'obligez à réfléchir à voix haute ("Explique-moi avant de coder"), moins il fera d'erreurs d'interprétation.
Transition vers le chapitre suivant
Maintenant que vous savez comment Codex navigue dans vos dossiers et sélectionne ses informations, vous êtes prêt pour la vraie vie du développement.
Jusqu'ici, nous avons opéré des modifications simples, souvent confinées à un seul fichier. Dans le prochain chapitre, nous allons apprendre à piloter des modifications à grande échelle : comment demander à Codex de créer ou de modifier des dizaines de fichiers simultanément, sans perdre le contrôle de votre projet.