– Slik holder du KI-en i ørene

– Når kode kan produseres raskere enn noensinne, blir det også viktigere enn noen gang å rydde i den. Med Fallow kan du trygt overlate ryddejobben til KI-agenten, uten å gi fra deg kontrollen, skriver Kurt Lekanger.

– En av de største fordelene med KI-agenter er at de kan produsere fungerende løsninger veldig raskt.
Publisert

✍ leserinnlegg

Dette er et leserinnlegg fra en ekstern skribent, som betyr at innholdet ikke nødvendigvis speiler kode24s meninger. Vil du også bidra? Send oss en epost på [email protected], eller les mer her!

Jeg liker enkelhet, og jeg hater rot. Likevel er det nesten uunngåelig at en kodebase som over tid vokser seg større blir mer kompleks enn nødvendig. Kanskje du har vært nødt til å ta noen snarveier for å bli ferdig innen en tidsfrist, og har tenkt at «dette skal jeg rydde opp i senere»?

Nå som KI – for mange, inkludert meg – står for en stadig større del av kodingen, betyr ikke det at kodekvalitet er mindre viktig. Tvert imot: God struktur og kode som er lett å forstå, er kanskje viktigere enn noensinne:

  • Det gjør at KI-agenten slipper å forholde seg til kode som ikke er relevant («context pollution»)
  • KI-agenter liker struktur og tydelige mønstre den kan følge

Og like viktig: Det er lettere for deg og kollegaene dine å forstå koden.

Unngå «AI slop»

En av de største fordelene med KI-agenter er at de kan produsere fungerende løsninger veldig raskt. Dessverre er dette også en av de største svakhetene. 

KI har en tendens til å løse problemer der de oppstår, noe som kan føre til duplisering av kode. Ofte løses samme problem på to eller flere ulike måter ulike steder i kodebasen.

Heldigvis har verktøy som Claude Code blitt mye bedre på å se kodebasen i sin helhet og følge eksisterende mønstre, spesielt hvis du bruker «plan mode».

Men det kan bli bedre: For en stund siden ble jeg tipset om CLI-verktøyet Fallow gjennom Syntax-podcasten til Wes Bos og Scott Tolinski. Tittelen på podcasten var «How to fix vibe coding».

Mange kjenner kanskje til Knip, et verktøy for å finne ubrukte avhengigheter, eksporter og filer i koden.

Fallow gjør alt dette og mye mer:

  • Finner duplisert kode
  • Finner ubrukte filer, eksporter og avhengigheter
  • Avdekker sirkulære avhengigheter (som kan forårsake bugs som kan være vanskelig å finne)
  • Identifiserer ubrukt («død») kode
  • Utfører kompleksitetsanalyser som hjelper deg med å finne kode som bør refaktoreres/forenkles

Den største forskjellen mellom Fallow og en vanlig linter ligger i omfanget og dybden av analysen som utføres. Mens en vanlig linter fokuserer på å analysere enkeltfiler for å finne spesifikke syntaksfeil eller brudd på definerte regler, er Fallow et mer omfattende verktøy for å analysere kodekvaliteten – og den ser på hele kodebasen under ett.

Fallow støtter JavaScript og TypeScript, og leveres med 94 plugins med støtte for de mest populære rammeverkene og verktøyene.

Med eller uten KI

Fallow har i utgangspunktet ingenting med KI å gjøre. Verktøyet gjør en deterministisk analyse av kodebasen, som betyr at du får samme resultat om du kjører den to ganger. Slik er det ikke med KI-analyser, der du kan få forskjellig svar hver gang du spør om det samme.

Nettopp derfor fungerer Fallow så bra sammen med KI.

For å komme igang med Fallow kan du enten installere det globalt ved å skrive npm install -g fallow, eller du kan kjøre den uten å installere med npx fallow. Kjører du bare npx fallow når du står i rotmappen til prosjektet ditt får du analyse av død kode, duplisering og kodehelse.

Her har jeg gjort dette på et Astro/Sanity-prosjekt:

Du kan også be Fallow om å fokusere på spesifikke ting:

npx fallow dead-code # Cleanup candidates npx fallow dupes # Repeated logic npx fallow health # Complexity and refactor targets npx fallow fix --dry-run # Preview automatic cleanup

For å finne død kode bygger Fallow en komplett modulgraf av hele prosjektet. Siden verktøyet er skrevet i Rust, skjer dette på millisekunder.

Hjelp til KI-agentene

Du kan velge å bruke Fallow som et manuelt verktøy uten hjelp fra KI-agenter, men det er sammen med en KI-agent at verktøyet etter min mening virkelig skinner.

Fallow har laget både en MCP-server og agent-skills, som du finner mer informasjon om her. Det er også en VS Code-utvidelse.

Jeg anbefaler å bruke Fallows agent-skills, da får KI-agenten din det den trenger for å bruke Fallow til å refaktorere og rydde opp i kodebasen din.

I eksempelet under har jeg bedt Cursor om å lage en plan for å bruke Fallow til å gjøre en Next.js-kodebase enklere å forstå og enklere å vedlikeholde. Jeg har i prompten bedt agenten om å finne død kode, duplisert kode og unødvendig kompleksitet (ved hjelp av Fallows kompleksitetsanalyse). Jeg hadde på forhånd installert skills for Next.js, og ba Cursor om å bruke best practice for Next.js 16.

KI-agenten starter med å kjøre ulike Fallow-kommandoer for å identifisere problemområder, før den fikser en ting, og så kjører Fallow på nytt for å sjekke at scoren har blitt bedre.

Det er sjelden lurt å gjøre alt på én gang når du skal refaktorere. Derfor ba jeg agenten dele arbeidet opp i mindre deler og starte med de minst risikofylte endringene (typisk å fjerne død kode). Hver del ble håndtert i egne PR-er, noe som gjør det enkelt å rulle tilbake ved behov.

Anbefales!

Etter å ha testet ut kombinasjonen Fallow og Claude Code eller Cursor på flere prosjekter, er jeg imponert over hvor bra det har fungert. Fallow har riktignok gitt noen «falske positiver» – som å hevde at en eksport av en funksjon ikke var nødvendig når det faktisk var det. Så sjekk alltid forslagene, og bruk sunn fornuft.

Fallow har hjulpet meg med de enkle refaktoreringene, som å finne og fjerne død kode, sirkulære avhengigheter og eksporterte funksjoner og variabler som ikke importeres noe sted.

Men viktigst av alt: Fallow gir innsikt i hvor koden faktisk er vanskelig å forstå. Dette måles blant annet med cyclomatic complexity – altså hvor mange ulike veier en funksjon kan ta basert på logiske valg.

Den innsikten kan KI-agenten bruke til å bryte opp kompleks kode, forbedre struktur og validere resultatet med nye analyser.

I dokumentasjonen kaller Fallow seg for et sannhetslag for kodebasen som KI-assistenten kan kalle på. 

Et sånt sannhetslag trengs. For KI-agenter trenger faktisk av og til noen som holder den i ørene!

Subscribe!

Bygget med Labrador CMS