Verouderde code herstructureren met de moderniseringsagent
Herstructureren betekent het herstructureren van bestaande code zonder het externe gedrag ervan te wijzigen. Bij het moderniseren van een toepassing bevindt zich een aanzienlijk deel van het werk in de herstructurering, waaronder het maken van code schoner, efficiënter en afgestemd op de huidige standaarden, terwijl het nog steeds alle tests doorstaat.
Veelvoorkomende herstructureringstaken waarmee de moderniseringsagent kan helpen, zijn onder andere:
- Afgeschafte API's bijwerken. Oude bibliotheek-aanroepen of framework-API's vervangen door hun moderne equivalenten. Vervang bijvoorbeeld javax.* naamruimte door jakarta.* wanneer u een upgrade uitvoert naar Jakarta EE.
- Asynchrone patronen moderniseren. Het converteren van callback-gebaseerde code naar moderne async/await-patronen of het upgraden van oude HTTP-clients (zoals WebClient) naar moderne alternatieven (zoals HttpClient).
- Foutafhandeling verbeteren. Gestructureerde uitzonderingsafhandeling, logboekregistratie en logica voor opnieuw proberen toevoegen waarbij verouderde code fouten op de achtergrond negeerde.
- Het bijwerken van frameworkidiomen. Nieuwere taalfuncties gebruiken, zoals het trefwoord var van Java, de Streams-API, of patroonmatching en nullable referentietypen van C#.
- Configuratie vereenvoudigen. Migreren van verouderde XML-configuratie naar moderne configuratie op basis van aantekeningen of code.
In tegenstelling tot het proces dat u gebruikt wanneer u normaal met GitHub Copilot communiceert, zoals het vragen om Copilot en het beoordelen van de inlinesuggesties, neemt de moderniseringsagent een systematische benadering:
- Beoordeling. De agent scant uw hele project en identificeert alle locaties waar afgeschafte API's, verouderde patronen of framework-incompatibele code bestaan.
- Plangeneratie. Het produceert een gedetailleerd plan met elke benodigde wijziging, georganiseerd op volgorde van prioriteit en afhankelijkheidsvolgorde.
- Geautomatiseerde transformatie. Met behulp van OpenRewrite-recepten en het genereren van ai-code past de agent wijzigingen toe in de codebasis, niet alleen één bestand tegelijk, maar projectbreed.
- Validering. Na elke batch wijzigingen bouwt de agent het project, voert de tests uit en lost hij eventuele compilatiefouten of testfouten op voordat u verdergaat.
De moderniseringsagent voor de GitHub Copilot-app wacht niet totdat u naar elk bestand navigeert en een opmerking schrijft die aangeeft waar wijzigingen moeten plaatsvinden. De agent identificeert al deze patronen in het project, past de transformaties toe en valideert dat de build nog steeds slaagt.