Frontendutveckling - back to basics

Squeeds Julkalender | 2022-12-15 | Jesper Gustafsson
Är du bekant med varje rad kod i ditt projekt? Inte jag heller. Vi har under en lång tid nu haft en väldigt snabb utveckling i världen av teknik, allt går väldigt fort och ny, innovativ mjukvara förenklar våra arbetssätt mer och mer. Men jag och mina kollegor ser ofta baksidan av den snabba utvecklingen i de projekt vi hamnar i.

Jag började tänka på detta mer än tidigare när jag gick på teknik-konferensen Øredev i Malmö,
där jag såg en föreläsning som hette: “Keep it simple! How to apply KISS principle in modern frontend”.
Denna föreläsning handlade om hur våra projekt kontinuerligt blir mer “bloated”,
svårjobbade och svårtestade på grund av alldeles för mycket tredjepartskod. Vi importerar dependencies
som är beroende av dependencies som är beroende av mer dependencies.

Föreläsningen i sig var väldigt lättsmält genom roliga anekdoter och exempel av talaren Nir Kaufman,
som under 15 år utvecklat webblösningar i många olika typer av språk och ramverk. Målet med 
hans dragning på Øredev var att få oss som lyssnare att börja tänka mer på hur vi bygger
webbapplikationer ur ett mer minimalistisk perspektiv. Då det numera är en "no brainer"
att dra det populäraste ramverket som i sig är beroende av väldigt mycket annat bös för att ens kunna köras. 

När blev frontend så komplicerat?

När jag började lära mig att utveckla för webben var React redan en webb-standard
och Vue hade börjat få lite uppmärksamhet. Men som de flesta började jag inte arbeta 
med denna teknik direkt, utan jag byggde enklare webb-appar i Javascript. Vilket definitivt
är att föredra när man ska lära sig sitt första programmeringsspråk, då programmering med
ren Javascript är mindre komplex än att använda ett ramverk. 

Ramverk kräver ofta mycket större inlärningskurva på grund av deras ökade komplexitet.
Med ren Javascript behöver du inte oroa dig för att konfigurera och hantera en omfattande
uppsättning verktyg och bibliotek; du kan börja skriva kod direkt.

Dessutom är rena Javascript-program vanligen mindre och mer enkla, vilket gör dem lättare
att felsöka och underhålla. En annan fördel med ren Javascript är att det är snabbt.
De flesta ramverk kräver extra bearbetningstid för att läsa in nödvändiga resurser
och bibliotek, vilket kan sakta ner din hemsida eller app.

Samt flera av sakerna vi älskar i moderna Javascript-ramverk är också relativt enkla att
knacka ihop själv, exempelvis att arbeta med små, individuella delar av kod (e.g. komponenter).

Så länge vi implementerar efter ett strukturerat design-mönster så kan vi
uppnå ganska mycket med väldigt lite. Alltså väldigt lite, alltså inga 
dependencies alls!

Nu när jag nästan skrivit färdigt detta inser jag att jag låter ganska bitter på alla 
nya ramverk som kommer ut, och det stämmer väl till viss del. Jag gillar att
arbeta med ren Javascript, jag gillar att arbeta i ramverk också. För i grund och
botten handlar det om samma sak, att få ut en bra produkt, och det finns
flera vägar att nå dit.

Men jag hoppas att jag iallafall sått ett litet frö genom detta. Kanske kommer vi
tänka en extra gång innan vi drar in det där npm-paketet som inte uppdaterats sen 2014,
och se över alla användningsområden och kriterier en feature ska ha, innan
vi låter ett bibliotek göra jobbet åt oss.

Om detta inte kändes övertygande, eller om ni blev mer intresserade, så kan ni se hela Nir's dragning här: 
https://www.youtube.com/watch?v=8cE5qtI6rBg