03 Copilot dans l’IDE

Choisir l’interface adaptée

3.10 Bonnes pratiques d’usage dans VS Code / JetBrains / Visual Studio 🧰

Principe général

Les interfaces changent légèrement selon l’IDE, mais la logique reste la même :

  • Inline suggestions = compléter rapidement ;
  • Chat = poser des questions ;
  • Inline Chat = modifier localement ;
  • Ask Mode = comprendre ;
  • Copilot Edits / edit mode = appliquer une modification contrôlée ;
  • Plan Mode = préparer une tâche complexe ;
  • CLI = aider dans le terminal.

Bonnes pratiques dans VS Code 🟦

VS Code est souvent l’environnement le plus riche pour Copilot.

Bonnes pratiques :

  • utiliser Inline Suggestions pour coder vite ;
  • utiliser Chat pour comprendre et générer des tests ;
  • utiliser Inline Chat pour modifier une fonction sélectionnée ;
  • référencer les fichiers utiles ;
  • demander des explications avant d’accepter un changement risqué ;
  • utiliser Plan Mode pour les changements complexes ;
  • relire les diffs avant d’accepter.

Exemple VS Code

Tu veux ajouter des tests à une fonction.

Mauvais prompt :

Texte
Add tests.

Bon prompt :

Texte
Generate Jest unit tests for the selected function.
Include:
- valid input
- invalid input
- boundary values
- null or undefined values
- expected thrown errors
Do not modify production code.

Bonnes pratiques dans JetBrains 🧠

Dans JetBrains, Copilot est très utile pour :

  • Java ;
  • Kotlin ;
  • Python ;
  • JavaScript ;
  • TypeScript ;
  • Go ;
  • PHP ;
  • Ruby ;
  • etc.

Bonnes pratiques :

  • utiliser les intentions de l’IDE avec Copilot ;
  • sélectionner précisément le code avant de demander une modification ;
  • demander des tests compatibles avec le framework du projet ;
  • vérifier que Copilot respecte les conventions du projet ;
  • utiliser les inspections JetBrains en complément.

Exemple JetBrains

Prompt :

Texte
Refactor this Spring service to improve readability.
Keep transactional behavior unchanged.
Do not change public method signatures.
Suggest unit tests using JUnit 5 and Mockito.

Ici, tu donnes :

  • framework ;
  • contrainte ;
  • comportement à préserver ;
  • framework de test.

Bonnes pratiques dans Visual Studio 🟪

Visual Studio est très pertinent pour :

  • C# ;
  • .NET ;
  • ASP.NET ;
  • tests xUnit/NUnit/MSTest ;
  • projets enterprise.

Bonnes pratiques :

  • demander des corrections avec contexte C# ;
  • préciser le framework de test ;
  • vérifier les changements dans le diff ;
  • demander des suggestions de performance ;
  • utiliser Copilot pour expliquer les erreurs de compilation ;
  • faire attention aux patterns .NET modernes.

Exemple Visual Studio

Prompt :

Texte
Generate xUnit tests for this C# service method.
Use Moq for dependencies.
Cover:
- successful path
- not found case
- invalid input
- exception from repository

Bonnes pratiques communes ✅

Toujours :

  • donner un objectif clair ;
  • préciser le langage/framework ;
  • préciser les contraintes ;
  • limiter le scope ;
  • demander des tests ;
  • vérifier la sécurité ;
  • relire les changements ;
  • exécuter les tests ;
  • vérifier les warnings ;
  • faire une review humaine.

Anti-patterns à éviter ❌

Évite :

Texte
Fix everything.
Rewrite the whole app.
Make it secure.
Optimize this.
Do the best solution.

Ces prompts sont trop vagues.

Préférer :

Texte
Refactor only the selected function to reduce duplication.
Do not change behavior.
Keep the public API unchanged.
Add unit tests for the changed logic.

3.11 Cas d’examen : quelle interface utiliser selon le besoin ? 🧪

Cette section est très importante. L’examen peut te donner un scénario et te demander quelle fonctionnalité utiliser.

Tableau de décision rapide

BesoinInterface recommandée
Compléter une ligne de codeInline suggestion
Générer une petite fonctionInline suggestion ou Inline Chat
Expliquer un bloc de codeCopilot Chat / Ask Mode
Modifier une fonction sélectionnéeInline Chat / Copilot Edits (edit mode)
Générer des tests avec contraintesCopilot Chat
Corriger une erreur localeInline Chat / Copilot Edits (edit mode)
Comprendre une codebaseCopilot Chat / Ask Mode
Planifier une migrationPlan Mode
Modifier plusieurs fichiersCopilot Edits (edit mode) / Agent Mode selon contexte
Générer une commande terminalCopilot CLI
Reviewer une PRCopilot Code Review
Résumer une PRPR summary

Pour expliquer une commande, organiser du contexte (Spaces) ou connecter un système externe (MCP), voir 4.15 et 5.10.

Cas 1 : Compléter du code simple

Scénario :

Un développeur écrit une fonction utilitaire simple et veut que Copilot complète la logique.

Meilleure interface :

Texte
Inline suggestion

Pourquoi ?

Parce que le besoin est local, court et directement lié à l’écriture de code.

Cas 2 : Comprendre une fonction complexe

Scénario :

Un développeur rejoint une équipe et ne comprend pas une fonction de 150 lignes.

Meilleure interface :

Texte
Copilot Chat / Ask Mode

Prompt recommandé :

Texte
Explain this function step by step.
Summarize its purpose, inputs, outputs, side effects, and possible edge cases.

Pourquoi ?

Parce qu’il faut comprendre avant de modifier.

Cas 3 : Corriger une fonction sélectionnée

Scénario :

Une fonction ne gère pas les inputs invalides.

Meilleure interface :

Texte
Inline Chat / Copilot Edits (edit mode)

Prompt recommandé :

Texte
Update the selected function to handle invalid inputs.
Do not change the public API.
Throw descriptive errors where appropriate.

Cas 4 : Générer des tests

Scénario :

Une équipe veut améliorer la couverture de tests d’un service.

Meilleure interface :

Texte
Copilot Chat

Prompt recommandé :

Texte
Generate unit tests for this service using pytest.
Cover successful cases, invalid inputs, edge cases, and dependency failures.
Explain each test briefly.

Cas 5 : Migration technique

Scénario :

Une équipe veut migrer un module Node.js de callbacks vers async/await.

Meilleure interface :

Texte
Plan Mode

Prompt recommandé :

Texte
Create a migration plan to convert this module from callbacks to async/await.
Do not modify code yet.
Include affected files, risks, testing strategy, and rollback considerations.

Pourquoi ?

Parce qu’une migration doit être pensée avant d’être appliquée.

Cas 6 : Code sensible sécurité

Scénario :

Copilot propose une modification sur une logique d’authentification.

Meilleure approche :

Texte
Ask Mode first, then Copilot Edits or Agent Mode only after understanding.

Prompt recommandé :

Texte
Analyze this authentication code for security risks.
Focus on password handling, session management, input validation, and error messages.
Do not modify the code yet.

Ensuite seulement :

Texte
Update the code to fix the identified issues.
Keep behavior backward compatible where possible.

À retenir pour le GH-300

  • Simple et local : suggestion inline ou Inline Chat. Comprendre : Ask Mode ou Chat. Modifier précisément : Copilot Edits.
  • Complexe ou risqué : Plan Mode d’abord. Délégation avec autonomie : Agent Mode. Terminal : Copilot CLI.
  • Un prompt cadré (objectif, périmètre, contraintes, tests) vaut mieux que « fix everything ».
  • Les noms d’interface varient selon l’IDE ; la logique du choix reste la même.