Vad är ett ramverk?
Ett ramverk är en samling utvecklarcentrerade microfunktioner som tillsammans utgör standardiserade sätt att lösa de utmaningar utvecklare stöter på dagligen. Det är utvecklarnas motsvarighet till prefabmat, ingredienserna i sig själva utgör ingen måltid, men det går ganska fort att slänga ihop en. Exakt vilka komponenter som ingår i ett ramverk skiljer sig mycket, men vanligtvis har de funktioner för att hantera kommunikation med databaser, URL-hantering, formulär, mm.
Eftersom funktionerna oftast är nära tekniken kretsar utveckling av ramverkslösningar ofta kring externa moduler (paket) som löser större uppgifter. Exempelvis finns moduler för bildbeskärning, sidhantering, versionshantering, bildanalys, etc. Vissa moduler är väldigt stora, t.ex. Wagtail som är ett komplett CMS i formen av en modul till ramverket Django. Istället för att beställa ett färdigt hus så klickar man hem de moduler man behöver och pusslar ihop dem själv.
Fördelarna med ramverk
Ramverk är utvecklarcentrerade och utbyggbara. Det går snabbt att bygga skräddarsydda funktioner och lösningarna blir förhållandevis enkla att underhålla. Prestandamässigt är lösningarna generellt resurssnålare än CMS eftersom de är byggda för det specifika behovet snarare än att vara en generell mellanväg. Därför är de ett bra val om man behöver snabba laddtider för relativt hög trafik. De flesta ramverk är byggda med skalbarhet i fokus, vilket innebär att det är lätt att sprida ut lasten på flera servrar och på så vis "skala upp" tjänsten vartefter trafiken ökar. De stora ekosystemen gör också att lösningarna går att bygga ut väldigt mycket till förhållandevis låga kostnader, vilket passar agila projektmetoder som handsken.
Nackdelar med ramverk
Generellt kan man räkna med ganska höga initiala kostnader vid produktion av ramverkslösningar. I gengäld får man relativt låga underhåll- och driftkostnader. Ifall man vill ha precis det som erbjuds av ett CMS och inte så mycket annat så kan skillnaden vara stor, men om projektet istället innefattar stora anpassningar av CMS-lösningen behöver det inte nödvändigtvis vara så att ramverkslösningen kostar mer. För tjänster som inte inkluderar CMS-funktioner blir valet av en ramverkslösning självklart.
I plattformsvalet kan en stor faktor vara vilka som skall administrera systemet: Om de trivs i och har kompetens kring ett specifikt CMS så kan det vara en god idé att ta hänsyn till det. Ramverkslösningen kommer sannolikt att kräva viss utbildning och löpande supportfrågor. Det är vanligt att avancerade funktioner som kanske ingår i de flesta CMS prioriteras bort av ekonomiska skäl vilket kan leda till en något sämre administratörsupplevelse, men ibland kan ramverkens stora flexibilitet möjliggöra kraftiga effektiviseringar av det redaktionella arbetet.
Så... Vilket är bäst? Vad skall jag välja?
Det beror på vad som ska byggas. Generellt lyder rekommendationen att använda ramverk för digitala tjänster med lite CMS-funktionalitet och att välja ett CMS i de fallen man primärt försöker bygga en informationssajt. Ifall man har väldigt mycket tredjepartsintegrationer och/eller externa datakällor kan ramverkslösningar vara att föredra även för informationssajter. Det finns också hybridlösningar där man har ett CMS som är byggt ovanpå ett ramverk (ex. Wagtail CMS). Personligen älskar jag dessa lösningar eftersom de ger utvecklarna de verktyg som de behöver samtidigt som man slipper uppfinna hjulet på nytt och kan hålla de låga initiala kostnaderna som CMS-lösningar levererar på.
Att välja rätt verktyg för jobbet tycker vi på Fröjd är superviktigt och för att göra det krävs att man har koll på vad som ska utvecklas. Vi börjar alltid processen med att samla in krav och insikter kring systemet innan vi ställer oss frågan vilken plattform vi ska använda. Du kan läsa mer om hur vi jobbar med plattformsval i vår artikel Rätt verktyg till jobbet – Sex viktiga frågor när du väljer digital plattform