Beste praktijken voor de modernisering van GitHub Copilot

Volg deze richtlijnen om de beste resultaten te krijgen van GitHub Copilot modernisering bij het upgraden van .NET projecten.

Voordat u begint

Bereid uw projecten voor voordat u een upgrade start om de beste resultaten te krijgen.

Controleren of de builds en tests van uw oplossing zijn geslaagd

De agent valideert wijzigingen die deze aanbrengt door builds en tests uit te voeren. Als uw oplossing al is verbroken voordat u begint, kan de agent geen bestaande fouten onderscheiden van problemen die zijn geïntroduceerd.

Documenteer eventuele bekende testfouten in scenario-instructions.md zodat de agent deze weet te negeren.

Niet-doorgevoerd werk doorvoeren of stash

Begin met een schone werkmap om te voorkomen dat u uw niet-doorgevoerde wijzigingen mengt met de wijzigingen van de agent. Een schone basislijn maakt het eenvoudiger om wijzigingen te controleren of terug te keren.

git stash
git status

Back-ups maken van niet-Git-opslagplaatsen

De agent werkt ook met mappen die zich niet onder broncodebeheer bevinden. Als uw project zich niet in een Git-opslagplaats bevindt, slaat de agent vertakkings- en doorvoerbewerkingen over. Zo ja, maak een back-up van de projectmap voordat u begint, zodat u deze indien nodig kunt herstellen.

U kunt een lokale Git-opslagplaats initialiseren voordat u de upgrade start, zelfs als u niet naar een cloudprovider pusht. Met een lokale Git-opslagplaats kunt u het volgende doen:

  • Afzonderlijke wijzigingen terugdraaien met git revert.
  • Volg stap voor stap de voortgang van de upgrade in de doorvoergeschiedenis.
  • Bepalen welke wijzigingen u wilt behouden of verwijderen.
  • Bewaar je oorspronkelijke code op de hoofdbranch terwijl de agent aan een afzonderlijke branch werkt.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"

Uw testdekking herzien

De agent is afhankelijk van tests om te controleren of de wijzigingen het gedrag niet verbreken. Projecten met een goede testdekking krijgen hogere betrouwbaarheidsupgrades.

Aanbeveling

U hebt geen 100% dekking nodig. Leg de focus op code die hoogstwaarschijnlijk door de upgrade wordt veranderd, zoals API-grenzen, serialisatie, databasetoegang en authenticatie.

Begin klein

Als dit de eerste keer is dat u de agent gebruikt, kiest u een klein project met een laag risico als testfase. Een klassebibliotheek of hulpprogrammaproject is ideaal. Als u klein begint, krijgt u inzicht in de werkstroom, bouwt u vertrouwen en ontdekt u eventuele problemen met een opslagplaats voordat u uw hoofdtoepassing aanpakt.

Tijdens de upgrade

Volg deze richtlijnen terwijl de agent door uw upgrade werkt.

Begeleide modus gebruiken voor uw eerste upgrade

De agent ondersteunt zowel begeleide als automatische modi. In de begeleide modus onderbreekt de agent op belangrijke beslissingspunten voor uw beoordeling en goedkeuring. Begin met de begeleide modus om te begrijpen wat de agent doet en waarom. Schakel over naar de automatische modus zodra u vertrouwd bent met de werkstroom.

Bekijk de evaluatie zorgvuldig

De evaluatie is de beste kans om problemen te ondervangen voordat de agent wijzigingen gaat aanbrengen. Zoek naar:

  • Projecten die de agent mogelijk heeft gemist of onjuist geïdentificeerd.
  • Afhankelijkheden die u kent, zijn problematisch.
  • Iets ongewoons over uw oplossing die de agent moet weten.

Als u iets ziet, vertelt u de agent in de chat of voegt u de informatie toe aan scenario-instructions.md. Bewerk assessment.md rechtstreeks om context toe te voegen, verkeerd geïdentificeerde projecten te corrigeren of problemen te markeren voordat de agent verdergaat met de planning.

Neem tijd met de planningsfase

De agent genereert een plan op basis van de evaluatie. Controleer het plan voordat u doorgaat:

  • Is de volgorde zinvol voor uw codebase?
  • Zijn er afhankelijkheden waarover de agent mogelijk niet weet?
  • Moeten projecten anders worden uitgesloten of verwerkt?

Vraag de agent om taken opnieuw te ordenen, projecten over te slaan of de benadering ervan te wijzigen. U kent uw codebasis beter dan de agent, dus gebruik die kennis. Bewerk het plan.md bestand rechtstreeks om de volgorde van taken aan te passen, taken toe te voegen of taken te verwijderen.

Waarschuwing

Wees voorzichtig bij het rechtstreeks bewerken plan.md . De agent kan uw wijzigingen mogelijk niet volledig interpreteren als ze tegenstrijdige instructies maken. Bijvoorbeeld het verwijderen van een afhankelijkheidsproject terwijl de projecten die hiervan afhankelijk zijn, behouden blijven.

Feedback direct geven

De agent leert van uw correcties binnen een sessie. Als de agent een keuze maakt waarmee u het niet eens bent:

  • Vertel het meteen: "Gebruik dat patroon niet, gebruik in plaats daarvan X."
  • Voeg permanente richtlijnen toe aan scenario-instructions.md zodat de agent zich taken en sessies herinnert.

Blijf betrokken tijdens de uitvoering

Uitvoering vereist betrokkenheid. Controleer het volgende tasks.mdvoordat de agent moet beginnen:

  • Is de taakvolgorde zinvol voor uw codebase?
  • Zijn er taken die u wilt overslaan of opnieuw verzenden?
  • Ontbreken er taken?

Vraag de agent om de takenlijst aan te passen of rechtstreeks te bewerken tasks.md voordat de uitvoering begint. Zodra de uitvoering begint, moet u het de agent meteen zeggen als deze een fout maakt tijdens de taak. De agent past voortaan uw correctie toe.

U kent uw codebasis beter dan de agent, dus gebruik die kennis in elke fase.

Veelvoorkomende valkuilen

Let op deze veelvoorkomende problemen die een upgrade kunnen vertragen of bemoeilijken.

Grote oplossingen met meer dan 50 projecten

De agent werkt project-by-project, zodat grote oplossingen tijd in beslag nemen. Wees geduldig en bewaak de voortgang. Overweeg om te beginnen met één representatief project end-to-end voordat u de volledige oplossing doorvoert. In een testfase met één project komen systemische problemen vroeg aan de oppervlakte.

Privé NuGet-feeds

Verifieer voor privé NuGet-feeds voordat u de upgrade start (bijvoorbeeld via de referentieprovider of feedconfiguratie van uw organisatie). Zonder verificatie blokkeren pakketherstelfouten de voortgang.

Aangepaste MSBuild-doelen en -importbewerkingen

Complexe buildaanpassingen, zoals aangepaste .targets bestanden, voorwaardelijke import of niet-standaard buildlogica, kunnen de evaluatie verwarren en onverwachte buildfouten veroorzaken. Als uw oplossing deze aanpassingen heeft, vermeldt u deze in chat of in scenario-instructions.md , zodat de agent er rekening mee kan houden.

Time-out voor sessies

Langlopende upgrades kunnen meerdere sessies omvatten. De agent houdt de voortgang bij in werkstroombestanden (onder .github/upgrades/), zodat hij verder kan gaan waar hij was gebleven. Wanneer u een nieuwe sessie start, vermeldt u waar u was: "Continue the .NET 10 upgrade. Ik zat midden in het Data.Access-project."

Effectief samenwerken

De kwaliteit van uw interactie heeft rechtstreeks invloed op de kwaliteit van de resultaten.

Wees specifiek over het bereik

Hoe specifieker u bent, hoe beter de agent presteert:

In plaats van Uitproberen
"Alles upgraden" "Upgrade het Data.Access-project naar .NET 10"
"De build repareren" 'De buildfout in CustomerService.cs met betrekking tot de verwijderde API oplossen'
"De database-componenten upgraden" "Upgrade Entity Framework 6 naar EF Core in het Repository-project"

Uw beperkingen delen

Vertel de agent vooraf over werkelijke beperkingen:

  • "De compatibiliteit met eerdere versies voor de openbare API kan niet worden verbroken."
  • "We hebben over twee weken een releasedeadline, dus prioriteit geven aan de webprojecten."
  • "De verouderde rapportagemodule moet worden uitgesloten van deze upgrade."

Uw architectuur uitleggen

De agent analyseert de codestructuur, maar het kent het mentale model van uw team niet. Help de agent het volgende te begrijpen:

  • "Project A is onze gedeelde bibliotheek. B, C en D zijn er allemaal van afhankelijk."
  • "Het WebApi-project is onze openbare API; Internal.Api is alleen voor interne services.
  • "Het modelproject wordt automatisch gegenereerd op basis van onze OpenAPI-specificatie. Wijzig het niet rechtstreeks.".

Vraag waarom

De agent kan de redenering uitleggen. Als een beslissing er niet goed uitziet, vraagt u het volgende:

  • "Waarom hebt u bottom-up order gekozen?"
  • "Waarom upgradet u dit pakket naar versie X in plaats van Y?"
  • 'Waarom hebt u dit onderverdeeld in subtaken?'

Inzicht in de redenering helpt u om betere feedback te geven.

Voorkeuren vroeg opslaan

Als u sterke voorkeuren hebt voor het coderen van stijl, patronen of benaderingen, voegt u deze toe aan scenario-instructions.md in de eerste sessie. Dit bestand blijft behouden tussen sessies en bevindt zich altijd in de context van de agent, waardoor het de meest betrouwbare manier is om gedrag te beïnvloeden.

Herstellen van problemen

Gebruik deze strategieën wanneer de upgrade niet werkt zoals verwacht.

Bouwfouten na een taak

Vertel de agent: 'De build mislukt na de laatste taak'. De agent analyseert de fout en probeert deze op te lossen. Als de agent het probleem niet kan oplossen:

  1. Geef een handmatige oplossing op en vertel de agent wat u hebt gedaan. De agent leert van uw oplossing.
  2. Herstel de commit (git revert of zet terug naar de vorige commit) en vraag de agent om een andere benadering te proberen.
  3. Sla de problematische taak over en kom later terug.

Verkeerde strategie gekozen

Als de algemene benadering van de agent niet werkt voor uw codebasis, start u de planningsfase opnieuw:

  • "Laten we het plan opnieuw uitvoeren. Ik wil eerst de webprojecten upgraden in plaats van een bottom-up aanpak te gebruiken.
  • "Wijzig de strategie om alle gedeelde bibliotheken in één batch te upgraden."

Agent vastgelopen in een lus

Als de agent dezelfde oplossing zonder voortgang herhaalt, zegt u 'Stoppen' en beschrijft u wat u ziet, of stopt u de sessie handmatig. De agent kan de methode opnieuw instellen en iets anders proberen.

Alle wijzigingen ongedaan maken

Als u een Git-vertakking hebt gebruikt voor de upgrade, moet u alles ongedaan maken door terug te schakelen naar de oorspronkelijke vertakking:

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

Uw oorspronkelijke code is ongewijzigd. Als u werkt zonder broncodebeheer, herstelt u de back-up die u hebt gemaakt voordat u begint.

Beveiliging en privacy

  • Codefragmenten: GitHub Copilot verwerkt deze volgens het Copilot privacybeleid van GitHub en behoudt deze niet buiten de directe sessie.
  • Werkstroombestanden (scenario-instructions.md, aangepaste taken, voorkeuren) blijven in uw opslagplaats onder .github/upgrades/. GitHub verzendt deze bestanden niet naar externe services.
  • De .github/upgrades/ map maakt deel uit van uw opslagplaats. Voer de map door omdat deze de voortgang en status van de upgrade bevat. De agent heeft de map nodig om het werk tussen sessies te hervatten. U kunt deze verwijderen nadat de upgrade is voltooid.
  • Telemetrie: Schakel deze uit via de telemetrie-instellingen van uw IDE.

Tips voor prestaties

  • Sluit onnodige bestanden en tabbladen: De agent analyseert de actieve werkruimte en minder geopende bestanden betekent minder ruis.
  • Upgrade in fasen voor zeer grote oplossingen: in plaats van alle projecten tegelijk te upgraden, moet u ze batcheren. Upgrade bijvoorbeeld eerst alle bibliotheken, vervolgens alle webprojecten en test vervolgens.
  • Buildcaching gebruiken: de agent voert veel incrementele builds uit tijdens de validatie. Warme buildcaches maken validatie aanzienlijk sneller. Vermijd het opschonen van de build-uitvoer tussen taken.