Skip to content

DRY

Hva er DRY?

DRY står for «Don't Repeat Yourself» og kommer fra boken The Pragmatic Programmer. Prinsippet er enkelt: hver bit kunnskap skal finnes ett sted i løsningen din. Én kilde til sannheten, enten kunnskapen ligger i kode, konfigurasjon eller dokumentasjon.

Prinsippet er gammelt, men har fått ny tyngde. Nå er det ikke bare mennesker som skal forstå og vedlikeholde løsningen din, men også modeller.

Gjentagelse gjør vedlikehold vanskelig

Modellen har begrenset synsfelt. I en større kodebase leser agenten det den tror den trenger, sjelden alt, og den kan overse hvordan løsningen din henger sammen. Finnes samme kunnskap flere steder, retter agenten gjerne ett av dem og glemmer resten. Kopiene divergerer over tid, og både mennesker og modeller mister oversikten.

To paneler. Kopiert kunnskap: tre filer med samme regel, agenten rettet «MAKS_LÅN» til 5 i én fil mens de to andre fortsatt sier 3 og har varseltrekant — agenten rettet én kopi, de andre henger igjen. Én kilde til sannhet: regelen bor i én fil, de to andre peker til den med «import regler» og «Referer til regler.py», og alt er riktig — rett ett sted, riktig overalt.

Dokumentasjon er et godt eksempel. Dokumentasjonen er en del av løsningen din: den beskriver hvordan løsningen så ut på et tidspunkt. Ligger den langt fra koden, øker sannsynligheten for at de to divergerer. Lag dokumentasjon som KI kan lese, og la den leve nært koden, i repoet der agenten jobber.

Agenten lapper heller enn å rydde

Den enkleste løsningen på et problem er litt gaffateip som får symptomet til å forsvinne, ikke en opprydding i arkitekturen. Agenten strekker seg derfor ofte etter gaffateipen: en ekstra if-setning, en kopi av funksjonen med en liten vri. Hver lapp virker der og da, men summen blir en fragmentert løsning som er vanskelig å forstå og vedlikeholde.

Gi agenten motstand når du ser det skje, og be den tenke seg om en gang til:

Prompt: tenk på nytt

Think through this problem once more. The goal is a clean solution that does not
replicate code or state, and adheres to DRY. How would we build this if we were
starting from scratch?

Hva sier DRY-prinsippet?

Hvorfor er duplisert kunnskap ekstra vanskelig for en agent?

Agenten foreslår enda en spesialhåndtering for å fikse en feil. Hva er et godt grep?