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
Den 19:e upplagan av Jfokus är slut och nu ser vi fram emot det stora jubileumet nästa år. Eftersom jag verkar finnas med på inventarielistan var jag på plats även i år och såg till att alla talarna fick hjälp av scenvärdar. Årets upplaga var en av de bästa jag varit på och det finns många intryck att smälta. Det här är några av intrycken från konferensen.
Allt ska gå att göra med AI sägs det. Våra jobb som programmerare kommer att försvinna. Så, eftersom jag är ansvarig för scenvärdarna så lät jag givetvis en AI sköta planeringen. Det gick sådär, så i slutändan gjorde jag som vanligt och använde mitt analoga post-it-baserade system för att göra schemat. Endast ett par mindre sjukdomsfall gjorde att jag fick stuva om lite innan vi startade. Lyckligtvis har jag ett stort gäng scenvärdar som varit med länge och problemet är inte att få någon att ställa upp, utan att försöka komma på vem som började prata först när de svarar i munnen på varandra.
Men, det är inte vad som är det viktiga, utan vad tar jag med mig från årets Jfokus.
Måndagen är vikt för längre sessioner och hands-on-labbar och i år började jag med att gå och lyssna på Renato Guerra Cavalcanti som höll en Deep Dive kallad Microservices Got Talent: The Event-Driven Beautiful Dance. Eftersom Renato är från Akka var mycket av hans presentation färgad av hur Akka tänker kring händelsebaserade system, men han lyckades hålla sig på en bra teoretisk nivå och det var absolut ingen produktpresentation.
De viktigaste sakerna jag tar från det här föredraget är att vi måste sluta tänka i CRUD när vi designar system och börja tänka i Fakta. Vi tenderar att fokusera på saker och ting, alltså substantiven. Våra domänobjekt är nästan alltid saker. Om man istället fokuserar på vad som händer så börjar man använda verb istället. Kommandon blir då imperativa, d.v.s. de är en direkt uppmaning som t.ex. “Spara min fil” och händelserna uttrycks i perfekt tempus, alltså “Filen har sparats”.
Eftermiddagen tillbringade jag med Kevlin Henney och ett par timmar av vad jag skulle kalla utvecklingsfokuserad stå-upp. Kevlin är en väldigt duktig talare och verkar ha oändligt med anekdoter att knyta komplexa saker till. I normala fall har jag aldrig något problem med det, men i år tyckte jag han gick lite för långt.
Några saker tar jag med mig:
Tisdag, ett mörkt A1 på Waterfront, packat till sista plats och huvudkonferensen drar igång. Årets intro var det mest spektakulära någonsin med stora delar av Jfokus-crew på scen, spelandes luftgitarr och headbangandes till Nanowar of Steels stora hit HelloWorld.java. Det går att se framträdandet på YouTube, men YouTube tar tyvärr bort copyrightskyddat ljud så då får man gå till originalvideon.
Huvudtalare för i år var Kesha Williams och Henrik Kniberg som båda pratade om hur AI påverkar oss som utvecklar, men på helt olika sätt. Kesha var mer teoretisk och inriktad på de mjuka delarna och Henrik visade, givetvis genom att koda direkt på scenen, hur han har blivit effektivare och får mer gjort genom att utnyttja AI och agenter.
Om vi tycker om det eller inte så är AI något som vi som programmerare måste börja förhålla oss till och lära oss utnyttja, precis som med andra stora förändringar som hänt.
Nästa session jag tittade på var två energiknippen som stod på samma scen för första gången tillsammans. Det var Eric Deandrea från Red Hat och Oleg Šelajev från Docker. Det Oleg inte vet om Testcontainers vill han gärna bli uppmärksammad på, och det Eric inte vet om testning generellt är inte mycket. Tillsammans gjorde de en väldigt bra presentation om hur man kan utnyttja AI, Testcontainers och andra teknologier för att göra om testprocesserna och göra CI-miljöerna väldigt kraftfulla. Jag insåg halvvägs genom deras tal att jag själv tänkt fel i hur man ska se på vad och i vilken ordning man bygger, deployar och testar sina applikationer idag.
Jonas Bonér var tillbaka på Jfokus igen och eftersom han också är från Akka så var delar av vad han pratade om sådant som även Renato tagit upp, men från andra synvinklar. Där Renato fokuserade på vad som händer pratade Jonas en hel del om varför.
För att skapa autonoma och elastiska system behöver man egentligen bara hålla reda på följande:
Jag är av den fasta övertygelsen att om du inte har data, så gissar du. Marcus Hirt från Datadog håller med mig.
Det var en intressant resa från JRockit i början av 2000-talet till dagens låg-påverkande och kontinuerliga profilering av våra system som presenterades. Javas Runtime Environment har genomgått en hel del förändringar för att möjliggöra att man idag kan göra live-profileringar på produktionssystem utan att göra alltför stor påverkan på dem.
Och man kan till och med göra det medan JVM:en fortsätter att gå. I alla fall om man lyssnar på Marco Sussitz, som berättade i detalj vad som händer när vi låter vår IDE göra hot swap av kod medan vi skriver om den. Spoiler: Det är inte så enkelt som man tror och det är som att mixtra med mörk magi – förr eller senare får du betala för det.
Jakarta Data 1.0 och Jakarta Persistence 3.2 introducerade helt nya sätt att persistera data i Java och äntligen på ett typsäkert sätt. Men den nya specifikationen som introduceras i Jakarta EE 11 för med sig en del bieffekter. Det var vad Gavin King förmedlade under sitt tal och han visade hur Red Hat gör det i Hibernate. Tyvärr måste jag säga att det var aningen för mycket polemik om hur andra ramverk som tillåter utvecklare att göra detta, men på andra sätt, är helt dumma i huvudet.
På samma tema pratade Markus Kett från MicroStream om hur man idag kan jobba med stora mängder data i minnet eller när minnet tar slut för att göra applikationer mycket snabbare. Det är helt klart så att vi är för fokuserade på att spara våra saker och borde fokusera mer på att göra något med det vi har innan vi skriver ner det till databasen.
Här tänkte jag göra en djupdykning någon gång i framtiden.
Onsdagen började med att kika in under huven på AWS och Spring med Maximilian Schellhorn och Dennis Kieselhorst från AWS. Intressant att se hur man med AWS och deras Snapstart kan använda CRaC för att snabba upp uppstarten av deras Serverless-funktioner. I princip är det samma som vår egen Magnus Larsson har skrivit och pratat om, men förpackat i en AWS-kostym.
Så det är lika bra att inte lita på någon. Sam Bellen är den som får mitt personliga pris för mest nyttiga föreläsning. Vi tenderar att fokusera på Rollbaserad access, men det finns ett antal andra mönster som förmodligen passar bättre.
Det här talet spelades tyvärr inte in, vilket jag tycker är synd då det är en väldigt bra genomgång av de olika typerna av strategier det finns för auktorisering.
Ibland måste man rita boxar och linjer också. Simon Brown, en stor inspirationskälla, pratade om C4-modellen, Structurizr.io och hur man numera kan använda den för att med hjälp av bara några få rader kod analysera sig fram till modellerna som finns gömda i koden. Det enda som är lite tråkigt är att han bara har släppt det som “Patreonware”, d.v.s. man måste prenumerera på hans Patreon för att få tillgång till dokumentation och de senaste versionerna.
Många företag idag ISO 27001-certifierar sig. Mario-Leander Reimer har varit utvecklare i många år men är numera snarare CTO eller Engineering Manager. Utifrån de perspektiven berättade han hur ISO 27001-ramverkets krav passar bra ihop med modern utvecklingsmetodik. Det viktigaste jag tar med mig är hur man kan utnyttja ISO 27001-certifieringen för att äntligen få köpa in de där roliga verktygen som Snyk och liknande.
Men det struntar Alexander Chatzizacharias i fullständigt. (Och ja, det är knappt att han själv kan uttala sitt efternamn). Av de presentationer jag såg live var det Alex som jag hade roligast åt. Fullständigt genomfånigt och väldigt roligt.
Tyvärr är inte JVM:en något som man kan strunta i att optimera. Yagmur Eren borde ha fått en hel lång session för sitt tal, som i den här versionen bara var en Quickie. Det hon har studerat, och skrivit en avhandling om, handlar om hur man med hjälp av maskininlärning och AI kan testa de hundratals olika flaggor som kan användas för att styra en JVM. De hade fokuserat på ett fåtal som styr minnesinställningar och garbage collection.
Men för att man ska vara produktiv är det ändå viktigt att man har kul som utvecklare. Trisha Gee avslutade årets konferens på topp med att prata om vad som gör att vi har kul när vi programmerar. Under den efterföljande unConference som jag var med på var det här ett stort ämne och det kommer en egen artikel om just det ämnet.
Årets Jfokus-presentationer var något mer produktcentrerade än förut, men fortfarande inte så det direkt störde. Några av de stora spelarna, som Microsoft, saknades och tyvärr hade även några av de små och familjära utställarna valt att inte vara med på Jfokus. Andra, som Polisen, var klart intressanta att prata med på utställningsgolvet.
Efter tre dagar på Jfokus är en sak glasklart tydlig - AI är inte bara en fluga som kommer att försvinna. Men det är inte heller domedagen för oss utvecklare som vissa profeter förutspådde. Det är snarare som när vi fick källkodshantering, byggverktyg eller containrar - ett verktyg som gör oss mer effektiva när vi använder det rätt.
Som jag nämnde i början så lät jag en AI planera schemat för scenvärdarna. Det gick ungefär lika bra som när praktikanten försöker lösa merge-konflikter - teoretiskt korrekt men totalt oanvändbart i praktiken. Samtidigt ser jag hur mina kollegor använder AI för att debugga krånglig kod, generera enhetstester och komma på variabelnamn som faktiskt betyder något (farväl temp1
, temp2
och data
).
Det handlar inte om att ersätta utvecklare, utan om att ge oss superklipp-och-klistra-krafter. Precis som vi inte längre behöver kunna hela Java-API:et utantill, kommer vi inte behöva memorera exakt hur man konfigurerar Kubernetes eller skriver den perfekta SQL-frågan. Men vi behöver fortfarande veta VAD vi vill göra och VARFÖR vi gör det.
Som Henrik Kniberg så elegant demonstrerade - AI är som en ivrig junior utvecklare med tillgång till hela StackOverflow i huvudet. Ibland briljant, ibland helt ute och cyklar, men alltid redo att hjälpa till. Det är upp till oss att vara den erfarna mentorn som vet när vi ska lyssna och när vi ska ta fram det gamla hederliga post-it-blocket istället.
För det här blogginlägget har jag använt mig av Googles Notebook LM för att titta igenom presentationerna, både PDF:er och Youtube-videos och använt det för att ställa frågor och sammanfatta vad de olika talarna sagt. Jag har också använt Claude AI för att korrekturläsa och agera redaktör och nästan hela det här avsnittet är från början strukturerat av en AI. Jag har sedan dekorerat det med mitt eget språkbruk och stil.
Nästa år är det den 20:e upplagan av Jfokus och redan nu börjar vissa planer att ta form. Som att datumet är den 2-4 februari.
Om jag inte är ersatt av en AI så ser jag fram emot att fortsätta vara med och arrangera många år till.