Refactoriser le code à l’aide du chat intégré de GitHub Copilot
GitHub Copilot's fonctionnalité de discussion en ligne vous permet de refactoriser le code directement dans l'éditeur de code. La conversation inline est utile lorsque vous souhaitez apporter des modifications à votre code sans avoir à basculer vers la vue Conversation.
Comprendre votre code
Avant de refactoriser votre code, il est important de comprendre le code avec lequel vous travaillez. Vous devez comprendre l’objectif du code, son fonctionnement et toutes les dépendances qu’il peut avoir. Si vous n’êtes pas familiarisé avec le code, prenez un certain temps pour le lire et comprendre sa structure et sa logique. L’utilisation de GitHub Copilot pour analyser le code peut vous aider à identifier les domaines d’amélioration et à suggérer des options de refactorisation.
Vous pouvez utiliser la fonctionnalité Conversation inline pour poser des questions sur le code, obtenir des explications sur des parties spécifiques ou demander des suggestions d’améliorations. Par exemple, vous pouvez demander GitHub Copilot expliquer comment une fonction particulière fonctionne ou suggérer des façons de l’optimiser. Vous pouvez également utiliser la fonctionnalité Conversation inline pour demander de l’aide sur des tâches de codage spécifiques, telles que la refactorisation d’une fonction ou l’amélioration de la lisibilité du code.
Voici quelques exemples d'invites pour demander à GitHub Copilot afin d'obtenir de l'aide avec le code :
/explain Explain how authentication is implemented in this code
/explain Can this code be updated to improve security? Explain the concepts and show some examples
Si l’explication est longue ou complexe, vous pouvez passer à la vue Conversation pour poursuivre la conversation. Vous pouvez également utiliser la vue Conversation pour poser des questions de suivi ou demander des informations supplémentaires.
Utiliser Inline Chat pour refactoriser le code
Utilisez la fonctionnalité Conversation inline lorsque vous souhaitez refactoriser une section de code qui effectue une tâche spécifique. Pour les modifications plus complexes impliquant la mise à jour de plusieurs fichiers ou projets, utilisez l’un des modes de vue Conversation.
Pour refactoriser du code à l’aide d’Inline Chat, procédez comme suit :
Ouvrez le fichier qui contient le code que vous souhaitez optimiser.
Sélectionnez le code à optimiser.
Ouvrez une session de conversation intégrée.
Utilisez le raccourci clavier Ctrl+I pour ouvrir la session Conversation inline. Vous pouvez également sélectionner Editor Inline Chat dans l’un des menus GitHub Copilot.
Entrez une invite qui demande une optimisation.
Par exemple : Ce code peut-il être amélioré ?
Passez en revue la mise à jour de code suggérée.
GitHub Copilot applique la mise à jour de code suggérée directement dans l’éditeur, où vous pouvez l’examiner sur place, avec le contexte complet du code environnant.
Sélectionnez Accepter ou Fermer pour accepter ou ignorer la mise à jour de code suggérée.
Comme avec toutes les suggestions GitHub Copilot, vérifiez que le code révisé s’exécute sans erreurs et produit le résultat correct.
L’exemple suivant montre comment utiliser Inline Chat pour refactoriser une méthode C# qui traite les données.
La méthode d’origine effectue le nettoyage des données, construit une table de données, puis imprime le contenu de la table. La combinaison de plusieurs opérations en une seule méthode complique la maintenance et le test de votre code.
Vous pouvez refactoriser la méthode d’origine en demandant à Inline Chat de créer des méthodes distinctes pour chacune des tâches effectuées dans la méthode d’origine.
Voici le code d’origine :
using System;
using System.Data;
public class DataProcessor
{
public void ProcessData(string item, string price)
{
// Cleanse the data
item = item.Trim(); // Remove leading and trailing whitespace
price = price.Trim(); // Remove leading and trailing whitespace
double priceValue = double.Parse(price); // Convert price to a double
// More cleansing operations can be added here
// Create and print a DataTable
DataTable table = new DataTable();
table.Columns.Add("Item", typeof(string));
table.Columns.Add("Price", typeof(double));
table.Rows.Add(item, priceValue);
foreach (DataRow row in table.Rows)
{
Console.WriteLine($"Item: {row["Item"]}, Price: {row["Price"]}");
}
}
}
// Example usage
class Program
{
static void Main()
{
string item = " Apple ";
string price = " 1.50 ";
var processor = new DataProcessor();
processor.ProcessData(item, price);
}
}
Pour refactoriser la méthode ProcessData, procédez comme suit :
Sélectionnez la méthode ProcessData.
Ouvrez la conversation inline.
Entrez une invite qui demande GitHub Copilot de créer des méthodes distinctes pour chaque tâche, puis appuyez sur Enter.
Par exemple : Je souhaite refactoriser la méthode ProcessData. Je veux une méthode pour le nettoyage des données, une méthode d’impression et une méthode pour le traitement des données.
Passez en revue la mise à jour de code suggérée.
Pour cet exemple, GitHub Copilot suggère une version refactorisé de la méthode d’origine qui sépare les tâches de nettoyage et d’impression en méthodes distinctes.
using System; using System.Data; public class DataProcessor { public void ProcessData(string item, string price) { (string cleansedItem, double cleansedPrice) = CleanseData(item, price); DataTable table = new DataTable(); table.Columns.Add("Item", typeof(string)); table.Columns.Add("Price", typeof(double)); table.Rows.Add(cleansedItem, cleansedPrice); PrintData(table); } private (string, double) CleanseData(string item, string price) { string trimmedItem = item.Trim(); string trimmedPrice = price.Trim(); double priceValue = double.Parse(trimmedPrice); return (trimmedItem, priceValue); } private void PrintData(DataTable table) { foreach (DataRow row in table.Rows) { Console.WriteLine($"Item: {row["Item"]}, Price: {row["Price"]}"); } } } // Example usage class Program { static void Main() { string item = " Apple "; string price = " 1.50 "; var processor = new DataProcessor(); processor.ProcessData(item, price); } }Dans cet exemple, la refactorisation du code d’origine améliore la modularité et facilite la compréhension du code.
Sélectionnez Accepter ou Fermer pour accepter ou ignorer la mise à jour de code suggérée.
Dans cet exemple, le code suggéré semble correct. Vous pouvez donc sélectionner Accepter pour appliquer le code refactorisé à votre projet.
Comme avec toutes les suggestions GitHub Copilot, vérifiez que le code révisé s’exécute sans erreurs et produit le résultat correct.
Testez le code refactorisé pour vous assurer qu’il s’exécute sans erreur et génère le résultat attendu.
Résumé
La fonctionnalité de chat en ligne de GitHub Copilot vous permet de refactoriser le code directement dans l'éditeur de code. La conversation inline est utile lorsque vous souhaitez apporter des modifications à votre code sans avoir à basculer vers la vue Conversation. Vous pouvez utiliser Inline Chat pour demander de l’aide sur des tâches de codage spécifiques, telles que la refactorisation d’une fonction ou l’amélioration de la lisibilité du code. Vous pouvez également utiliser Inline Chat pour évaluer votre code existant avant de refactoriser.