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.
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
- Del opp komplekse oppgaver i steg
- Be om implementering steg for steg — ikke alt på en gang
- Be alltid ChatGPT forklare valgene den gjør
- Bruk oppfølgingsspørsmål: "Hva er alternativene til denne tilnærmingen?"
- Sjekk generert kode kritisk — ikke aksepter blindt