Guide
6 min lesing

ChatGPT for koding: Slik bruker du det som en erfaren utvikler

AI-assistert koding handler om mer enn autocomplete. Her er avanserte teknikker for å kode raskere og bedre med AI.

A
AIvett redaksjon

ChatGPT for koding: Slik bruker du det som en erfaren utvikler

ChatGPT er et kraftig verktøy for koding — men de fleste bruker det feil. De stiller vage spørsmål, aksepterer kode uten å forstå den, og ender opp med løsninger som ikke passer kodebasen. Denne guiden handler om å bruke ChatGPT som en kompetent samarbeidspartner, ikke som en kode-automat.

Den riktige tankegangen

Tenk på ChatGPT som en erfaren kollega du parprogrammerer med over Slack. Den har bred kunnskap, kan forklare sin tankegang, og produserer solid kode — men den kjenner ikke din kodebase, dine arkitekturavgjørelser, eller dine preferanser med mindre du forteller det. Jo mer kontekst du gir, jo bedre output.

Bruk 1: Feilsøking

Alltid gi:

  • Selve feilmeldingen (stack trace + feiltype)
  • Koden der feilen oppstår
  • Hva du forventet skulle skje
  • Hva som faktisk skjer
Jeg får denne feilen i en Next.js 14-app:
TypeError: Cannot read properties of undefined (reading 'map')
    at ProductList (components/ProductList.tsx:12:28)

Her er komponenten:
[kode]

Dataene som sendes inn er hentet via tRPC fra en Prisma-spørring.
Hva er galt, og hvorfor skjer det spesifikt på linje 12?

Ikke bare lim inn feilmeldingen. Konteksten om Next.js 14 og tRPC hjelper ChatGPT å gi et mer presist svar.

Bruk 2: Kodeforklaring

Spesielt nyttig for:

  • Kode skrevet av andre
  • Regex-uttrykk
  • Komplekse algoritmer
  • Fremmed teknologi du skal jobbe med
Forklar hva dette regex-uttrykket gjør, og gi et eksempel på hva det matcher og ikke matcher:
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
Forklar denne SQL-spørringen steg for steg, inkludert hva hvert JOIN bidrar med:
[SQL]

Bruk 3: Refaktorering

Gi kontekst om hva du vil forbedre:

Refaktorer denne funksjonen for:
1. Bedre lesbarhet
2. Redusert nesting
3. Mer eksplisitte variabelnavn

Ikke endre funksjonaliteten. Typescript-typer skal ikke endres.

[kode]

Forklar de viktigste endringene du gjør og hvorfor.

Bruk 4: Testgenerering

Spesifiser testrammeverkene:

Skriv Jest-enhetstester for denne TypeScript-funksjonen.
Bruk @testing-library/react for komponent-tester.
Dekk:
- Happy path (normalt tilfelle)
- Tomme/null input-verdier
- Grenseverdier
- Feiltilfeller

[kode]

Bruk 5: Arkitekturvurdering

Dette er en undervurdert bruksmåte — ChatGPT som kritisk sounding board:

Jeg vurderer å implementere [feature] på denne måten: [beskrivelse/kode]

Alternativt kan jeg gjøre det slik: [alternativ tilnærming]

Vi bruker: Next.js 14 App Router, Prisma, PostgreSQL, tRPC.
Antatt datavolumet: 50 000 brukere, 1M records.

Hva er avveiningene, og hvilken ville du anbefalt og hvorfor?

Bruk 6: Lære nytt teknologi

ChatGPT er en tålmodig lærer:

Jeg kan React men har aldri brukt Svelte. Vis meg de viktigste konseptene
med eksempler der jeg ser den direkte ekvivalensen:
- useState → ?
- useEffect → ?
- props → ?
- Context API → ?

Begrensninger du must vite om

Treningsdatokutoff: ChatGPT kjenner ikke til biblioteker, API-er eller funksjoner som ble lansert etter treningsdatoen. Når du jobber med bleeding-edge teknologi (Next.js 15, React 19), kan ChatGPT gi utdatert kode. Fortell alltid hvilken versjon du bruker.

Hallusinerte biblioteker og funksjoner: ChatGPT kan referere til npm-pakker, API-metoder eller konfigurasjonsnøkler som ikke eksisterer. Alltid verifiser at pakker faktisk finnes på npmjs.com og at API-metoder faktisk eksisterer i dokumentasjonen.

Ingen kodebaseforståelse: ChatGPT kjenner ikke din kodebase. For komplekse oppgaver som involverer mange filer og implisitt kontekst, bruk Cursor i stedet.

Sikkerhetsblinde flekker: Generert kode kan inneholde SQL-injeksjon-sårbarheter, IDOR-problemer, manglende validering og lignende. Gjennomgå alltid sikkerhetskritisk kode med ekstra oppmerksomhet.

Effektiv arbeidsflyt

  1. Del opp komplekse oppgaver i steg
  2. Be om implementering steg for steg — ikke alt på en gang
  3. Be alltid ChatGPT forklare valgene den gjør
  4. Bruk oppfølgingsspørsmål: "Hva er alternativene til denne tilnærmingen?"
  5. Sjekk generert kode kritisk — ikke aksepter blindt