Programvarearkitektur kommer før teknologi
Nylig flyttet jeg hyllestnettstedet mitt til Jackie Leven fra PHP til Go på én dag, sammen med kodeagenter. Innholdet og utseendet forble det samme.
Nettstedet begynte som et lite, personlig prosjekt om en skotsk låtskriver som betyr mye for meg, både gjennom musikken og som person. Etter hvert som jeg samlet mer materiale, vokste prosjektet betydelig. Jeg ønsket å gjøre arkivmaterialet tilgjengelig gjennom semantisk søk og valgte Go for den videre utviklingen av applikasjonen.
Det som gjorde overgangen håndterbar, var en beslutning jeg hadde tatt lenge før: å holde tekstene og katalogene adskilt fra programlogikken. Hvordan nettstedet skulle fungere for brukerne, var også beskrevet tydelig nok til at jeg kunne sammenligne den gamle og den nye versjonen. Det ga agentene en struktur å arbeide innenfor og meg en måte å kontrollere resultatet på.
Dette har endret hvordan jeg tenker om teknologivalg. Tidligere var valgene mine i stor grad preget av språkene jeg kunne, og verktøyene som allerede var etablert rundt meg. Når jeg arbeider med agenter, kan jeg vurdere alternativer som før ville ha krevd mye tid til læring før jeg kunne bygge noe nyttig.
Samtidig blir jeg mer opptatt av strukturen i applikasjonen: hva hver del har ansvar for, hva den er avhengig av, og hvor grensene går. Agenter arbeider med koden de finner. Tydelige grenser gjør det lettere å begrense en endring til den delen den gjelder, og kontrollere virkningene. Når grensene er uklare, kan selv en liten idé spre seg gjennom kodebasen.
I dette prosjektet kunne jeg se helt konkret hva en gjennomtenkt arkitektur ga meg: friheten til å endre implementasjonen og samtidig bevare arbeidet jeg hadde lagt i nettstedet.