2018 skapte et paradigmeskifte i mine programmeringsvaner. Jeg kom fra en jobb hvor jeg hadde skrevet en massiv Angular 1-applikasjon med Java og Postgres i 2017, til å overta et React-prosjekt med et enkelt API som backend i starten av 2018.
Det var mitt første møte med React, og jeg falt pladask for den minimalistiske strukturen og ryddige koden. Ikke minst var det deilig å slippe den forferdelige digest-syklusen i Angular, og all slags egne funksjoner i rammeverket, slik som $timeout. Det at fantastiske create-react-app tok hånd om alt av byggesteg, debugging-støtte og avhengigheter gjorde meg ikke mindre glad.
«Kort oppsummert: det er mye å rydde opp i i 2019.»
For nå var jeg faktisk drittlei av rare byggesteg i Grunt. I React kunne jeg bruke vanlig JavaScript, og lage egne komponenter uten unødvendig komplisert struktur.
Resultatet av mitt første møte med React ble Dagbladet Pluss Utgaven, en daglig oppdatert utgave av artikler fra Dagbladet Pluss.
Senere på året startet vi kode24.no, som er bygget på toppen av CMS-et alle i Aller bruker; Labrador. Det ble en reise tilbake i tid til Mustache-maler og gammel kode. kode24 er nemlig en omskriving av malen til Dinside.no, i tilfelle du har lagt merke til noen likheter.
CSS-en har vi også kopiert fra Dinside sin mal. Den sitter i et eget repository, og består av SASS-filer kombinert med det grusomme CSS-rammeverket Foundation. Alt blir sveiset sammen av en gigantisk Grunt-prosedyre.
Kort oppsummert: det er mye å rydde opp i i 2019. Og her er det jeg har lyst til å lære meg i år.
#1. CSS 🎨
2018 var året jeg begynte å skrive CSS i JavaScript. Det ypperlige styled-components-biblioteket lot meg skrive CSS som komponenter. Ikke bare ser det bedre ut semantisk, men det løser et annet stort problem for meg - nemlig struktur i CSS. Navngiving av klasser og underklasser med bindestreker i øst og vest er noe jeg alltid har slitt med å få til å se fint ut.
Den årlige CSS-in-JS krigen er i gang!
Nå som 2019 er her, er jeg også klar for å bruke CSS-funksjonalitet som har fått bred støtte gjennom 2018. Jeg har planer om å kutte ut SASS-variabler fullstendig, og bruke så mye av CSS-variabler jeg klarer. For en side som kode24.no, hvor vi både har et lyst og et mørkt tema, åpner CSS-variabler for en mulighet til å endre stilen direkte i nettleseren etter last. Istedenfor å måtte definere klasser som overskriver verdier.
Grid skal brukes til alle nye prosjekter i 2019. Og da mener jeg CSS-grid, ikke de snedige løsningene rammeverkene Bootstrap og Foundation kaller grid.
Jeg kommer nok fortsatt til å bruke SASS en del, selv om jeg egentlig synes Stylus er overlegent. Hvor ble det av Stylus, forresten? På kode24 har vi nemlig fortsatt mye HTML som ikke tegnes av React, og vi trenger eksterne CSS-filer.
#2. Python 🐍
I årevis har jeg sverget til Node i tospann med Express for backend-løsninger. Jeg velger det stort sett fordi det går så himla fort å skrive en liten backend i det. Samtidig som det er lett å bygge koblinger til MongoDB med Mongoose.
Bouvet om 2018: Mer Python, mindre jQuery
Problemene føler jeg oppstår når man begynner med mer avanserte ting, som autentisering. Da må man fort forholde seg til grusomme rammeverk som Passport; med kanskje den elendigste dokumentasjonen av alle Open Source-prosjekter.
Dessuten føler jeg at Node-løsninger fort blir store og uoversiktlige, selv om Async/Await har ryddet opp i litt av callback-helvete jeg hadde før.
Jeg leser stadig vekk gode ting om rammeverket Django. Ikke bare virker det som et robust backend-rammeverk med mange innebygde muligheter. Men selve strukturen i Python er også forlokkende. Python er tross alt i vinden om dagen.
Jeg har mål om å bygge minst ett prosjekt i Django i løpet av 2019.
#3. Azure 💙
Det siste året har jeg i all hovedsak brukt Heroku som hosting for mine prosjekter. I tillegg til Netlify for enkelte statiske sider, slik som Toms Hosting.
Devops-erfaring er et stort fortrinn, i følge konsulentselskapene
Det meste av kode24.no styres via Google Cloud. Et system jeg ikke skjønner bæret av, og helst overlater til Allers uovertrufne DevOps-gjeng.
Helt ærlig har jeg aldri vært særlig fan av Google sine utviklingsprodukter. Jeg føler de alltid bærer preg av «her er noe vi ingeniører har hacka sammen, lykke til!». Gjerne med sporadisk rotete dokumentasjon man bruker et halvt århundre på å grave gjennom.
Kanskje er Microsofts skytjenester Azure likedan? Det vet jeg ikke før jeg prøver. Noe jeg har intensjoner om i løpet av året.
#4. Kotlin/Swift ☕
Det føles litt bortkasta å sitte på en rådyr Macbook Pro uten å jobbe med Xcode. De siste årene har jeg fått mer og mer interesse for apputvikling. Webben føles bare ikke like attraktiv som applikasjons-grensesnitt lenger. Spesielt på mobil føler jeg at de gode brukeropplevelsene hører til apper.
Nå har Shortcut kutta ut Objective-C
Venner og familie bruker knapt nettleseren på mobilene sine. Det begrenser seg til WebViews i Facebook eller Twitter. Det er noe keitete med URL-er og navigasjon i webgrensesnitt på mobil, som ennå ikke føles bra nok. Dessuten føles det ikke like trygt som i apper. Spesielt nettbank.
Derfor tenker jeg stadig mer på at jeg bør bygge mer apper.
Swift, alternativet til kronglete Objective C for iOS-utvikling, har modnet veldig som språk. Store selskap som Shortcut sier selv at de skriver alt nytt i Swift. På Android-siden er det stadig flere som går over til Kotlin, og jeg må inrømme at jeg er nysgjerrig på å teste det.
2018 har vært året hvor hybridløsningen React Native gikk sin seiersgang. Men ifølge Shortcut opplever de kunder som ser medaljens bakside, og vil tilbake til native-kode.
Og skal jeg være ærlig, så hadde det vært mest kult å kunne skrive en helt ren native app.
Wes Bos til kode24: - Jeg ville brukt Next.js til backend.
#5. Next.js ⚔️
React preget 2018 for meg. Det var året jeg virkelig satt meg inn i rammeverket. Selv om jeg enda ikke har lært meg mer avanserte mønster, som Redux.
Helt ærlig så har jeg ikke sett behovet.
Jeg har stort sett klart å snekre sammen det jeg har trengt, slik som kodekalenderen vi brukte denne jula.
Men det som har manglet fra React-utviklingen min er uttegning på serversiden. Selv om Google er flink på indeksering av JavaScript-tunge sider, så hadde det vært deilig å ha mer kontroll over titler, Facebook-tagger og meta-tagger.
Det er det nydelige med Next.js. Du får alt det gode fra React, men på server-siden. Mitt neste webprosjekt skal skrives i Next.js!
Vue (og Vuex) bug-knusende cheatsheet
#6. Vue.js 💎
Facebook har stort sett brukt 2018 på å bli mindre og mindre kult. Kidsa bruker det ikke, folk i 20 og 30 åra bruker det kun av vane. og den eldre garde forstår det knapt.
Da er det ikke så rart at andre ting selskapet rører fort kan falle i unåde også. Du skal ikke se bort i fra at Facebooks upopularitet kan være det som synker React, uansett hvor populært det måtte virke nå.
Og da er Vue.js der. Ikke bare takler det mesteparten av det React kan. Du har Vuex for sentral state-holding og Nuxt.js for serverside uttegning.
Jeg tror 2019 fort kan bli året til Vue, så hvorfor ikke prøve å bygge et prosjekt med det i løpet av året?
- Vi tror 2019 blir Kotlins store år!
Bekk kårer Angular, Backbone og Flow som årets tapere, og tror Kotlin og React vil vokse videre i 2019.