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_progress ved start
  • completed ved 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:

  1. beskrive symptomet
  2. læse den relevante kode
  3. identificere rodårsagen
  4. 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.