Refactoring kódu s využitím GitHub Copilot inline chatu
Funkce vloženého chatu GitHub Copilota umožňuje přepracování kódu přímo v editoru kódu. Vložený chat je užitečný, když chcete v kódu dělat změny, aniž byste museli přepnout do zobrazení chatu.
Vysvětlení kódu
Před refaktoringem kódu je důležité porozumět kódu, se kterým pracujete. Měli byste pochopit účel kódu, jeho fungování a případné závislosti. Pokud kód neznáte, přečtěte si ho a porozumíte jeho struktuře a logice. Použití GitHub Copilot k analýze kódu vám může pomoct identifikovat oblasti pro zlepšení a navrhnout možnosti refaktoringu.
Pomocí funkce Vložený chat můžete klást otázky týkající se kódu, získat vysvětlení konkrétních částí nebo požádat o vylepšení. Můžete například požádat GitHub Copilot, aby vysvětlil, jak konkrétní funkce funguje, nebo navrhnout způsoby, jak ji optimalizovat. Pomocí funkce Vložený chat můžete také požádat o pomoc s konkrétními úlohami kódování, jako je refaktoring funkce nebo zlepšení čitelnosti kódu.
Tady je několik příkladů dotazů, které žádají GitHub Copilot o pomoc s kódem:
/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
Pokud je vysvětlení dlouhé nebo složité, můžete přejít do zobrazení chatu a pokračovat v konverzaci. Zobrazení chatu můžete také použít k kladení následných otázek nebo vyžádání dalších informací.
Využijte řádkový chat k refaktoringu kódu
Funkci Vložený chat použijte, pokud chcete refaktorovat část kódu, která provádí konkrétní úlohu. Pro složitější změny, které zahrnují aktualizaci více souborů nebo projektů, použijte jeden z režimů zobrazení chatu.
Pokud chcete refaktorovat kód pomocí Chat in-line, postupujte takto:
Otevřete soubor obsahující kód, který chcete optimalizovat.
Vyberte kód, který chcete optimalizovat.
Otevřete relaci chatu v úvodním okně.
K otevření relace chatu použijte klávesovou zkratku Ctrl+I. Případně můžete vybrat Editor Inline Chat z některé z GitHub Copilot nabídek.
Poznámka:
Pokud je soubor součástí aktivní relace úprav chatu, stisknutím Ctrl+I se v zobrazení chatu otevře Zeptat se v chatu místo běžného vloženého chatu. Tím se váš příkaz nasměruje do existující relace, tak, aby mohl využívat celý kontext konverzace. Nastavte
inlineChat.askInChatnafalsev nastavení VS Code, chcete-li vždy používat běžný vložený chat bez ohledu na stav relace.Zadejte výzvu, která požádá o optimalizaci.
Můžete například tento kód vylepšit?
Zkontrolujte navrženou aktualizaci kódu.
GitHub Copilot použije navrhovaná aktualizace kódu přímo v editoru, kde ji můžete zkontrolovat na místě s úplným kontextem okolního kódu.
Výběrem možnosti Přijmout nebo Zavřít přijmete nebo zahodíte navrženou aktualizaci kódu.
Stejně jako u všech Návrhy Copilota GitHubu zkontrolujte, jestli se upravený kód spustí bez chyb, a vytvoří správný výsledek.
Následující příklad ukazuje, jak pomocí Inline Chat refaktorovat metodu jazyka C#, která zpracovává data.
Původní metoda provádí čištění dat, vytváří tabulku dat a pak vytiskne obsah tabulky. Kombinace několika operací do jedné metody znesnadňuje údržbu a testování kódu.
Původní metodu můžete refaktorovat tak, že požádáte Inline Chat o vytvoření samostatných metod pro každou z úloh provedených v původní metodě.
Tady je původní kód:
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);
}
}
Pokud chcete refaktorovat metodu ProcessData, postupujte takto:
Vyberte metodu ProcessData.
Otevřete integrovaný chat.
Zadejte výzvu, která požádá GitHub Copilot o vytvoření samostatných metod pro každý úkol, a stiskněte Enter.
Příklad: Chci refaktorovat metodu ProcessData. Chci metodu čištění dat, metodu pro tisk a metodu zpracování dat.
Zkontrolujte navrženou aktualizaci kódu.
V tomto příkladu GitHub Copilot navrhne refaktorovanou verzi původní metody, která odděluje úlohy čištění a tisku do samostatných metod.
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); } }V tomto příkladu refaktoring původního kódu zlepšuje modularitu a usnadňuje pochopení kódu.
Výběrem možnosti Přijmout nebo Zavřít přijmete nebo zahodíte navrženou aktualizaci kódu.
V tomto příkladu vypadá navrhovaný kód dobře, takže byste vybrali Přijmout pro použití refaktorovaného kódu ve vašem projektu.
Stejně jako u všech Návrhy Copilota GitHubu zkontrolujte, jestli se upravený kód spustí bez chyb, a vytvoří správný výsledek.
Otestujte refaktorovaný kód, abyste zajistili, že běží bez chyb, a vygeneruje očekávaný výsledek.
Shrnutí
Funkce Inline chatu GitHub Copilot umožňuje refaktorovat kód přímo v editoru kódu. Vložený chat je užitečný, když chcete v kódu dělat změny, aniž byste museli přepnout do zobrazení chatu. Pomocí inline Chatu můžete požádat o pomoc s konkrétními úlohami kódování, jako je refaktoring funkce nebo zlepšení čitelnosti kódu. Můžete také použít Inline Chat k vyhodnocení existujícího kódu před jeho úpravami.