Blogg
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Mellan 16:e och 19:e maj så var jag och min kollega Henrik Tellander på en av Europas största utvecklarkonferenser: WeAreDevelopers World Congress i Wien, Österrike. Tre intensiva dagar tillsammans med över 8000 andra utvecklare från ett 70-tal länder och över 140 talare för en mängd olika föredrag och workshops.
Kongressen bjöd på ett veritabelt smörgåsbord av ämnen, presentationer, och workshops. Denna mångsidighet och bredd utgjorde en stor del av essensen i kongressen; att samla tusentals utvecklare och testare till ett event som avhandlar allt som är intressant och spännande i världen, från de senaste tech-buzzwordsen till strategier för att utveckla säkra(re) webbapplikationer, det senaste inom frontend utveckling och vilka egenskaper som behövs för att bli en bra mjukvaruarkitekt. Dessutom ett dessertbord för den som blev frestad av ett helt eget spår avsett för paneldiskussioner och föredrag om hur IT-världen kan bli mer inkluderande och bättre rustad för att välkomna in all den kompetens som kommer att behövas i framtiden. Effekten detta fick på min hjärna kan liknas vid när man poppar popcorn: pop… pop… p-p-p-prrff! Ideérna och tankarna forsade till slut fram, och då kändes det extra bra att ha en kollega att diskutera med på kvällarna. Men vilken är en otroligt häftig och stimulerande känsla det var!
WeAreDevelopers innehöll alltså en brokig skara av föredrag, workshops, och diskussioner i en mängd olika ämnen, och jag kunde såklart inte gå på dem allihop, men överlag höll kongressen en god kvalitet. Självklart fanns det toppar och dalar bland över 100-talet sessioner över tre dagar, men jag ska försöka dela med mig av några av guldkornen som jag lyckades vaska fram där, vid Donaus strand.
Konferensen innehöll flera intressanta föredrag inom säkerhetsområdet. Jag är dock ingen säkerhetsexpert, inte ens efter att ha lyssnat på ett par av föredragen på WeAreDevelopers, så jag kommer inte ge någon detaljerad beskrivning av hur du ska designa din webbapplikation för att den ska bli säker. Men ett par generella råd tog jag med mig från Wien, och det första handlar om dependency-management. I så gott som alla webbapplikationer som utvecklas så använder vi externa komponenter. Ofta väldigt bra sådana, men ändå komponenter som vi har väldigt lite kontroll över. Dessa komponenter kan dessutom dra in andra komponenter, så att till slut exekveras väldigt mycket kod i våra applikationer som vi egentligen inte har en aning om vad den gör. Detta gör det svårt att veta om, eller var, i applikationen som det finns säkerhetshål. Det finns dock hjälpmedel för att skydda sig mot att få in komponenter som innehåller kända säkerhetsbrister, och ett sådant verktyg som omnämndes i Wien var OWASP dependency-check, som finns både som Gradle och Maven plugin, för Java och .Net, eller direkt via Homebrew för Mac. En annan säkerhetsaspekt som presenterades var det möjligen något kontroversiella budskapet att du bör inte lägga tid åt att (själv) försöka säkra upp din applikation genom (manuell) input-validering. Varför inte då? Jo, det visar sig vara extremt svårt att lyckas med. Istället får vi helt enkelt förlita oss på speciellt utvecklade standardkomponenter för inputvalidering. Sorry, så är det bara. Använd standardbibleotek för inputvalidering, och om du har någon som helst koppling mellan användarinput och databasfrågor: för guds skull, använd prepared statements (eller liknande)! Sådär, ett tips (OWASP dependency check) och två råd (standardkomponenter för inputvalidering och prepared statements till databasen), imorgon kan du göra din webbapplikation så mycket säkrare!
Så gott som ingen torde ha undgått AIs veritabla tidvattensvåg som sköljer in över oss. Det pratas om det i media, det skrivs artiklar, och självklart hade AI en framträdande roll på WeAreDdevelopers 2018. Tyvärr så lyckades jag inte pricka in några för mig riktigt givande AI föredrag. Problemet är att ämnet är stort och komplext och på en kongress med över 8000 deltagare så är det relativt få som har jobbat med AI, så föredragen höll sig på en väldigt övergripande nivå, lite teknik-sälj-snack. Jag fick dock med mig ett litet frö till värdefull insikt. När jag har tänkt tillämpningar för AI/ML tidigare så har jag nästan alltid tänkt “en app - en AI”, men vad man kanske borde tänka är snarare “en funktion - en AI”, så att i din applikation kan du ha många inbyggda AI komponenter för olika funktioner. Det kanske är smart, eller självklart, men hursomhelst en tanke jag gärna delar med mig av.
Microtjänster är fortfarande hett. Eller så är det bara så att det är så komplext så att det finns mängder av problem och lösningar att prata om på konferenser. En indikation på hur komplext det kan bli med en microtjänstarkitektur gavs av en av arkitekterna på Uber. Deras ekosystem av microtjänster har vuxit sig så stort att ingen längre vet vilka de är eller ens vad de gör. Detta låter förstås helt galet, men det var nog också avsiktligt i det föredrag som hölls. Så vad gör de för att hantera denna till synes ohanterliga situation? De monitorerar, spårar och testar. De ser till att övervaka infrastrukturen av microtjänster så de kan se när någonting går fel och var det går fel någonstans. Så, kort sagt kan man säga att Uber bjöd på en lektion i vikten av att kunna visualisera vad som händer i ditt system (iaf om du har flera tusen microtjänster distribuerade över datacenter i hela världen). En annan fråga som dyker upp ibland är (om vi låtsas att den föregående frågan var “är microtjänster fortfarande hett?”), vad som är arkitektens roll i en agile organisation? Vad ska man göra om man vill bli en bra arkitekt? Om svaret på frågan om arkitektens roll tidigare har varit “att äga, utforma, och underhålla arkitekturen”, så är kanske arkitektens roll i en agile organisation snarare att vara den mångsidiga generalisten. En person som kan presentera idéer och lösningsförslag till icke-tekniska chefer, men samtidigt bidra med teknisk kunskap, erfarenhet, och i viss mån ledarskap till utvecklingsteam och dessutom ha en god insikt i teknikutvecklingens riktning. Ganska mycket för en person? Saken är den att du behöver inte vara den bästa på alla dessa saker. Ett bra hjälpmedel på vägen om du vill bli en god generalist, och därmed potentiellt en bra arkitekt, är att utvärdera dig själv med jämna mellanrum med en spindelvävsgraf, där de olika axlarna utgör olika färdigheter, som t.ex. teknisk kompetens, UX, verbal, ledarskap, framtidskoll, etc. När du ser vilka områden du inte fyller ut så bra så ser du till att jobba målinriktat med dem!
Jag kommer hålla detta stycke väldigt kort, för som backend utvecklare med målet att bli en god generalist (se ovan), så är frontend ett av de områden där jag verkligen inte hängt med de senaste åren. Men, jag vill bli bättre, och av de anledningen så gick jag och lyssnade på en del presentationer om bland annat Angular och Vue. Jag vet inte hur populärt Angular är längre i Sverige då det jag hör mest om är React och ReactJS, men sett till den här konferensen så är Angular aktuellt i allra högsta grad. Personligen så attraheras jag lite av Angular då jag tycker att det passar väl in i ett MVC tänk som nog sitter ganska djupt rotat i mig, men då Vue och Vuex marknadsförs som det bästa från Angular kombinerat med det bästa från React så tycker jag att det kan vara värt att kika vidare på. Så, det var väl ungefär det jag fick ut av 4 timmar om npm packages i Angular, web components, vue, monorepos… Och någonting om en massa Ninja Turtles.
WeAreDevelopers 2018 hade som ledmotiv “Code - People - Future”. Koddelen har jag avhandlat ovan tycker jag, så återstår människorna och framtiden. En av de viktigaste sakerna som jag vill få ut av en konferens är inspiration. Man kan lära sig mycket av bra presentationer på en konferens, men det är framförallt vad man gör när man kommer hem som är det viktiga, och då är det avgörande om man har blivit inspirerad. Inspiration kan komma på många olika sätt, och jag vill avsluta den här bloggen med ett litet sammandrag av de delar som inspirerade mig mest på WeAreDevelopers World Congress 2018. Den första ordentligen inspirationskicken fick jag av en paneldebatt som handlade om kraften av mångfald. Genom att inkludera “de andra” (och de andra betyder precis alla som inte är vita män mellan 25 och 45 år, så jag är snart en mångfaldsgubbe) i utvecklingsprocessen så kan vi få in massor av perspektiv som vi annars missar. Det betyder att vi kan nå marknader som annars helt skulle ignorera våra produkter, och det finns många sådana exempel, både på företag som lyckats fånga upp perspektiv och därigenom också hittat stora kundgrupper. Under konferensen erbjöds även ett par föredrag som försökte titta lite framåt i tiden också. Kommer vi utveckla progamvara på samma sätt som vi gör idag om, säg 30 år? Vilka kompetenser kommer vara mest användbara om, säg 10 år? Behöver jag säga att antagandet som fördes fram var att det mesta kommer bli annorlunda i framtiden? Så om det nu kommer bli annorlunda i framtiden, hur kommer det bli, och vad är det som kommer driva fram de förändringarna? Det är ju vi, såklart! Allihop av oss, men kanske framförallt de som vågar tänka nytt, de som vågar vara nybörjare igen och de som verkligen har en idé om framtiden. Så våga drömma, våga prova något nytt, våga fråga.
Jag måste avsluta med att säga att Wien är en fantastiskt vacker stad! Jag bodde i närheten av Schönbrunn Slottspark där jag passade på att ta en joggingrunda innan frukost, sedan in mot centrum med en tunnelbana som gick var 3:e minut och efter en dag av konferensande så kunde man avnjuta en Wienerschnitzel med en kall öl på någon restaurang. Om du inte varit där, åk dit, det blir mitt sista tips i den här bloggen.