Status: Backendudvikling – uge 38

På backenddelen af QuestGame arbejder jeg med C# og ASP.NET Core. Backendens opgave er blandt andet at håndtere quests, aktiviteter, deltagere, besvarelser og point samt kommunikere med PostgreSQL-databasen gennem Entity Framework Core.

Et af de områder, jeg har haft fokus på, er strukturen af backendprojektet. Vi har valgt en feature-baseret Vertical Slice Architecture, hvor funktionalitet organiseres efter features frem for traditionelle tekniske lag. Det betyder eksempelvis, at kode til oprettelse af en Quest samles omkring den konkrete feature i stedet for at være fordelt på mange forskellige mapper og lag.

Eksempel på Vertical Slice-arkitektur. Hvor man normalt opdeler lagene i egne projekter, samler man i stedet features i vertikale “skiver” med alle lag i samme mappe.

Jeg bruger her Kolbs læringscyklus som en måde at reflektere over mit arbejde på. Først afprøver jeg arkitekturen i den konkrete implementering. Derefter vurderer jeg, hvor godt strukturen fungerer, når projektet vokser, og kobler mine erfaringer til den teori og de principper, jeg undersøger omkring backendarkitektur. På baggrund af dette kan strukturen løbende justeres. Jeg ved allerede nu at Vertical Slice-arkitekturen kan blive uoverskuelig/problematisk, hvis antallet af features vokser med tiden. Men i skrivende stund er det vores vurdering, at det ikke bliver tilfældet.

Mit næste fokus bliver at arbejde videre med samspillet mellem backend og database samt undersøge og forstå, hvor teknologier som Docker og RabbitMQ kan give mening i projektet.

Kilder