Présentation
Lorsque vous commencez à travailler sur une base de code inconnue ou que vous êtes invité à modifier une partie d’une base de code volumineuse que vous n’avez jamais touché auparavant, vous avez généralement besoin d’un expert en matière de matière (PME) pour vous mettre à jour. L’expert métier est généralement un développeur plus expérimenté de l’équipe, qui comprend comment les différentes parties du code s’articulent et peut répondre à vos questions. Les PME ne sont pas toujours disponibles : elles peuvent se trouver dans un autre fuseau horaire, occupées avec leur propre travail ou ne plus être en équipe du tout.
Lorsque vous devez comprendre une base de code inconnue, vous vous appuyez généralement sur un collègue qui connaît le code. Lorsque cette personne n’est pas disponible, Copilot pour CLI peut combler l’écart. Dans ce tutoriel, vous poserez Copilot pour CLI des questions sur le code d’un dépôt, découvrirez des techniques de formulation de requêtes permettant d’obtenir des réponses fondées sur le code, et acquerrez l’assurance nécessaire pour commencer à apporter des modifications.
Quand utiliser une PME IA (ou même Quand dois-je utiliser une PME IA ?)
Ce didacticiel est utile chaque fois que vous devez comprendre une base de code plus rapidement. Par exemple:
- Vous venez de rejoindre une équipe ou un projet de open source et vous devez être rapidement opérationnel.
- Vous devez modifier une partie d’une base de code volumineuse sur laquelle vous n’avez encore jamais travaillé auparavant.
- Vous avez hérité d’un service ou d’une bibliothèque que les auteurs d’origine ne conservent plus.
Le tutoriel suppose que vous êtes à l’aise dans un terminal et que vous lisez du code dans le langage utilisé par le projet que vous explorez. Vous n’avez pas besoin d’une expérience préalable avec Copilot pour CLI.
Prerequisites
Avant de commencer, vérifiez que vous disposez des éléments suivants :
- Un GitHub Copilot abonnement. Consultez « Plans de GitHub Copilot ».
- Copilot pour CLI installé et authentifié. Consultez « Commencer avec l'interface en ligne de commande GitHub Copilot ».
- Clone local du référentiel que vous souhaitez explorer. Consultez « Clonage d’un dépôt ».
1. Démarrer une session dans le référentiel
Ouvrez un terminal et passez à la racine du référentiel sur lequel vous souhaitez en savoir plus. Lancer Copilot pour CLI depuis la racine du dépôt signifie qu’il a accès à l’ensemble du code source comme contexte.
cd PATH/TO/YOUR/REPOSITORY copilot
cd PATH/TO/YOUR/REPOSITORY
copilot
Vous êtes maintenant dans une session interactive Copilot pour CLI . Tout ce que vous tapez à l’invite est envoyé au modèle, qui peut lire des fichiers dans le référentiel, exécuter des commandes shell telles que git log ou grep, et répondre à vos questions en fonction de ce qu’il trouve.
Conseil
- Si vous approuvez Copilot pour CLI l’exécution de commandes sans demander d’approbation, tout en bloquant les modifications de fichier, commencez par
copilot --deny-tool='write' --allow-all-tools. Consultez « Autorisation et refus de l’utilisation de l’outil ». - Si vous travaillez dans une base de code très volumineuse, vous pouvez obtenir de meilleurs résultats en commençant Copilot pour CLI par le sous-répertoire approprié. Cela limite le contexte aux fichiers les plus pertinents.
2. Fondez vos réponses sur le code, et non sur la documentation
La plupart des référentiels contiennent un mélange de code et de documentation : fichiers README, notes de conception, diagrammes d’architecture, et ainsi de suite. La documentation est utile pour découvrir un projet, mais elle peut être obsolète. Si vous posez Copilot pour CLI une question sur le comportement du code et qu’il récupère une réponse à partir d’un fichier Markdown obsolète, vous obtiendrez une réponse confiante qui est incorrecte.
Avant de commencer à poser des questions, dites Copilot pour CLI à baser ses réponses sur le code lui-même et à signaler toute incertitude plutôt que de combler les lacunes. Par exemple:
For the rest of this session, when I ask how something works, base your answer on the code in this repository, not on documentation files such as README.md or files under docs/. If a documentation file conflicts with the code, treat the code as the source of truth. If you can't find a definitive answer in the code, say so - don't guess.
For the rest of this session, when I ask how something works, base your answer on the code in this repository, not on documentation files such as README.md or files under docs/. If a documentation file conflicts with the code, treat the code as the source of truth. If you can't find a definitive answer in the code, say so - don't guess.
Vous pouvez placer ce type de préambule dans un fichier d’instructions personnalisé et le réutiliser entre les sessions. Vous n’avez donc pas besoin de le retyper à chaque fois. Consultez « Ajout d’instructions personnalisées pour CLI GitHub Copilot ».
3. Obtenir une vue d’ensemble de la base de code
Commencez par des questions générales pour créer une carte mentale du projet. L’objectif est de comprendre la forme du code (où sont les points d’entrée, quels répertoires contiennent ce qui et comment les éléments principaux s’adaptent) avant d’explorer une fonctionnalité spécifique.
Essayez des suggestions comme :
Give me an overview of this codebase. What does the application do, what are the main components, and how do they communicate? Cite the files you used as evidence.
Give me an overview of this codebase. What does the application do, what are the main components, and how do they communicate? Cite the files you used as evidence.
What are the entry points for this application? For each entry point, tell me which file contains the entry point and which directories contain the code it calls into.
What are the entry points for this application? For each entry point, tell me which file contains the entry point and which directories contain the code it calls into.
Demander des citations et des preuves est importante. Lorsque Copilot pour CLI vous indique « cela se trouve dans src/auth/middleware.ts », vous pouvez ouvrir ce fichier et vérifier par vous-même. Si la citation ne correspond pas à ce que vous trouvez, c’est un signal utile qui doit vous inciter à contester et à poser des questions complémentaires.
4. Explorer une fonctionnalité spécifique
Une fois que vous avez une vue d’ensemble, limitez la zone à modifier. Traitez-le comme une conversation, pas une seule requête. Chaque réponse présente les termes, les noms de fichiers et les concepts que vous pouvez utiliser dans votre prochaine question.
Il est judicieux de poser des questions similaires qui abordent un sujet de différents angles. Cela permet de vous assurer que vous avez une vue d’ensemble complète et vous donnera l’assurance que Copilot n’a pas mal interprété ce sur quoi vous cherchez à obtenir des informations, et n’a pas omis un détail important.
Par exemple, supposons que vous ayez été invité à ajouter une limitation de débit à un point de terminaison d’API particulier et que vous n’avez jamais travaillé sur cette partie du code avant, vous pouvez commencer par des questions telles que :
Is there any existing rate limiting in this codebase? If so, where is it implemented, and how is it configured?
Is there any existing rate limiting in this codebase? If so, where is it implemented, and how is it configured?
If I wanted to add per-user rate limiting to the /api/v1/upload endpoint, which files would I most likely need to change, and which existing patterns in the codebase should I follow?
If I wanted to add per-user rate limiting to the /api/v1/upload endpoint, which files would I most likely need to change, and which existing patterns in the codebase should I follow?
Poser des questions de suivi dans la même session CLI vous permet d’explorer les détails d’une fonctionnalité et fournit Copilot le contexte dont elle a besoin pour vous donner des réponses spécifiques qui vous indiquent ce que vous devez savoir.
5. Examiner le comportement et les cas de périphérie
La lecture du code vous indique ce que fait le code. Il ne vous dit souvent pas ce que le code est censé faire, ou comment il se comporte dans des situations inhabituelles. Il s’agit des questions où une PME humaine est la plus précieuse et où Copilot pour CLI peut vous aider quand aucun humain n’est disponible.
Voici quelques exemples de questions de comportement et de cas de périphérie que vous pouvez poser :
What happens if the database connection drops while a request is being processed? Walk me through the error handling, based on the code.
What happens if the database connection drops while a request is being processed? Walk me through the error handling, based on the code.
The `getUser` function takes a `userId` parameter. What validation is performed on it before it reaches the database query? Are there any code paths where an unvalidated value could reach the query?
The `getUser` function takes a `userId` parameter. What validation is performed on it before it reaches the database query? Are there any code paths where an unvalidated value could reach the query?
Lorsque vous obtenez une réponse, enchaînez avec « montre-moi le code » ou « dans quel fichier avez-vous trouvé cela ? » s’il n’est pas déjà cité. Cela vous donne un moyen de contrôler et de valider la réponse.
6. Utiliser l’historique Git comme autre source
Un grand nombre de contextes utiles se trouvent dans l’historique Git plutôt que dans le code actuel : pourquoi une fonction a été écrite de la façon dont elle était, lorsqu’un bogue a été résolu pour la dernière fois, qui a initialement ajouté un module.
Copilot pour CLI peut exécuter git des commandes pour vous et utiliser la sortie pour répondre aux questions que vous n’avez pas pu facilement répondre en lisant le code seul.
Essayez des suggestions comme :
When was the `PaymentProcessor` class introduced, and what was the original commit message? Has it been substantially refactored since then?
When was the `PaymentProcessor` class introduced, and what was the original commit message? Has it been substantially refactored since then?
Look at the last 20 commits that touched files under `src/billing/`. Summarize what kinds of changes have been made recently.
Look at the last 20 commits that touched files under `src/billing/`. Summarize what kinds of changes have been made recently.
Who has made the most commits to `src/auth/`? Use that information to suggest the best person on this team to ask about authentication.
Who has made the most commits to `src/auth/`? Use that information to suggest the best person on this team to ask about authentication.
7. Vérifiez avant d’approuver
Copilot pour CLI est une PME puissante, mais ce n’est pas infaillible. Il peut mal lire du code, confondre des fichiers qui se ressemblent ou, parfois, inventer des choses. Traitez ses réponses de la façon dont vous traitez les conseils d’un collègue utile mais fallible : utile comme point de départ, mais il vaut la peine de vérifier avant d’agir sur quelque chose d’important.
Quelques habitudes vous empêcheront d’avoir des difficultés :
- Vérifiez les fichiers cités. Lorsqu’Copilot pour CLI fait référence à un fichier spécifique ou à un numéro de ligne, ouvrez-le et vérifiez. Si la citation est incorrecte, traitez le reste de la réponse avec davantage de scepticisme.
- Exécutez des choses vous-même. Si Copilot pour CLI vous indique qu’une fonction retourne
nullpour une entrée vide, écrivez un test rapide ou une invocation dans le REPL qui l’appelle avec une entrée vide et vérifiez. - Faites vérifier par des humains. Lorsque la réponse compte (sécurité, intégrité des données, tout ce dont vous seriez gêné de vous tromper en production), utilisez la réponse de Copilot pour CLI comme point de départ et confirmez-la avec un expert métier ou une revue de code.
Conclusion
Dans ce tutoriel, vous avez utilisé Copilot pour CLI comme PME personnelle pour :
- Obtenez une vue d’ensemble d’une base de code inconnue, ancrée dans des fichiers réels.
- Explorez une fonctionnalité spécifique afin de savoir quels fichiers modifier et quels modèles suivre.
- Examinez le comportement, les cas de périphérie et l’historique Git.
- Vérifiez les réponses, de sorte que vous pouvez vous appuyer sur eux lorsqu’il est important.
Utilisé de cette façon, Copilot pour CLI ne remplace pas les PME humaines, mais cela vous rend moins dépendant pour les questions quotidiennes qui se posent pendant votre travail. Vos collègues humains peuvent concentrer leur temps sur les questions qui ont réellement besoin de leur expérience, et vous pouvez continuer à bouger quand ils ne sont pas autour.
Étapes suivantes
- Enregistrez vos préambules d’invite les plus utiles sous forme d’instructions personnalisées, afin de pouvoir les réutiliser entre les sessions et les projets. Consultez « Ajout d’instructions personnalisées pour CLI GitHub Copilot ».
- Une fois que vous avez compris la zone du code que vous souhaitez modifier, utilisez Copilot pour CLI cette option pour vous aider à apporter la modification. Consultez Refactorisation du code avec GitHub Copilot et Écriture de tests avec GitHub Copilot.
- Découvrez comment contrôler les outils Copilot pour CLI qui peuvent s’exécuter pendant une session. Consultez « Autorisation et refus de l’utilisation de l’outil ».