Le playbook du prompt engineering pour les programmeurs
(addyo.substack.com)- Les assistants de code IA ne peuvent pas connaître d’eux-mêmes l’intention d’un projet, donc la qualité du résultat varie fortement selon la qualité du contexte, des objectifs et des exemples fournis par le développeur
- En débogage, il faut fournir non seulement le code et l’erreur, mais aussi le comportement attendu, le comportement réel et l’environnement d’exécution, et réduire le périmètre du problème avec une trace ligne par ligne ou un exemple minimal reproductible
- Pour le refactoring et l’optimisation, il ne suffit pas de demander de faire « mieux » : il faut clarifier les critères de réussite comme la suppression des doublons, le traitement parallèle, le maintien de la gestion des erreurs ou les contraintes de version
- Pour implémenter une nouvelle fonctionnalité, il est plus sûr de la découper en petites étapes — plan, squelette, gestion d’état, intégration d’API, edge cases — à examiner puis étendre, plutôt que de tout confier d’un coup
- Les questions ambiguës, les demandes excessives, les dumps de code sans question et les références floues nuisent au résultat ; il faut traiter l’IA non comme un générateur ponctuel, mais comme un pair programmer conversationnel et itératif
Principes de base pour bien utiliser les assistants de code IA
- Les assistants de code IA peuvent aider à l’autocomplétion de fonctions, suggérer des corrections de bugs et même générer des modules ou des MVP, mais l’intention concrète du projet dépend des informations fournies par l’utilisateur
- Un bon prompt traite l’IA comme un « collaborateur qui prend tout au pied de la lettre » et indique clairement le résultat et le format attendus
- Les principes de base sont les suivants
- Fournir un contexte riche : inclure le langage, le framework, les bibliothèques, les fonctions ou extraits de code pertinents, le message d’erreur exact et le comportement attendu
- Préciser l’objectif : au lieu de « pourquoi ça ne marche pas ? », poser une question ciblée comme « pourquoi cette fonction JavaScript renvoie
undefinedau lieu de la valeur attendue, et comment la corriger ? » - Décomposer les tâches complexes : ne pas demander une grosse fonctionnalité d’un seul bloc, mais avancer séquentiellement, par exemple création du squelette d’un composant React, ajout de la gestion d’état, puis intégration des appels API
- Donner des exemples d’entrée et de sortie : des exemples comme une entrée
[3,1,4]qui doit renvoyer[1,3,4]réduisent l’ambiguïté des exigences - Attribuer un rôle : donner un rôle comme « senior React developer », « JavaScript performance expert » ou « code reviewer » permet d’ajuster la profondeur et le style de la réponse
- Itérer et corriger : si la première réponse ne convient pas, réorienter via des demandes de suivi, par exemple utiliser une boucle au lieu de la récursion, améliorer les noms de variables ou ajouter des commentaires
- Préserver la clarté du code : des noms de fonctions et de variables explicites, un format cohérent, des commentaires et des docstrings aident l’IA à comprendre l’intention du code
Modèles de prompts pour le débogage
- Une demande de débogage doit inclure ce que le code est censé faire, ce qui se passe réellement et quelle erreur se produit
- Un bon prompt de débogage comprend généralement les informations suivantes
- le langage utilisé et l’environnement d’exécution
- le code problématique
- le message d’erreur exact ou la sortie incorrecte
- la sortie attendue
- un exemple d’entrée
- les méthodes déjà essayées
- Pour les bugs logiques complexes, on peut demander à l’IA une trace d’exécution ligne par ligne afin de suivre l’évolution de l’état
- Exemple : « Suis l’évolution de la valeur de
totalà chaque étape dans cette fonction et trouve où l’accumulation devient incorrecte »
- Exemple : « Suis l’évolution de la valeur de
- Même si la base de code est grande, s’il est possible de créer un petit extrait qui reproduit le bug, il vaut mieux le présenter comme exemple minimal reproductible
- Si la première réponse n’est utile qu’en partie, on peut poursuivre avec des questions de suivi comme « montre-moi le code corrigé » ou « explique pourquoi cette modification résout le problème »
Exemple de débogage : question ambiguë et question améliorée
- Le code d’exemple est une fonction Node.js/JavaScript
mapUsersById(users)censée convertir un tableau d’utilisateurs en objet indexé par ID - Le bug est `for (let i = 0; i
Aucun commentaire pour le moment.