97 points par baeba 2025-06-05 | 5 commentaires | Partager sur WhatsApp

1. Introduction : les prompts déterminent la productivité du développement

  • Les performances des assistants de code IA dépendent de la qualité des prompts. Une demande claire produit un code précis, tandis qu’une question vague mène à une sortie inutilisable.
  • Savoir rédiger des prompts est désormais une compétence essentielle pour les développeurs, comparable au fait de former un partenaire de développement.
  • Cet article montre, à travers des exemples concrets et des comparaisons, comment de « bonnes questions » produisent du « bon code ».

2. Les 7 principes d’un prompt efficace

Fournir du contexte
  • L’IA ne connaît pas le contexte du projet de l’utilisateur ; il faut donc préciser le langage, le framework, les bibliothèques, les messages d’erreur, l’objectif, etc.
  • Exemple : inclure un contexte technique comme « TypeError lors d’un user fetch dans un environnement Node.js + Express + Mongoose ».
Clarifier l’objectif
  • « Le code ne marche pas » n’aide pas. Mieux vaut demander précisément : « Le résultat attendu est ○○, mais en pratique j’obtiens △△. Pourquoi ? »
Découper les tâches complexes
  • Il est plus efficace de demander étape par étape plutôt que de poser une question sur toute la fonctionnalité d’un seul coup. Ex. : composant > gestion d’état > intégration API.
Inclure des exemples d’entrée/sortie
  • Montrer un exemple de sortie souhaitée aide l’IA à mieux comprendre l’intention. (e.g. [3,1,4][1,3,4])
Attribuer un rôle
  • Définir un rôle, comme « relis ce code comme un développeur React senior », améliore la profondeur et la qualité de la réponse.
Amélioration itérative en mode conversationnel
  • La première réponse n’a pas besoin d’être parfaite. Avec du feedback, l’IA poursuit dans cette direction et produit progressivement des résultats plus affinés.
Maintenir la cohérence du code
  • Si le code lui-même reste cohérent — noms de fonctions, format, commentaires, etc. — l’IA suit aussi cette logique, ce qui améliore la qualité.

3. Stratégies de prompt pour le débogage

Préciser l’erreur et comparer avec le comportement attendu
  • Si l’on fournit ensemble le message d’erreur, les symptômes du problème, le résultat attendu et les valeurs d’entrée, l’IA peut poser un diagnostic précis.
Demander un traçage ligne par ligne
  • Une demande du type « retrace étape par étape à quel moment la valeur de cette variable devient incorrecte » est efficace pour les bugs logiques complexes.
Fournir un code minimal reproductible
  • Donner uniquement le code essentiel qui provoque le problème, plutôt que l’ensemble du code, permet à l’IA d’analyser la cause plus précisément.
Poser des questions de suivi claires
  • Une question directe comme « Quelle condition est erronée dans cette partie ? » est préférable à « Pourquoi j’obtiens ce résultat ? »
Comparer les exemples : mauvaise question vs bonne question
  • Si l’on se contente de dire « le code ne marche pas », on n’obtient que des réponses spéculatives ; en fournissant le message d’erreur et le code, on reçoit une solution précise.

4. Stratégies de prompt pour le refactoring et l’optimisation

Clarifier l’objectif du refactoring
  • Plutôt que de simplement dire « refactore ça », il faut préciser des objectifs concrets comme « améliorer la lisibilité, les performances, moderniser l’API ».
  • Si l’objectif reste vague, l’IA peut tenter des améliorations aléatoires ou modifier le code dans une direction non souhaitée.
Fournir le contexte du langage / de l’environnement
  • En précisant le style du projet ou les contraintes techniques, comme « conversion React classe → fonction » ou « environnement Node.js 14 », on obtient une transformation adaptée.
Demander aussi une explication
  • Si l’on demande, avec le code refactoré, une explication de « pourquoi ce changement a été fait », on y gagne à la fois pour la revue de qualité du code et pour l’apprentissage.
Élever le niveau grâce à une demande basée sur un rôle
  • Une demande comme « refactore ce code comme un développeur TypeScript senior » amène des améliorations plus modernes et plus approfondies.

5. Stratégies de prompt pour implémenter de nouvelles fonctionnalités

Demander la fonctionnalité par étapes
  • Même une fonctionnalité complexe donne des résultats plus fiables si l’on demande successivement : « concevoir la structure → créer l’UI → connecter la logique ».
Fournir le style du code existant
  • En montrant un composant similaire ou les conventions internes, on génère un code cohérent avec le projet. Ex. : « crée un ProductList à partir de UserList ».
Transmettre l’intention avec des commentaires / TODO
  • Dans l’IDE, un commentaire en langage naturel comme // TODO: implémenter la validation de la requête permet à Copilot de générer automatiquement le bloc de code correspondant.
Présenter des exemples d’entrée/sortie
  • En incluant des exemples de valeurs d’entrée et de sortie attendue, l’IA essaie de s’y conformer, ce qui améliore la précision.
Amélioration itérative basée sur le feedback
  • Même si le premier résultat ne répond pas aux attentes, un feedback comme « utilisez map au lieu de filter » est immédiatement pris en compte par l’IA, qui s’améliore.

6. Les 7 schémas de prompts qui échouent (Anti-patterns)

Demandes vagues
  • Une question comme « Pourquoi ce code ne marche pas ? » ne fait émerger que des réponses générales sans intérêt. Incluez le message d’erreur, le code et le résultat attendu.
Surcharge de demandes
  • Une demande composite du type « générer toute l’app + ajouter l’authentification + inclure le script de déploiement » provoque des omissions ou de la confusion ; il faut la découper par étapes.
Absence de question
  • Si l’on jette simplement du code sans formuler de demande, l’IA a tendance à faire un résumé ou à produire un résultat hors sujet ; il faut donc préciser l’objectif de la question.
Critères de réussite flous
  • « Fais-le plus vite » ou « améliore ça » restent trop vagues. Il faut donner des critères mesurables, par exemple : « améliore la complexité temporelle à O(n) ».
Ignorer les questions de l’IA
  • Si l’IA demande « Est-ce fonctionnel ou orienté classe ? », il faut répondre pour obtenir une sortie optimisée.
Manque de cohérence
  • Si le style, la syntaxe ou la terminologie changent sans cesse, l’IA se retrouve elle aussi désorientée. Maintenir un style unique améliore la qualité des réponses.
Références vagues comme « le code ci-dessus »
  • Plus la conversation s’allonge, plus « le code ci-dessus » devient ambigu. Mieux vaut redonner le code ou mentionner explicitement le nom de la fonction.

7. Conclusion : collaborer avec l’IA, c’est dialoguer de façon itérative

  • Le prompt engineering est désormais une compétence centrale de communication pour les développeurs. Fournir du contexte, fixer un objectif clair et améliorer par itérations sont les bases.
  • L’IA n’est pas seulement un assistant de code, mais aussi un collaborateur et un partenaire d’apprentissage. Bien utilisée, elle améliore non seulement la productivité, mais aussi les compétences de développement.
  • En exploitant diverses stratégies — expérimentation, feedback, attribution de rôles — on peut traiter l’IA comme un véritable membre d’équipe en situation réelle.
  • L’objectif final est de générer du code plus vite et plus précisément, tout en l’utilisant activement comme outil d’apprentissage pour devenir un meilleur développeur.

Tableau comparatif : bons vs mauvais prompts

Catégorie Débogage Refactoring Implémentation de fonctionnalité
Bon prompt Le TypeError se produit à ce moment. La valeur attendue est ○○, mais j’obtiens NaN. Merci d’identifier la cause. Supprime la duplication dans cette fonction et améliore les performances. Isole la partie fetch dans un helper et conserve les messages d’erreur. Crée un composant ProductList avec une barre de recherche. Récupère le JSON depuis /api/products, filtre la liste et inclut aussi les états d’erreur et de chargement.
Mauvais prompt Pourquoi ma fonction ne marche pas ? Refactore ça. Crée une fonction de recherche.

5 commentaires

 
bootno2316 2025-06-08

Ce n’est pas si différent de la façon de gérer des programmeurs humains.

 
xguru 2025-06-08

Le playbook du prompt engineering pour les programmeurs

Consultez aussi la version résumée par le bot de synthèse GN+. Le commentaire récapitulatif de Hacker News vaut également le détour.

 
baeba 2025-06-09

Vous l'avez publié en premier..
Merci.

 
bichi 2025-06-05

Même si on leur dit de ne surtout pas faire comme ça, il y en a toujours un sur dix pour le faire quand même -_-

 
mango 2025-06-05

Qu'est-ce que les humains y connaissent !