Techniques GitHub Copilot appliquées

Effectué

Dans les unités précédentes, nous avons montré comment configurer Copilot et mentionné comment il peut vous rendre plus rapide en tant que développeur commençant à écrire du code.

Dans cette unité, nous verrons comment Copilot peut vous aider à réaliser des projets existants et des tâches plus complexes.

Tâches avancées avec GitHub Copilot

Il est courant qu’un ingénieur utilise un projet existant. Lors d’une correction de code ou d’une implémentation de fonctionnalités, nous devons écrire des tests et une documentation, et travailler avec des commandes de terminal. Examinons quelques façons de le réaliser en utilisant GitHub Copilot.

Invites implicites

Bien que vous puissiez être spécifique dans des invites pour obtenir l’aide de GitHub Copilot, vous pouvez tirer parti de fonctionnalités fournissant implicitement une invite élaborée d’avance pour recevoir une réponse appropriée.

Par exemple, si vous travaillez sur un projet Python et que vous avez un fichier ouvert avec le code suivant détenant un bogue :

with open("file.txt", "r") as file:
    # Read the file and print the content
    contents = file.read

Après la sélection du code et l’utilisation de Ctrl+I sous Windows, ou Command+I sur un Mac, vous pouvez demander à GitHub Copilot de vous aider à corriger le code à l’aide de la conversation inline et la commande à barre oblique /fix.

Si vous tapez /fixuniquement, vous pouvez obtenir une réponse de GitHub Copilot similaire à cette suggestion : « Pour corriger le code, j’ajouterais des parenthèses après file.read pour appeler la méthode de lecture et corriger la faute de frappe dans le nom de la méthode ».

Les commandes de barre oblique peuvent être utilisées à la fois dans la conversation inline et l’interface de conversation. En plus de la /fix commande, voici quelques-unes des commandes de barre oblique les plus utiles que vous pouvez utiliser dans la conversation Copilot :

  • /doc: ajoute des commentaires au code spécifié ou sélectionné.
  • /explain: obtient des explications sur le code.
  • /generate: génère du code pour répondre à la question spécifiée.
  • /help: obtient de l’aide sur l’utilisation de la conversation Copilot.
  • /optimize: analyse et améliore le runtime du code sélectionné.
  • /tests: crée des tests unitaires pour le code sélectionné.

L’utilisation de commandes à barre oblique permet une interaction facilitée avec GitHub Copilot et vous aide à obtenir de meilleures réponses sans ne plus avoir à écrire des invites.

L’association de fonctionnalités telles que les commandes à barre oblique avec une conversation en ligne vous permet de choisir le moyen les plus approprié pour vous et le code que vous utilisez.

Contexte sélectif

Vous pouvez personnaliser GitHub Copilot pour qu’il fournisse des suggestions en fonction du contexte sur lequel vous travaillez. Par exemple, vous pouvez demander à GitHub Copilot de fournir des suggestions basées sur l’ensemble de l’espace de travail ou de la sortie de terminal.

GitHub Copilot peut vous offrir une suggestion précise pour votre projet sans vous demander d’ouvrir plusieurs fichiers. Imaginons que vous devez créer un package de votre projet en utilisant un Dockerfile. Un Dockerfile est un fichier spécial qui doit avoir des instructions spécifiques pour empaqueter votre projet. Vous pouvez utiliser l’agent @workspace pour demander à GitHub Copilot comment vous aider. Par exemple, ouvrez GitHub Copilot Chat et tapez la commande suivante :

@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?

Vous recevez une réponse qui explique les étapes afin de créer un Dockerfile pour votre projet, ainsi que des explications sur ce que les étapes du fichier vont effectuer.

Comme toujours, si les suggestions ne correspondent pas exactement à ce que vous recherchez, vous pouvez reformuler l’invite et être plus spécifique. Par exemple, vous pouvez demander à GitHub Copilot d’utiliser une étape particulière lors de la création du Dockerfile :

@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.

En plus de l’agent @workspace , vous pouvez utiliser d’autres agents tels que @terminal, @fileet @directory pour obtenir des suggestions spécifiques au contexte :

  • @terminal: fournit des suggestions basées sur la sortie du terminal.
    • Exemple : @terminal Comment corriger le message d’erreur que je vois ?
  • @file: se concentre sur le contenu d’un fichier spécifique.
    • Exemple : @file Pouvez-vous m’aider à refactoriser cette fonction dans main.py ?
  • @directory: considère le contenu d’un répertoire spécifique.
    • Exemple : @directory Comment puis-je optimiser les scripts dans le répertoire utils ?

Si vous êtes bloqué ou si vous n'obtenez pas les résultats souhaités, vous pouvez reformuler l'invite ou commencer à écrire du code pour que Copilot s'auto-complète.

Remarque

Même si vous pouvez être spécifique avec @workspace, GitHub Copilot utilise par défaut les fichiers ouverts dans votre éditeur de texte comme contexte supplémentaire.