Si vous lisez ceci, vous connaissez probablement déjà certains cas d’usage et limites des LLM. Plus le prompt et le contexte fournis au modèle d’IA sont précis, meilleurs seront les résultats. De même avec Windsurf, il existe des bonnes pratiques pour rédiger des prompts plus efficaces afin de tirer le meilleur parti de l’outil et d’obtenir le code de la meilleure qualité possible pour accélérer vos flux de travail.
Pour les tâches plus complexes pouvant nécessiter de @‑mentionner des blocs de code spécifiques, utilisez le Chat plutôt que Command.

Composants d’une invite de haute qualité

  • Objectif ou résultat clair
    • Que demandez-vous au modèle d’IA de produire ?
    • Demandez-vous au modèle d’IA un plan ? Du nouveau code ? S’agit-il d’un refactor ?
  • Tout le contexte pertinent pour réaliser la/les tâche(s)
    • Avez-vous correctement utilisé les @‑mentions pour vous assurer que le bon contexte est inclus ?
    • Existe-t-il un contexte spécifique au client qui pourrait ne pas être clair pour Windsurf ?
  • Contraintes nécessaires
    • Y a-t-il des frameworks, bibliothèques ou langages spécifiques qui doivent être utilisés ?
    • Y a-t-il des contraintes de complexité en temps ou en espace ?
    • Y a-t-il des considérations de sécurité ?

Exemples

Exemple n°1 :
  • Mauvais : Écrire des tests unitaires pour tous les cas de test d’un objet Order Book.
  • Bon : En utilisant @class:unit-testing-module, écrire des tests unitaires pour @func:src-order-book-add vérifiant les exceptions levées lorsque le stop-loss est dépassé à la hausse ou à la baisse
Exemple n°2:
  • Mauvais : Refactoriser rawDataTransform.
  • Bon : Refactoriser @func:rawDataTransform en remplaçant la boucle while par une boucle for et en conservant la même structure de données en sortie que @func:otherDataTransformer
Exemple n°3:
  • Mauvais : Créer un nouveau Button pour le Contact Form.
  • Bon : Créer un nouveau composant Button pour @class:ContactForm en utilisant le guide de style de @repo:frontend-components avec le libellé « Continue »