AI-kodningsværktøjer - Udviklerens perspektiv
- 23. okt. 2025
- 4 min læsning
Opdateret: 9. feb.

I den næste del af vores serie om AI under udvikling deler Dmytro Kravchyna , ledende softwareudvikler hos Netminds , sin praktiske erfaring med at bruge AI-værktøjer i softwareprojekter i den virkelige verden, lige fra research og planlægning til kodning, test og automatisering. Denne artikel afslutter serien med et praktisk kig på, hvor AI virkelig skinner i daglige ingeniørarbejdsgange, og hvor menneskelig ekspertise stadig gør hele forskellen.
Jeg bruger aktivt AI på mit nuværende projekt, både til planlægning af kommende arbejde og praktisk kodning. Nedenfor er de konkrete måder, det hjælper på, hvor det udmærker sig, og de begrænsninger, jeg er stødt på.
1) Planlægning og teknisk due diligence (ChatGPT “Deep Research”)
Når jeg har brug for en hurtig, men grundig briefing (fordele/ulemper ved en tilgang, omtrentlige prisintervaller, alternativer, sammenligningstabeller og syntetiserede resuméer), bruger jeg ChatGPT Deep Research. Den kører webresearch i flere trin, læser kilder og returnerer en citeret rapport, som du kan verificere. Den er designet til at gennemse, analysere og syntetisere mange kilder og producere en dokumenteret beskrivelse, og den integrerer nu med agenttilstand for en dybere, visuel browser, når det er nødvendigt. ( OpenAI )
Hvor det passer ind: forberedelse til opgaver (stigninger i stigninger, analyse af optioner).
Hvor det ikke gør det: det er ikke en erstatning for formel markedsundersøgelse eller en professionel analytikerrapport – du har stadig brug for domæneekspertise for at validere resultater og antagelser. (OpenAI bemærker selv begrænsninger og behovet for at verificere output.) ( OpenAI )
2) Kodning med GitHub Copilot (kommerciel licens)
Med tiden er jeg nået frem til tre forskellige brugsmønstre.
A) Prompt-to-Code with Agent Mode
A) Prompt-to-code med agenttilstand
Copilots Agent Mode kan planlægge, redigere flere filer, køre værktøjer/terminalkommandoer, overvåge build- og testoutput og iterere, indtil opgaven er fuldført – direkte i VS Code eller Visual Studio. I praksis er det fantastisk til refactoring, scaffolding af endpoints/tjenester eller sammensætning af ændringer på tværs af lag. Du bevarer kontrollen og godkender redigeringer. ( Visual Studio Code , Microsoft Learn )
Klare, detaljerede prompter er vigtige. Forvent at bruge tid på kontekst (stier, navngivning, fejlhåndtering, logføring, attributter). Fordelen er genbrugelighed: Når du først har lavet en god prompt, kan du genbruge den på tværs af lignende opgaver (VS Code understøtter genbrugelige instruktionsfiler og promptfiler). ( Visual Studio Code )
Mit eksempel på "minimal viable prompt" (fungerer godt til ASP.NET Core service+controller scaffolding):
Du er en erfaren ASP.NET Core Web API- og Business Services-arkitekt. Opretter {MethodName}-slutpunktet og dets servicemetoder på tværs af lag.
LEVERANCER (i denne rækkefølge)
Controller-handling: add C# method {MethodName} to {ControllerName}.cs.
Servicekontrakt: add method signature to {ServiceInterfaceName}.cs.
Tjenesteimplementering: implement {MethodName}Async in {ServiceImplementationName}.cs.
Dokumentation og stil: include XML docs, preserve existing code style, namespaces, and comments.
Sikkerhed: do not modify unrelated classes or methods.
PROJEKT LAYOUT
Controller-fil: *.WebAPI\Controllers\{ControllerName}.cs
Servicegrænseflade: *.BusinessServices.Interface\{ServiceInterfaceName}.cs
Tjenesteimplementering: *.BusinessServices.Implementation\{ServiceImplementationName}.cs
MODELLER
Anmodning om DTO: {RequestModel} (Properties: {RequestProperties})
Svar-DTO: {ResponseModel} (Properties: {ResponseProperties})
SLUTPUNKTER & ATTRIBUTTER
HTTP-udsagnsord: {HttpMethod}
Anvend: [ApiDocSummary], [ApiDocDescription], [ApiDocParameterDescription], [ApiDocQueryDescription], [ApiDocResponse(typeof(ApiResponseWrapper<{ResponseModel}>))]
Brug [FromRoute], [FromQuery], [ListFilters] hvor det er relevant.
Bind anmodningsparametre korrekt og valider input (grundlæggende guard-klausuler).
LOGGING & FEJLHÅNDTERING
Ved metodestart, log: _logger.LogInformation("{MethodName} started");
Omslut servicekaldet i try/catch(Exception); ved fejl, log og returner 500 med ApiError.
Hvis servicesvaret. Status == false, returner base.StatusCode (response.StatusCode, new ApiError(...)).
SERVICEKONTRAKT & IMPLEMENTERING
Tilføj til brugerfladen: Task<ApiResponseWrapper<{ResponseModel}>> {MethodName}Async({RequestModel} request);
Implementer i drift:
Logstart og fejl.
Kald underliggende klient/arkiv.
Returner det indpakkede svar.
Tilføj <inheritdoc/> XML kommentar.
OUTPUTFORMAT
Angiv tre separate kodeblokke, én pr. fil, i præcis denne rækkefølge:{ControllerName}.cs — fuld handlingsmetode indsat på plads, bevarer.{ServiceInterfaceName}.cs — ilføjet grænsefladesignatur med kort XML-resumé.{ServiceImplementationName}.cs — fuld metodeimplementering med logføring og fejlhåndtering.
Brug de korrekte navnerum og filstier, der er angivet ovenfor.
Medtag eller ændr ikke urelateret kode ud over de viste indsætninger.
BEGRÆNSNINGER
Hold navngivningen i overensstemmelse med eksisterende projektkonventioner.
Foretræk async/await-mønstre og annulleringstokens, hvis de allerede bruges i projektet.
Undgå at ødelægge ændringer i offentlige API'er, medmindre det udtrykkeligt er påkrævet.
Hvis en pladsholder ({...}) mangler information, angiv rimelige antagelser indlejret som TODO-kommentarer og fortsæt.
B) Prompt-over-Code-testning og vedligeholdelse af eksisterende kode
Til testarbejde kan Copilot generere enhedstests, køre dem og iterere på fejl som en del af agentens arbejdsgange; der findes officielle vejledninger til generering af tests (xUnit osv.) og til strømlining af testforfatning/-rettelse i både Visual Studio og VS Code. Det er også nyttigt til at forklare kode, foreslå rettelser og generere præcise opsummeringer eller commit-meddelelser (med konfigurerbare regler). Dette aflaster en masse rutinearbejde. ( Microsoft Learn , Visual Studio Code , GitHub Docs )
Bemærk: Generering af commit-message findes på tværs af Microsofts værktøjer; behandl det som et udkast, og tilføj hvorfor , ikke kun hvad . ( Microsoft for udviklere , GitHub-dokumentation )
C) Prompt-Script-kode til automatisering via scripts og kodegenerering
AI er god til at skrive de scripts, der skriver koden – nyttigt, når du har brug for stabile, gentagelige output, der er diff-venlige i Git:
OpenAPI → DTO'er/klienter/serverstubs: Brug OpenAPI Generator lokalt eller i CI til at producere typede modeller og HTTP-klienter fra en Swagger/OpenAPI-specifikation. Der findes en færdiglavet GitHub-handling til dette. ( GitHub )
Designtokens → UI-artefakter: Style Dictionary konverterer designtokens til platformaktiver (CSS-variabler, Android/iOS-ressourcer, dokumenter). Du kan forbinde det til Tokens Studio-transformationer og køre det i CI, og endda føre disse output til scaffoldede UI-komponenter. ( Style Dictionary , Tokens Studio )
End-to-end CI/CD-hooks: token- og coden-pipelines automatiseres ofte (f.eks. via GitHub-handlinger). ( Michael Mang )
Begrænsninger: Disse pipelines kræver stadig erfaring med scripting og kodegennemgang. Gode resultater kommer sjældent fra en enkelt prompt; iterer og fastgør scriptversioner for pålidelighed.
Praktiske fordele og ulemper jeg har set:
Fordele
Hurtigere refaktorering og scaffolding via Agent Mode med redigering af flere filer i editoren, terminalkommandoer og selvreparerende loops. ( Visual Studio Code , Microsoft Learn )
Hurtige forbedringer af testdækning og nemmere vedligeholdelse (test, forklaringer, opsummeringer, commit-kladder). ( Microsoft Learn , Visual Studio Code )
Genanvendelige prompts/instruktionsfiler, der håndhæver teamkonventioner. ( Visual Studio Code )
Pålidelig, gentagelig generering af aktiver/kode indbygget i CI (OpenAPI, designtokens). ( GitHub , Style Dictionary )
Ulemper
Omkostninger til promptudvikling: prompter og kontekst af høj kvalitet tager tid (gevinsten er genbrug). ( Visual Studio Code )
Miljøfølsomhed: Agenter afspejler dit lagers nuværende mønstre; uklar kontekst giver ujævne resultater. ( Visual Studio Code )
Research-advarsler: Deep Research producerer citerede, nyttige briefinger, men det erstatter ikke professionel markedsanalyse; verificer kritiske påstande. ( OpenAI )
Dmytro Kravchyna, Lead Software Developer at Netminds



Kommentarer