Vi skriver åtte ganger så mye duplisert kode med AI

AI-kodeassistenter får oss til å glemme DRY-prinsippet, viser ny undersøkelse.

AI-assistentene får utviklere til å glemme DRY-prinsippet. 📸: NTB / Shutterstock
AI-assistentene får utviklere til å glemme DRY-prinsippet. 📸: NTB / Shutterstock Vis mer

En ny undersøkelse fra selskapet GitClear viser at AI-baserte kodeassistenter går ut over kodekvaliteten, skriver DevClass.

GitClear har analysert 211 millioner kodelinjer fra kunder av sine egne kodeanalyseverktøy, samt fra åpen kildekodeprosjekter, og sett på blant annet hvor mye kode som legges til, flyttes eller oppdateres.

Ett av funnene i årets undersøkelse er at AI gjør at utviklere stadig oftere bryter med DRY-prinsippet – "Do not Repeat Yourself":

Antall kodeblokker med fem eller flere dupliserte linjer økte nemlig med hele åtte ganger i løpet av 2024.

Mer copy/paste

Undersøkelsen ser på blant annet hvor mange kodelinjer som copy/pastes, erstattes, flyttes, oppdates, slettes eller legges til.

Kodelinjer som flyttes (grønn linje) har falt dramatisk med inntoget av kodeassisstenter. I stedet for å refaktorere kode, ser det ut til at kodeassistentene får oss til å duplisere stadig mer kode. 📸: GitClear
Kodelinjer som flyttes (grønn linje) har falt dramatisk med inntoget av kodeassisstenter. I stedet for å refaktorere kode, ser det ut til at kodeassistentene får oss til å duplisere stadig mer kode. 📸: GitClear Vis mer

Ifølge undersøkelsen var 2024 det første året at copy/paste av kodelinjer overgikk antall flyttede kodelinjer:

Mens antall linjer som blir flyttet til andre steder i kodebasen har gått ganske kraftig ned, økte copy/paste av eksisterende kode.

– Kombinasjonen av disse trendene etterlater liten tvil om at dagens implementering av AI-assisstenter gjør oss mer produktive, men på bekostning av at vi gjentar oss selv (eller våre kollegaer), ofte uten å være klar over det.

2024 var det første året da antallet copy/pastede kodelinjer gikk forbi antallet flyttede kodelinjer. 📸: GitClear
2024 var det første året da antallet copy/pastede kodelinjer gikk forbi antallet flyttede kodelinjer. 📸: GitClear Vis mer

I stedet for å refaktorere og følge DRY-prinsippet, blir vi stadig fristet til å duplisere kode, ifølge undersøkelsen.

Selv om duplisert kode kan fungere fint, er det ofte et tegn på dårlig kodekvalitet. Risikoen for bugs øker også, for eksempel når den samme koden oppdateres ett sted – men ikke overalt. Kode i gjenbrukbare funksjoner som kalles fra mange steder er gjerne også mer "gjennomtestet".

Hjelper utviklere

Mens det å legge til ny kode ved hjelp av AI-assistenter er ganske enkelt, er det langt mer arbeid å refaktorere koden, påpeker GitClear i undersøkelsen.

Refaktorering krever blant annet at du kjenner til hvilke mønstre som er brukt på tvers av hele kodebasen, og at utvikleren gjør en vurdering av hvilke funksjoner som ligner nok på hverandre at det er verdt å samle det i én funksjon. I tillegg må utviklere forstå koden de refaktorerer godt nok til å forstå at de ikke ødelegger noe som var avhengig av hvordan koden fungerte før den ble refaktorert.

– Den gode nyheten er at AI allerede hjelper utviklere med de mest trivielle omskrivningene, skriver GitClear.

Selskapet nevner at AI-editorer som Cursor vil foreslå å skrive om kode som ikke tilfredsstiller prosjektets linting-regler. Det betyr at prosjekter takket være disse AI-editorene vil ha en mer konsistent kodestil – i hvert fall når man ser på én og én kodelinje.

Dette er imidlertid ikke det viktigste for å lage kode som er enkel å vedlikeholde på lang sikt, mener GitClear.