Vår teknikstack

7 april 2021

Tags
vue nuxt firebase javascript git

Vår teknikstack (Eating our own dog food)

Vi är ju ett utbildningsföretag, som uteslutande vänder sig till verksamma programmerare. Det här innebär bland annat, att vi ständigt monitorerar ny teknik, nya ramverk och nya programspråk.

Det här gör vi av två skäl, dels för att det faktiskt är riktigt kul och dels för att hela tiden ligga steget före våra kunder, det vill säga du som just nu läser detta. Det här gör att vi hela tiden strävar efter att leva som vi lär. På "amerikanska" använder man det betydligt mer måleriska uttrycket eat your own dog food.

Nyligen har vi gjort en revidering av vår egen teknikstack. Vår webbplats är sedan i Påsk, implementerad med ramverken Nuxt och Vue.js. Vue är ett populärt SPA ramverk (Single Page App) och Nuxt en påbyggnad av Vue innehållande en stor mängd av standardkonfigurationer för professionella webbplatser. Jag återkommer i ett senare blogginlägg med mer information om Vue/Nuxt.

Sedan flera år tillbaka driftar vi våra system på Google Firebase. Firebase är en sk server-less applikationsplattform, som tillhandahåller tjänster för datalagring (Firestore), fillagring (Storage), bakgrundsfunktioner (Cloud Functions), web CDN (Hosting), autentisering med mera.

Schemadata finns i Firestore, som är en JSON databas. En stor fördel med Firestore är möjligheten till real-tids uppdatering, vilket innebär att om vi t.ex. lägger till ett nytt kursdatum, så dyker detta upp automatiskt på schemasidan respektive kursens sida. Detta inträffar utan att du behöver ladda om sidan eller att det finns ett script som pollar server hela tiden. Tekniskt sköts detta av Firestore via web-sockets, vilket medger sk server initiated requests.

Kopplat till detta finns ytterligare två webb applikationer, dels my-ribomation som är den applikation du använder när du går kurs hos oss och förser dig med kursmaterial, installationsanvisningar med mera och dels en intern administrations app. Samtliga utvecklade Vue.js.

All källkod hanteras av en GIT monorepo hos GitLab. Fördelarna med en monorepo är att källkoden till olika projekt, det är inalles 7 stycken i det nya systemet, ligger samlat och tillgängliga i en enstaka IDE (vi använder WebStorm) och implementerade features som spänner över flera projekt hamnar i samma GIT Commit. Det underlättar också att ha en samlad hantering av Node.js 3:e partsbibliotek (NPM libs). Eller för den delen, enkel driftsättning av alla olika delsystem när man kör med Firebase Emulator. Antal kodrader i nya systemet ligger någonstans strax under 100.000 och det har varit till en stor hjälp att ha samtliga projekt samlade på en plats.

Sammanfattningsvis; vi på Ribomation lever som vi lär och låter våra egna erfarenheter genomsyra vårt egenutvecklade kursmaterial. Eller som jänkarna säger we are eating our own dog food. Varmt välkommen att kolla in nya

https://www.ribomation.se/

och skicka mig gärna kommentarer.