Examiner les meilleures pratiques GitHub Copilot
GitHub Copilot pour Visual Studio Code aide les développeurs à écrire du code plus rapidement et avec moins d’erreurs.
Cependant, GitHub Copilot est un programmeur en binôme basé sur l’IA, pas un programmeur. Pour tirer le meilleur parti de GitHub Copilot, vous devez suivre les meilleures pratiques.
Choisir l’outil GitHub Copilot approprié pour le travail
Bien que les fonctionnalités de saisie semi-automatique du code de GitHub Copilot et les fonctionnalités de conversation de GitHub Copilot partagent certaines fonctionnalités, les deux outils sont mieux utilisés dans des circonstances différentes.
Les saisies semi-automatiques de code fournissent le plus d'avantages lorsqu’elles sont utilisées pour :
- Complétez les extraits de code, les noms de variables et les fonctions à mesure que vous les écrivez.
- Générez du code répétitif.
- Générez du code à partir de commentaires inline en langage naturel.
- Générez des tests pour le développement piloté par les tests.
Par ailleurs, les fonctionnalités de conversation de GitHub Copilot fournissent la valeur la plus élevée lorsqu'elles sont utilisées pour :
- Répondez aux questions sur le code en langage naturel.
- Générez de grandes sections de code, puis effectuez une itération sur ce code pour répondre à vos besoins.
- Effectuez des tâches spécifiques à l’aide des participants du chat, des commandes slash et des variables de chat. Les participants de chat (tels que
@vscodeou@terminal) définissent le contexte d’une requête, les commandes obliques (telles que/explainou/fix) communiquent votre intention et les variables de chat (telles que#fileou#codebase) orientent Copilot sur un contexte spécifique. Différents participants et commandes sont disponibles dans différentes plateformes GitHub Copilot Chat. - Terminez une tâche en adoptant un persona spécifique. Par exemple, vous pouvez indiquer à GitHub Copilot Chat qu'il s'agit d'un développeur C++ senior qui s'intéresse considérablement à la qualité du code, à la lisibilité et à l'efficacité. Après avoir établi le personnage, vous pouvez demander GitHub Copilot pour passer en revue votre code.
Tirer le meilleur parti des suggestions intégrées de GitHub Copilot
GitHub Copilot présente automatiquement des suggestions pour vous aider à coder plus efficacement. GitHub Copilot fournit de meilleures suggestions lorsque vous suivez certaines actions et comportements. Vous pouvez suivre déjà certains de ces comportements et actions, car ils vous aident également, vos collègues et vous-même, à comprendre votre code.
Fournir un contexte pour GitHub Copilot
GitHub Copilot fonctionne le mieux lorsqu'il dispose d'un contexte suffisant pour savoir ce que vous faites et ce que vous voulez obtenir de l'aide. Tout comme vous fournissez à un collègue un contexte pertinent lorsque vous demandez de l’aide, vous devez fournir GitHub Copilot avec le contexte.
Ouvrir des fichiers
Pour les achèvements de code, GitHub Copilot examine les fichiers ouverts dans votre éditeur pour établir le contexte et créer des suggestions appropriées. L’ouverture de fichiers associés dans Visual Studio Code lors de l’utilisation de GitHub Copilot permet de définir le contexte et de GitHub Copilot voir l’image plus grande de votre projet.
Commentaire de niveau supérieur
Tout comme vous donneriez une brève introduction générale à un collègue, un commentaire de niveau supérieur dans un fichier de code peut aider GitHub Copilot comprendre le contexte global du code que vous créez.
Inclusions et références appropriées
Il est préférable de définir manuellement les includes ou références de module dont vous avez besoin pour votre travail. GitHub Copilot pouvez faire des suggestions, mais vous savez probablement mieux quelles dépendances vous devez inclure. Cela peut également informer GitHub Copilot sur les frameworks, les bibliothèques et leurs versions que vous souhaitez utiliser lors de l'élaboration de suggestions.
Noms de fonctions explicites
Comme une méthode appelée fetchData() ne signifie pas beaucoup pour un collègue (ou vous après plusieurs mois), fetchData() n'aidera pas GitHub Copilot à comprendre votre code. L’utilisation de noms de fonctions explicites permet GitHub Copilot de générer des suggestions qui font ce que vous souhaitez.
Commentaires de fonction spécifiques et bien délimités
Un nom de fonction doit être suffisamment descriptif sans être trop long. Les commentaires de fonction peuvent vous aider à renseigner les détails que GitHub Copilot peuvent avoir besoin de connaître.
Prime GitHub Copilot avec un exemple de code
Une astuce pour obtenir GitHub Copilot sur la page droite consiste à copier et coller des exemples de code souhaitables dans un onglet d’éditeur ouvert. L’exemple doit représenter le code que vous souhaitez GitHub Copilot émuler. Fournir un exemple peut aider GitHub Copilot générer des suggestions qui correspondent à la langue et aux tâches que vous souhaitez émuler. Une fois GitHub Copilot vous a aidé à créer du code correspondant à votre objectif, vous pouvez supprimer l’exemple de code. Cette approche est particulièrement utile lorsque vous devez « entraîner » GitHub Copilot. Par exemple, supposons que, par défaut, GitHub Copilot suggère des extraits de code qui implémentent une version antérieure d’une bibliothèque. Vous pouvez insérer dans votre projet du code qui utilise la dernière version de la bibliothèque. Cela permet GitHub Copilot de commencer à suggérer des extraits de code qui utilisent la dernière version de la bibliothèque. Une fois GitHub Copilot appris à utiliser la nouvelle version de la bibliothèque, vous pouvez supprimer l’exemple de code.
Être cohérent et avoir des exigences en matière de qualité
GitHub Copilot va s’appuyer sur votre code pour générer des suggestions qui suivent le modèle existant ; l’adage « garbage in, garbage out » s’applique donc.
Maintenir un niveau de qualité élevé exige de la discipline. En particulier lorsque vous codez rapidement et de manière improvisée pour que cela fonctionne. Vous souhaiterez peut-être désactiver les complétions GitHub Copilot dans le mode « piratage ». Vous pouvez désactiver temporairement les achèvements à partir du menu d'état GitHub Copilot (accessible à partir de la barre d'état de Visual Studio Code).
Tirer le meilleur parti de GitHub Copilot Chat
Lorsque vous utilisez les fonctionnalités de conversation de GitHub Copilot, vous pouvez effectuer plusieurs opérations pour optimiser votre expérience.
Commencer de manière générale, puis préciser
Lors de l’écriture d’une invite pour GitHub Copilot, commencez par donner à GitHub Copilot une description générale de l’objectif ou du scénario. Ensuite, répertoriez les exigences spécifiques. Considérez les requêtes suivantes :
- Écrivez une fonction m’indiquant si un nombre est premier.
- La fonction doit prendre un entier et retourner la valeur true s’il s’agit d’un entier premier.
- La fonction doit lever une erreur si l’entrée n’est pas un entier positif.
Donner des exemples
Utilisez des exemples pour aider GitHub Copilot comprendre ce que vous voulez. Vous pouvez fournir des exemples de données d’entrée, des exemples de sorties et des exemples d’implémentations.
Diviser les tâches complexes en tâches plus simples
Si vous souhaitez GitHub Copilot effectuer une tâche complexe ou volumineuse, divisez la tâche en plusieurs tâches simples et petites. Par exemple, au lieu de demander GitHub Copilot pour générer un puzzle de recherche de mots, décomposez le processus en tâches plus petites et demandez GitHub Copilot pour les accomplir un par un :
- Écrire une fonction pour générer une grille de lettres de 10 par 10.
- Écrire une fonction pour rechercher tous les mots dans une grille de lettres, en fonction d’une liste de mots valides.
- Écrire une fonction qui utilise les fonctions précédentes pour générer une grille de 10 par 10 lettres contenant au moins 10 mots.
- Mettre à jour la fonction précédente pour imprimer la grille des lettres et 10 mots aléatoires à partir de la grille.
Éviter les ambiguïtés
Évitez les termes ambigus. Par exemple, ne demande pas ce que ça fait lorsque 'this' peut être le fichier actuel, la dernière réponse de GitHub Copilot ou un bloc de code spécifique. Au lieu d’utiliser des termes ambigus, soyez spécifique : « à quoi sert la fonction createUser ? »
Préciser le code approprié
Si vous utilisez GitHub Copilot Conversation dans votre IDE, ouvrez le ou les fichiers ou mettez en surbrillance le code que vous souhaitez GitHub Copilot référencer. Utilisez des participants à la conversation, des commandes slash et des variables de chat dans les requêtes pour définir le contexte. Par exemple, spécifiez les fichiers gitHub Copilot Chat à référencer.
Utiliser des participants de chat, des commandes de barre oblique et des variables de chat
Les participants de conversation sont conçus pour collecter un contexte supplémentaire à propos soit d’un codebase, soit d’un domaine ou d’une technologie spécifique. Lorsque vous spécifiez le participant approprié, GitHub Copilot Conversation peut trouver et fournir de meilleures informations à envoyer au serveur principal GitHub Copilot. Par exemple, utilisez @vscode lorsque vous posez des questions sur les fonctionnalités et les API Visual Studio Code.
Les commandes slash aident GitHub Copilot Chat à comprendre votre intention lorsque vous posez une question. Découvrez-vous une base de code (/explain), voulez-vous vous aider à résoudre un problème (/fix) ou créez-vous des cas de test (/tests) ? En laissant GitHub Copilot Chat savoir ce que vous essayez de faire, il peut régler sa réponse à votre tâche et fournir des commandes, des paramètres et des extraits de code utiles.
Les participants de conversation, tels que @terminal ou @vscode, peuvent contribuer à des variables de conversation qui fournissent un contexte spécifique au domaine. Vous pouvez référencer une variable de conversation dans votre invite de conversation à l’aide du # symbole. Vous pouvez utiliser des variables de conversation pour être plus spécifiques sur le contexte de votre prompt.
Par exemple, la #file variable de conversation vous permet de référencer des fichiers spécifiques à partir de votre espace de travail dans votre invite de conversation. Cela permet de rendre les réponses de GitHub Copilot Chat plus pertinentes pour votre code en fournissant un contexte sur le fichier avec lequel vous travaillez. Vous pouvez poser des questions telles que «Can you suggest improvements to #file:package.json? » ou «How do I add an extension in #file:devcontainer.json? ». L’utilisation de la variable #file peut vous aider à obtenir des réponses plus ciblées et précises de GitHub Copilot.
Expérimenter et itérer
Si vous n’obtenez pas le résultat souhaité, modifiez votre demande et réessayez. Référencez la réponse précédente dans votre prochaine requête. Vous pouvez également supprimer la réponse précédente et recommencer.
Conserver un historique pertinent
GitHub Copilot Chat utilise l’historique des conversations pour obtenir du contexte sur votre demande. Pour vous assurer que GitHub Copilot utilise un historique de conversation pertinent :
- Utilisez les threads pour démarrer une nouvelle conversation pour une nouvelle tâche.
- Supprimez les requêtes qui ne sont plus pertinentes ou qui ne vous ont pas donné le résultat escompté.
et suivez les bonnes pratiques de codage.
Si vous n'obtenez pas les réponses souhaitées lorsque vous demandez GitHub Copilot des suggestions, assurez-vous que votre code existant suit les meilleures pratiques et est facile à lire. Par exemple :
- Utilisez des modèles et un style de code cohérents.
- Utilisez des noms descriptifs pour les variables et les fonctions.
- Commentez votre code.
- Structurez votre code sous forme de composants modulaires et étendus.
- Incluez des tests unitaires.
Résumé
GitHub Copilot est un outil puissant qui peut vous aider à écrire du code plus rapidement et avec moins d’erreurs. Toutefois, pour tirer le meilleur parti de GitHub Copilot, vous devez suivre les meilleures pratiques. En choisissant l’outil GitHub Copilot approprié pour le travail, en fournissant un contexte et en suivant les bonnes pratiques de codage, vous pouvez optimiser votre expérience avec GitHub Copilot.