Osvědčené postupy pro modernizaci GitHub Copilot

Při upgradu projektů .NET postupujte podle těchto pokynů a získejte nejlepší výsledky z GitHub Copilot modernizace.

Než začnete

Připravte své projekty před zahájením upgradu, abyste získali nejlepší výsledky.

Ověřte, že vaše řešení proběhne a testy proběhnou úspěšně.

Agent ověří provedené změny spuštěním sestavení a testů. Pokud už je vaše řešení před spuštěním přerušené, agent nedokáže rozlišit existující selhání od problémů, které zavedl.

Zdokumentujte všechna známá selhání scenario-instructions.md testů, aby agent věděl, že je má ignorovat.

Potvrzení nebo dočasné uložení neuložené práce

Začněte čistým pracovním adresářem, abyste se vyhnuli kombinování nepotvrzených změn s úpravami agenta. Čistý směrný plán usnadňuje kontrolu nebo vrácení změn.

git stash
git status

Zálohování úložišť mimo Git

Agent funguje také se složkami, které nejsou pod správou zdrojového kódu. Pokud váš projekt není v úložišti Git, agent přeskočí operace s větvemi a potvrzování změn. Pokud ano, před zahájením zálohujte složku projektu, abyste ji mohli v případě potřeby obnovit.

Před zahájením upgradu zvažte inicializaci místního úložiště Git, i když neprovedete push k poskytovateli cloudu. Místní úložiště Git umožňuje:

  • Vrácení jednotlivých změn zpět pomocí git revert.
  • Sledujte průběh aktualizace krok za krokem v historii commitů.
  • Určete, které změny se mají zachovat nebo zahodit.
  • Udržujte původní kód v bezpečí na hlavní větvi, zatímco agent pracuje na samostatné větvi.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"

Kontrola pokrytí testu

Agent spoléhá na testy, aby ověřil, že jeho změny nerušují chování. Projekty s dobrým pokrytím testů získávají upgrady s vyšší spolehlivostí.

Návod

Nepotřebujete 100% pokrytí. Zaměřte se na kód, který upgrade pravděpodobně změní, jako jsou hranice rozhraní API, serializace, přístup k databázi a ověřování.

Začněte v malém

Pokud agenta používáte poprvé, vyberte jako pilotní projekt malý projekt s nízkým rizikem. Ideální je knihovna tříd nebo projekt utility. Počínaje malými vám umožní porozumět pracovnímu postupu, získat důvěru a zjistit všechny problémy související s úložištěm, než začnete řešit hlavní aplikaci.

Během upgradu

Postupujte podle těchto pokynů, zatímco agent pracuje na vašem upgradu.

Použití režimu s asistencí pro první upgrade

Agent podporuje režimy s asistencí i automatickými režimy. V režimu s asistencí se agent pozastaví na klíčových rozhodovacích bodech pro vaši kontrolu a schválení. Začněte s režimem s asistencí, abyste pochopili, co agent dělá a proč. Jakmile budete s pracovním postupem obeznámeni, přepněte do automatického režimu.

Pečlivě zkontrolujte posouzení.

Posouzení je vaší nejlepší příležitostí zachytit problémy před tím, než agent začne provádět změny. Vyhledejte:

  • Projekty, které agent mohl zmeškat nebo chybně identifikovat
  • Závislosti, o kterých víte, jsou problematické.
  • Cokoli neobvyklého ohledně vašeho řešení, které by měl agent znát.

Pokud něco zjistíte, řekněte agentovi v chatu nebo přidejte informace.scenario-instructions.md Upravte assessment.md přímo, aby se přidal kontext, opravily chybně identifikované projekty nebo byly označeny problémy, než agent přistoupí k plánování.

Věnujte čas plánovací fázi

Agent vygeneruje plán na základě jeho posouzení. Než budete pokračovat, zkontrolujte plán:

  • Dává pořadí pro váš základ kódu smysl?
  • Existují závislosti, o kterých agent nemusí vědět?
  • Mají být nějaké projekty vyloučeny nebo zpracovány jinak?

Požádejte agenta, aby změnil pořadí úkolů, přeskočil projekty nebo změnil přístup. Znáte základ kódu lépe než agent, takže tyto znalosti použijte. plan.md Upravte soubor přímo a upravte pořadí úkolů, přidejte úkoly nebo je odeberte.

Upozornění

Při úpravách plan.md buďte opatrní. Agent nemusí vaše změny plně interpretovat, pokud vytvoří protichůdné pokyny. Například odebrání projektu závislostí při zachování projektů, které na něm závisejí.

Pošlete zpětnou vazbu okamžitě

Agent se učí z vašich oprav v rámci relace. Pokud agent zvolí možnost, se kterou nesouhlasíte:

  • Řekněte to hned: "Nepoužívejte tento vzor, použijte místo toho X".
  • Přidejte trvalé pokyny k scenario-instructions.md, aby si agent pamatoval během různých úkolů a relací.

Zůstaňte soustředění během provádění

Provádění není automatické. Než agentovi řeknete, aby se spustil, přečtěte si tasks.md:

  • Dává pořadí úkolů smysl pro váš základ kódu?
  • Máte nějaké úkoly, které chcete přeskočit nebo znovu sekvenovat?
  • Chybí nějaké úkoly?

Požádejte agenta, aby upravil seznam úkolů nebo aby ho upravil tasks.md přímo před zahájením provádění. Jakmile začne vykonávání, pokud agent udělá špatné rozhodnutí během úkolu, okamžitě ho o tom informujte – od té doby použije vaši opravu.

Základ kódu znáte lépe než agent, takže tyto znalosti používejte v každé fázi.

Běžné nástrahy

Podívejte se na tyto běžné problémy, které můžou zpomalit nebo komplikovat upgrade.

Rozsáhlá řešení s více než 50 projekty

Agent funguje projektově po projektu, takže velká řešení nějakou dobu trvá. Buďte trpěliví a monitorujte průběh. Než se zavážete k úplnému řešení, zvažte zahájení jednoho reprezentativního projektu od začátku do konce. Pilotní projekt odhalí systémové problémy brzy.

Privátní informační kanály NuGet

U privátních informačních kanálů NuGet se před zahájením upgradu ověřte (například prostřednictvím poskytovatele přihlašovacích údajů nebo konfigurace informačního kanálu vaší organizace). Bez ověřování selhání obnovení balíčku zablokují průběh.

Vlastní cíle a importy nástroje MSBuild

Složité přizpůsobení sestavení, jako jsou vlastní .targets soubory, podmíněné importy nebo nestandardní logika sestavení, můžou zmást posouzení a způsobit neočekávané selhání sestavení. Pokud vaše řešení má tato přizpůsobení, zmiňte je v chatu nebo v scenario-instructions.md, aby s nimi agent mohl počítat.

Vypršení časových limitů relace

Dlouhotrvající procesy aktualizace mohou zahrnovat více relací. Agent sleduje průběh v souborech pracovního postupu (v části .github/upgrades/), aby mohl pokračovat tam, kde skončil. Při spuštění nové relace uveďte, kde jste byli: "Pokračovat v upgradu .NET 10. Byl jsem uprostřed projektu Data.Access."

Efektivní spolupráce

Kvalita interakce přímo ovlivňuje kvalitu výsledků.

Konkrétní informace o rozsahu

Čím konkrétnější jste, tím lépe agent funguje:

Místo toho Zkušební verze
"Upgradovat vše" "Aktualizujte projekt Data.Access na .NET 10"
"Opravit sestavení" Oprava chyby sestavení v CustomerService.cs související s odebranými rozhraními API
"Upgrade obsahu databáze" Aktualizovat Entity Framework 6 na EF Core v projektu repozitáře

Sdílení omezení

Informujte agenta o omezeních reálného světa předem:

  • "Nemůžeme přerušit zpětnou kompatibilitu pro veřejné rozhraní API."
  • "Máme termín vydání ve dvou týdnech, proto upřednostnit webové projekty."
  • "V tomto upgradu by měl být vyloučen starší reportovací modul."

Vysvětlení architektury

Agent analyzuje strukturu kódu, ale nezná mentální model vašeho týmu. Pomozte agentu pochopit:

  • "Project A je naše sdílená knihovna. B, C a D na tom všichni závisejí."
  • "Projekt WebApi je naše veřejné rozhraní API; Internal.Api je pouze pro interní služby."
  • "Projekt Models se automaticky vygeneruje z naší specifikace OpenAPI. Neupravujte ho přímo."

Zeptejte se proč

Agent může vysvětlit jeho odůvodnění. Pokud rozhodnutí nevypadá správně, zeptejte se:

  • "Proč jste zvolili pořadí dole?"
  • "Proč upgradujete tento balíček na verzi X místo Y?"
  • "Proč jste to rozdělili do dílčích úkolů?"

Porozumění odůvodnění vám pomůže poskytnout lepší zpětnou vazbu.

Uložit nastavení brzy

Pokud máte silné předvolby týkající se stylu psaní kódu, vzorů nebo přístupů, přidejte je do scenario-instructions.md v první schůzce. Tento soubor přetrvává napříč relacemi a je vždy v kontextu agenta, takže je nejspolehlivější způsob, jak ovlivnit chování.

Zotavení z problémů

Tyto strategie použijte v případech, kdy upgrade nespadá podle očekávání.

Selhání sestavení po úkolu

Řekněte agentovi, že sestavení selhává po poslední úloze. Agent analyzuje chybu a pokusí se ji opravit. Pokud agent nemůže tento problém vyřešit:

  1. Proveďte ruční opravu a sdělte agentovi, co jste provedli. Agent se učí z vaší opravy.
  2. Vraťte potvrzení (git revert nebo resetujte předchozí potvrzení) a požádejte agenta, aby vyzkoušel jiný přístup.
  3. Přeskočte problematický úkol a vraťte se k němu později.

Zvolená nesprávná strategie

Pokud celkový přístup agenta pro kódovou bázi nefunguje, restartujte fázi plánování:

  • Pojďme plán přepracovat. Chci nejprve zlepšit webové projekty shora dolů místo zdola nahoru.
  • Změňte strategii na upgradení všech sdílených knihoven najednou.

Agent se zasekl ve smyčce

Pokud agent opakuje stejnou nápravu bez pokroku, řekněte "Zastavit" a popište, co pozorujete, nebo ukončete relaci ručně. Agent může resetovat svůj přístup a vyzkoušet něco jiného.

Vrácení všech změn zpět

Pokud jste pro upgrade použili větev Gitu, vraťte všechno zpět přepnutím zpět na původní větev:

git checkout your-original-branch
git branch -D upgrade-branch

Původní kód není nedotčený. Pokud pracujete bez správy zdrojového kódu, proveďte obnovení ze zálohy, kterou jste vytvořili před zahájením.

Zabezpečení a ochrana osobních údajů

  • Kódové fragmenty: GitHub Copilot zpracovává tyto fragmenty podle zásad ochrany osobních údajů GitHub Copilotu a neukládá je po skončení aktuální relace.
  • Soubory pracovního postupu (scenario-instructions.md, vlastní úkoly, předvolby) zůstanou ve vašem úložišti v části .github/upgrades/. GitHub tyto soubory nepřenáší do externích služeb.
  • Složka .github/upgrades/ je součástí vašeho úložiště. Potvrďte složku, protože obsahuje průběh upgradu a stav. Agent potřebuje složku k obnovení práce napříč relacemi. Po dokončení upgradu ho můžete odebrat.
  • Telemetrie: Zakažte prostřednictvím nastavení telemetrie integrovaného vývojového prostředí (IDE).

Tipy týkající se výkonu

  • Zavřete nepotřebné soubory a karty: Agent analyzuje aktivní pracovní prostor a méně otevřených souborů znamená méně šumu.
  • Upgrade ve fázích pro velmi rozsáhlá řešení: Místo upgradu všech projektů najednou je rozdělit do skupin. Napřed upgradujte všechny knihovny, pak všechny webové projekty a pak testy.
  • Používejte ukládání sestavení do mezipaměti: Agent při procesu ověřování spouští mnoho přírůstkových sestavení. Teplé mezipaměti sestavení výrazně urychlují ověřování. Vyhněte se odstraňování výstupu sestavení mezi jednotlivými úlohami.