Hopp til innhold

Slik holder du kvaliteten når AI skriver koden

Torn Studio2 min lesetid

Torn Studio er et AI-byrå som bygger nettsteder, digitale produkter og innhold. Utradisjonelt.

Kort svar

Når AI skriver mesteparten av koden, flyttes kvalitetsansvaret fra gjennomgang til automatiske kontroller. Typesjekk i streng modus, tester, lintregler som kodifiserer arkitekturvalg og én enkelt verify-kommando som må være grønn før hver commit, fanger til sammen det et menneske slutter å se etter den tredje filen.

Den vanligste innvendingen mot AI-skrevet kode handler om drift: at stilen, strukturen og beslutningene glir fra hverandre over måneder, til ingen lenger kan si hvorfor noe ser ut som det gjør.

Gjennomgang skalerer dårlig

Et menneske som gjennomgår sin tredje AI-genererte fil på en time, leser med dårligere skarphet. Det er en forutsigbar effekt av hvordan oppmerksomhet fungerer. Løsningen er å flytte så mye som mulig av vurderingen til noe som holder jevn skarphet.

Portene som gjør jobben

  • Typesjekk i streng modus, inkludert noUncheckedIndexedAccess
  • Lintregler som kodifiserer arkitekturvalg
  • Tester for det som faktisk koster penger om det ryker
  • Én kommando som kjører alt, og som må være grønn før commit

Poenget med det siste punktet er at en port teller først når den faktisk kjøres. Krever den fire kommandoer og god hukommelse, blir den hoppet over en fredag.

Grunnlag

Hva denne artikkelen hviler på — en måling vi gjorde, en datert kilde eller en beslutning vi tok og hva den kostet.

  • Beslutning

    Kvalitet holdes av automatiske porter som kjøres ved hver endring: typekontroll, tester, lintregler som koder inn arkitekturbeslutninger, og én kommando som må være grønn før hver commit.

    Hva det kostet: Det koster byggetid ved hver endring, og en hastefiks på to minutter kan stoppes av en kontrasttest eller en typekontroll som ikke bryr seg om at det er fredag.

Vanlige spørsmål

Blir koden dårligere om AI skriver den?
Kvaliteten følger portene. Er typesjekk, tester og lintregler på plass, holder koden samme nivå uansett hvem eller hva som skrev den.
Hvilke tester er verdt å skrive?
De som dekker det som koster penger når det ryker: betalingsflyt, tilgangsstyring, dataintegritet og reglene som er vanskeligst å holde i hodet. Full dekning av triviell kode gir dårligere utbytte per time.
Hvor streng bør typesjekken være?
Streng modus på, inkludert sjekk av indekserte oppslag. Hvert hull du lar stå åpent, er en feilklasse et menneske må fange i gjennomgang, og det er akkurat den delen som skalerer dårligst.
Kan lintregler erstatte kodegjennomgang?
De erstatter den kjedelige halvdelen. En lintregel fanger arkitekturavvik mekanisk, noe som frigjør gjennomgangen til det den er god på: om løsningen løser riktig problem.
Hva gjør man når en port blir for treg?
Deler den opp. Raske sjekker kjøres ved hver lagring, tyngre ved commit og de tyngste i bygget. En port som tar ti minutter, blir omgått, og da fanger den ingenting.
Hvordan får man et team til å faktisk kjøre portene?
Gjør det til én kommando. Krever det fire kommandoer og god hukommelse, blir de hoppet over. Én enkelt verify som må være grønn, er den eneste varianten som holder over tid.