Dot.Blog

Consulting DotNet C#, XAML, WinUI, WPF, MAUI, IA

GitHub Copilot pour développeurs C# : pièges, limites, bonnes pratiques

GitHub Copilot promet de booster la productivité des développeurs en proposant du code en temps réel à partir de commentaires ou de contexte. Mais pour les développeurs C#, l’usage de Copilot soulève plusieurs questions : quelle est son efficacité réelle ? Comment éviter les pièges ? Quand est-il utile ?

Cet article fait le point avec un regard pragmatique et, je l'espère, impartial.

🤖 Qu’est-ce que Copilot exactement ?

Copilot est un assistant de complétion basé sur un modèle de langage (GPT-4). Il est intégré à Visual Studio et Visual Studio Code, et peut :

  • Générer des méthodes entières à partir de la signature ou d’un commentaire
  • Proposer des structures types (pattern matching, boucle, LINQ)
  • Suggérer des appels à des APIs connues (ex. EF Core, ASP.NET, etc.)

✅ Cas d’usage efficaces en C#

Cas d’usage

Efficacité

Notes

Génération de méthodes de service

⭐⭐⭐⭐☆

Très utile avec des commentaires XML ou résumés précis

Ecriture de code répétitif (mapping)

⭐⭐⭐⭐☆

Surtout avec des objets DTO/Entity

Tests unitaires (xUnit, MSTest)

⭐⭐⭐☆☆

À valider soigneusement

LINQ complexe

⭐⭐⭐⭐☆

Très utile, souvent pertinent

Code WPF/WinUI/MAUI (UI)

⭐⭐☆☆☆

Moins efficace, pas conscient du XAML

⚠️ Limites et pièges à éviter

  • Faux positifs syntaxiques : Copilot propose du code valide... mais parfois illogique.
  • Utilisation d’APIs obsolètes : Copilot est parfois formé sur d’anciens exemples.
  • Copie de code inadapté : le modèle peut générer du code qui semble correct mais qui ne respecte ni vos conventions ni votre architecture.
  • Performance : sur des fichiers lourds, le moteur peut ralentir Visual Studio.
  • Confidentialité : éviter d’utiliser Copilot dans des dépôts sensibles sans configuration stricte.

🧩 Conseils de configuration (Visual Studio)

  1. Menu "Tools" → "Options"
  2. Section "GitHub Copilot"
    • Activer/désactiver suggestions automatiques
    • Limiter aux fichiers .cs uniquement
    • Activer le mode "sélectif" pour déclenchement manuel

💡 Bonnes pratiques

  • Valider tout ce que vous acceptez : ne jamais faire confiance aveuglément.
  • Utiliser les commentaires intelligemment : décrire ce que vous voulez faire.
  • Apprendre des suggestions : utiliser Copilot comme assistant pédagogique.
  • Lui apprendre votre style : Copilot s’adapte en partie à votre codebase.
  • Ne pas l’utiliser dans le code métier critique sans relecture.

🧪 Exemple pratique : service de conversion

Commentaire dans un fichier de service :

/// <summary>
/// Convertit un montant en euros vers une autre devise à partir d’un taux de change
/// </summary>
public decimal ConvertEuro(decimal montant, string devise)
{
// Suggestion Copilot :
    if (devise == "USD") return montant * 1.1m;
    if (devise == "GBP") return montant * 0.85m;
    return montant;
}

📝 Code correct mais naïf. À améliorer : gestion dynamique des taux, gestion des exceptions, etc.

🔚 Conclusion

Copilot peut devenir un allié puissant du développeur C# moderne, à condition de rester critique et structuré. Bien utilisé, il permet un gain de temps réel. Mal utilisé, il peut injecter des erreurs ou des dérives dans votre base de code.

Le conseil que je répète à propos des IA et surtout celles pour faire du code : NE LEUR DEMANDER QUE CE QUE VOUS POURRIEZ ECRIRE VOUS-MËMES ET QUE VOUS ETES CAPABLE DE COMPRENDRE ET DE DEBOGUER !

Cela peut paraître curieux, si on ne demande que ce qu'on sait déjà faire... Mais il faut prendre, au moins pour l'instant, ces outils comme des aides à la productivité et non comme des développeurs humains qualifiés sous vos ordres ! On peut aussi s'en servir pour chercher une syntaxe en posant la question en français, c'est super utile. Je ne me rappelle pas de tout sur MAUI, WinUI, WPF, etc, et je n'en ai pas honte. En revanche je sais ce qui existe ou pas. Une recherche type Google est souvent vouée à l'échec alors qu'une question écrite en langage humain précisant ce qu'on cherche sur GitHub Copilot donne généralement un bon résultat rapidement.

A noter aussi que j'ai relevé souvent des mélanges d'environnements (par exemple du code qui marche sous WinUI mais pas sous MAUI pour un projet MAUI). J'en reviens à mon conseil : si vous n'avez pas l'oeil pour savoir que ça cloche et lui faire remarquer, vous allez vous retrouver avec un tas de code bidon dans votre projet. Il va s'excuser et chercher autre chose... Parfois on tourne aussi en rond, allant de code inexact en code inexact (sur certains algorithmes qu'il doit mal connaître comme la génération de rythmes euclidiens par exemple). Si cela arrive, arrêtez tout, utilisez des recherches Google ou  réfléchissez, passer 1h à discuter avec un robot borné est une perte de temps...

Donc je le redis : Ne demandez que ce que vous connaissez, comprenez et pouvez déboguer. Dans ce cadre-là GitHub Copilot est super et j'aime m'en servir.

Stay Tuned !

Faites des heureux, PARTAGEZ l'article !