Brug af AI-assisteret udvikling#
Dette projekt blev bygget med Claude Code som udviklingsassistent.
Arbejdsprocessen fulgte et fast mønster: planlægning først, opdeling i konkrete opgaver, iterativ implementation og udvidelse gennem interfaces frem for omskrivning.
1. Plan først#
Hver iteration startede med /plan.
Det var en struktureret dialog om:
- arkitektur
- dataflow
- klasseansvar
- fejlhåndtering
- udvidelsesmuligheder
Planen blev gemt og godkendt, før implementation begyndte.
2. Opgavestyring#
Ud fra planen blev der oprettet konkrete opgaver med TaskCreate.
Hver opgave blev markeret som:
in_progressved startcompletedved afslutning
På den måde var det hele tiden synligt, hvad der var færdigt, og hvad der stadig manglede.
3. Iterativ implementation#
Koden blev implementeret én klasse ad gangen i den planlagte rækkefølge.
Fejl blev debugget ved at:
- beskrive symptomet
- læse den relevante kode
- identificere rodårsagen
- lave et minimalt fix
Et konkret eksempel var fejlen “0 matchet”.
Rodårsagen var, at fromEmail var tom, fordi vendors manglede email i Excel, og matcheren ikke kendte til rowNumber-strategien.
Hvad man lærer#
Teknisk#
Apache POI#
Man lærer at læse, skrive og formatere Excel-filer med Apache POI.
Interface-baseret design#
Man lærer at bygge systemer, hvor implementationer kan udskiftes uden store kodeændringer.
HTTP i Java#
Man lærer at kalde en REST API med java.net.http.HttpClient uden eksterne libraries.
IMAP i Java#
Man lærer at forbinde til en mailbox og parse beskeder med Jakarta Mail.
Lokal LLM#
Man lærer at integrere Ollama i en Java-applikation.
Arkitektur#
Separation of concerns#
Hver klasse har et tydeligt ansvar.
Det gør systemet lettere at forstå, teste og udvide.
Robusthed#
Fejl i en leverandør stopper ikke behandlingen af de andre.
Systemet kan derfor fortsætte, selvom enkelte data eller mails fejler.
Fallback-strategier#
Systemet bruger fallback flere steder:
- LLM → regelbaseret analyse
rowNumber-match → email-match- lokal filbehandling → IMAP-behandling
MVP-tænkning#
Projektet fokuserer først på det, der virker.
Funktionalitet som reel mailsending, database og brugergrænseflade holdes ude af MVP’en.
Proces#
Plan-drevet udvikling#
Specifikation og arkitektur defineres før kode.
Det reducerer tilfældige ændringer og gør implementationen mere målrettet.
Opgavenedbrydning#
Store mål brydes ned til konkrete trin.
Det gør projektet nemmere at gennemføre og teste undervejs.
AI-assisteret debugging#
Debugging sker ved at beskrive symptomet, finde rodårsagen og lave et minimalt fix.
Det giver en mere kontrolleret udviklingsproces end bare at ændre kode tilfældigt.
Kort opsummering#
Projektet viser, hvordan AI kan bruges som en praktisk udviklingsmakker.
Ikke kun til at skrive kode, men også til at:
- planlægge arkitektur
- nedbryde opgaver
- debugge problemer
- udvide systemet uden at omskrive det
- dokumentere processen bagefter
There are no articles to list here yet.