Refaktoring kódu pomocí režimů chatu GitHub Copilot
GitHub Copilot lze použít k refaktorování kódu v základu kódu. Pomocí agentů zobrazení chatu můžete analyzovat, plánovat a implementovat úlohy refaktoringu kódu. Agenti zobrazení chatu poskytují uživatelsky přívětivé rozhraní pro správu chatových konverzací a přístupu k funkcím GitHub Copilot. Zobrazení chatu zahrnuje následující předdefinované agenty:
- Ptejte se: Položte dotaz na základ kódu nebo technologické koncepty. Dotaz můžete použít k vysvětlení kódu, návrhu revizí nebo oprav nebo poskytnutí informací souvisejících se základem kódu.
- Plán: Před napsáním jakéhokoli kódu pomocí agenta plánu vytvořte strukturovaný podrobný plán implementace. Když plán vypadá správně, předejte ho agentu implementace, aby ho spustil.
- Agent: Pomocí agenta spusťte pracovní postup kódování agenta. Pomocí agenta můžete spouštět příkazy, spouštět kód nebo provádět jiné úlohy v pracovním prostoru.
Důležité
Když používáte agenta, GitHub Copilot může provést několik požadavků premium, aby bylo možné dokončit jednu úlohu. Prémiové požadavky lze využívat prostřednictvím podnětů iniciovaných uživateli a následných akcí, které provádí GitHub Copilot jako zástupce uživatele. Celkové použité žádosti o premium závisí na složitosti úkolu, počtu zahrnutých kroků a vybraném modelu.
Refaktoring kódu pomocí příkazu Ask
Pomocí příkazu Ask můžete získat pomoc s úkoly psaní kódu, porozumět složitým konceptům a vylepšit kód. "Aplikace Ask je navržena pro interaktivní konverzace s GitHub Copilot Chat." Můžete klást otázky, získávat vysvětlení nebo žádat o návrhy v reálném čase.
Otevřete zobrazení chatu a vyberte Zeptat se.
Přidejte do chatu kontext.
Ask podporuje účastníky chatu, příkazy zadávané pomocí lomítka a proměnné chatu. Můžete přidat účastníka chatu
#codebasenebo#codebasedo chatu a poskytnout tak kontext spolu se soubory nebo složkami.Položte otázky, které vám pomůžou pochopit kód, který chcete refaktorovat, a změny, které chcete provést.
Můžete například požádat GitHub Copilot, aby vám pomohl pochopit stávající ověřovací kód, jak aktualizovat aktuální metodu pomocí OAuth.
Vytvořte výzvu, která popisuje aktualizaci, kterou chcete implementovat.
Výzva by měla obsahovat popis funkce kódu, kterou chcete implementovat. Například:
#codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files. Explain how to update the EnumHelper class using dictionaries and show me the updated code.Zkontrolujte navrhovaný kód v zobrazení chatu.
Odpověď zobrazená v zobrazení chatu bude obsahovat fragment kódu, který můžete použít k implementaci této funkce. Můžete zadat aktualizované výzvy k upřesnění kódu nebo požádat o další podrobnosti.
Pokud chcete implementovat navrhovaný kód, můžete najet myší na fragment kódu a vybrat mezi možnostmi Použít, Vložit a Kopírovat .
- Použít: Aplikuje návrh kódu na aktuální soubor v editoru.
- Vložení: Vloží návrh kódu na aktuální pozici kurzoru v editoru.
- Kopírovat: Zkopíruje návrh kódu do schránky.
Otestujte refaktorovaný kód, abyste zajistili, že běží bez chyb, a vygeneruje očekávaný výsledek.
Pomocí nástroje Plan provést refaktoring kódu
Agenta plánu můžete použít, když chcete před provedením změn vytvořit strukturovaný podrobný plán implementace. Agent plánu analyzuje základ kódu, položí objasnění otázek a vytvoří podrobný plán. Když plán vypadá správně, můžete ho předat agentu implementace a spustit ho.
Návod
Pomocí funkce Ask vyhodnoťte kód, který vás zajímá, a zvažte své možnosti, než začnete provádět změny. Plán můžete použít k vytvoření strukturovaného plánu a jeho předání agentu implementace.
Otevřete zobrazení chatu a vyberte Plán.
Přidejte do chatu kontext.
Zadejte kontext pracovního prostoru pomocí
#codebasea přidejte soubory do chatu.Vytvořte výzvu, která popisuje funkci kódu, kterou chcete implementovat.
Výzva by měla obsahovat popis funkce kódu, kterou chcete implementovat. Například:
#codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files.Zkontrolujte plán strukturované implementace, který GitHub Copilot generuje.
Agent plánu vytvoří podrobný plán, který můžete zkontrolovat před provedením jakýchkoli změn kódu.
Když plán vypadá správně, předejte ho agentu implementace, aby ho spustil.
Plán můžete předat agentu a použít změny v základu kódu.
Projděte si navrhované úpravy v editoru kódu.
Přijměte nebo zahoďte navrhované úpravy.
Úpravy můžete procházet pomocí šipek nahoru a dolů. Navrhované úpravy můžete ponechat (přijmout) nebo zrušit (zahodit) jednotlivě pomocí místní nabídky, která se zobrazí po každé úpravě. Můžete také přijmout nebo odmítnout všechny úpravy najednou pomocí tlačítek Zachovat a Zpět v dolní části karty editoru (nebo zobrazení chatu).
Otestujte refaktorovaný kód, abyste zajistili, že běží bez chyb, a vygeneruje očekávaný výsledek.
Refaktoring kódu pomocí agenta
Agenta můžete použít, když chcete automatizovat proces refaktoringu kódu. Agent funguje jako autonomní agent, který může vaším jménem provádět akce. Můžete požádat GitHub Copilot, aby prováděl konkrétní úlohy a vygeneroval kód na základě vašich požadavků.
Pomocí agenta můžete zadat úlohu vysoké úrovně pomocí přirozeného jazyka a nechat GitHub Copilot nezávisle posoudit požadavek, naplánovat potřebnou práci a aplikovat změny do vašeho kódu. Agent používá kombinaci úprav kódu a vyvolání nástrojů k provedení zadané úlohy. Při zpracování vaší žádosti monitoruje výsledky úprav a nástrojů a iteruje řešení jakýchkoliv problémů, které nastanou.
Důležité
Když používáte agenta, GitHub Copilot může provést několik požadavků premium, aby bylo možné dokončit jednu úlohu. Prémiové požadavky lze využívat prostřednictvím podnětů iniciovaných uživateli a následných akcí, které provádí GitHub Copilot jako zástupce uživatele. Celkové použité žádosti o premium závisí na složitosti úkolu, počtu zahrnutých kroků a vybraném modelu.
Otevřete zobrazení chatu a vyberte Agent.
Vytvořte výzvu, která popisuje úlohu, kterou chcete provést GitHub Copilot.
Předpokládejme, že máte projekt kódu, který k provedení stejného úkolu používá dva nebo více procesů/technik. Můžete požádat GitHub Copilot, aby refaktoroval váš kód pomocí jediného přístupu ke zlepšení konzistence, udržovatelnosti a výkonu.
Například:
Review the LINQ code used in the JsonData and JsonLoanRepository classes. Refactor the methods in the JsonPatronRepository class using LINQ queries. Ensure that existing code functionality is maintained.Agent může vyvolat několik nástrojů pro provádění různých úloh. Volitelně můžete vybrat ikonu Nástroje a nakonfigurovat nástroje, které se dají použít k odpovídání na vaši žádost.
Potvrďte volání nástrojů a příkazy terminálu.
Než GitHub Copilot spustí příkaz terminálu nebo nástroj, který není integrovaný, požádá o potvrzení, aby pokračoval. Potvrzení se vyžaduje, protože nástroje můžou běžet místně na vašem počítači a provádět akce, které upravují soubory nebo data.
GitHub Copilot detekuje problémy a problémy v úpravách kódu a příkazech terminálu a provede iterace a provádění akcí, které je vyřeší.
Důležité
I když GitHub Copilot je schopná samoopravení, nemusí být vždy schopná řešit problémy sama. Proces můžete pozastavit a poskytnout další kontext, který vám pomůže GitHub Copilot porozumět problému. Proces můžete také zrušit a začít znovu s novou výzvou.
Zkontrolujte navrhované úpravy a přijměte nebo zahoďte navrhované úpravy.
Otestujte refaktorovaný kód, abyste zajistili, že vygeneruje očekávaný výsledek.
Agent by měl problémy vyřešit samostatně, ale přesto byste měli otestovat kód, abyste zajistili, že funguje podle očekávání.
Úpravy provedené agentem můžete vrátit zpět pomocí tlačítka Zpět v zobrazení chatu. Pomocí možnosti Vrátit zpět v editoru můžete také vrátit změny provedené agentem.
Kdy zvolit Agenta místo Plánu
Při výběru mezi plánem a agentem zvažte následující kritéria:
- Plánování: Plán vytvoří strukturovaný podrobný plán implementace před napsáním libovolného kódu. Agent samostatně určuje relevantní kontext a soubory pro úpravy a začne provádět změny přímo.
- Složitost úlohy: Agent je vhodnější pro složité úlohy, které vyžadují úpravy kódu i vyvolání nástrojů nebo příkazů terminálu.
- Doba trvání: Agent k zpracování požadavku používá více kroků, takže může trvat déle, než vygeneruje odpověď. Chcete-li například určit relevantní kontext a soubory pro úpravy, určit plán akce a další.
- Samoopravení: Agent vyhodnotí výsledek vygenerovaných úprav a může iterovat několikrát za účelem řešení přechodných problémů.
- Kvóta požadavků: Pokud používáte režim agenta v závislosti na složitosti úlohy, může jedna výzva vést k mnoha žádostem na back-end.
Shrnutí
GitHub Copilot lze použít k refaktorování kódu v základu kódu. Pomocí agentů zobrazení chatu můžete analyzovat, plánovat a implementovat úlohy refaktoringu kódu. Zobrazení chatu zahrnuje tři předdefinované agenty: Ask, Plan a Agent. Pomocí funkce Ptejte se můžete pokládat otázky týkající se základu kódu nebo technologických konceptů. Plán můžete použít k vytvoření strukturovaného plánu implementace před napsání kódu. Pomocí Agenta můžete zahájit agentní pracovní postup kódování.