Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn

Callista medarbetare Mats Ekhammar

Ännu en "Alt-conference" på Callista

// Mats Ekhammar

Vad är en alt-conference?

Under och strax efter Covid hade vi börjat gå på online konferenser och känt att de oftast var rätt OK, men vi saknade att komma iväg på riktigt med kollegor. När det sedan blev OK att åka ut igen på konferenser kom många iväg, men några av oss kom inte riktigt till skott igen.

Då föddes en idé: om att vill man gå på konferens med kollegor, gärna på någon konferensanläggning nära, så får vi ordna det själva! Innehåll hade vi ju lärt oss att det fanns i mängd därute, det gällde “bara” att välja föredrag som fler ville kika på ihop.

Dessutom upptäckte vi första gången en annan möjlighet och det var att om vi ville diskutera något så var det bara att stanna uppspelningen och göra det. Dessutom kunde vi en bit in i ett föredrag snabbt komma överens om att skippa just det här föredraget. Något som många av oss nog tycker kan vara besvärligt i en fullsatt konferenslokal.

Så detta har blivit vårt koncept alt-conference och i november körde vi det för 4:e gången och kan konstatera att konceptet fungerar riktigt bra!

Höstens alt-conference

Denna gång baserade vi innehållet på just avslutade Devoxx Belgium. En konferens som flera av oss har deltagit i genom åren och som oftast håller hög klass på föredragen. En detalj som sticker ut är att de släpper alla föredrag en dag efter att de hållits! Dessutom finns det fler än 150 Youtube videos att välja bland.

devoxx.png

Nedan följer ett axplock från de 15 föredrag som vi hann kika på tillsammans.

Framtiden för Java

Java Languages Futures med Gavin Bierman pratade om projekt Amber som är ett paraplyprojekt för att utforska och införa mindre produktförändringar i Javaspråket. Dessa kan ingå i ett större sammanhang där flera förändringar samverkar, men varje enskild föränding backas av en JEP (Java Enhancement Proposal), samt släpps i någon kommande Java version. Ett exempel är Record Patterns, preview i JEP 405(Java 19) och JEP 432(Java 20) samt finalized i JEP 440(Java 21). Föredraget ger en intressant inblick av vad som är på gång i Java framöver.

Brian Goetz är en välkända talare inom Java och hans föredrag Postcards from the peak of Complexity förklarade varför det tar sådan tid att komma ut med nya förändringar inom Java. Hans “Peak of Complexity model” liknar en Gartner kurva som alla av oss sett, tidslinjen här kan sträcka sig över 10 år och är hans förklaring till varför vi ofta får vänta länge på förändringar.

Ett annat föredrag av Brian var Valhalla - Where are we. Detta projekt är ett enormt omskrivningsarbete av Java språket och dess exekveringsmiljö. Här har det tagit 10 års utforskande och tester med flera prototyper för att “slutligen” komma fram med hur detta skall göras. Så vill du se lite om memory layout, object identity, value classes (JEP 401), mm så kika på denna presentation.

Ett annan intressant föredrag var Pattern Matching in Java: Past, Present, Future med Angelos Bimpoudis. Här finns ett visst överlapp från Amber föredraget, då resultatet från 6 olika JEP’s leder vägen framåt. Föredraget innehåller flera exempel som verkligen förklarar hur flera språkförändringar samverkar för att närma sig det slutliga målet. Ett (något konstruerat) exempel är följande. Vi börjar med traditionell kod. (Målet är att hitta ett ColoredObject som är gult och där x är större eller lika med 42.)


record Point(int x, int y) {}
record ColoredObject(Object o, Color c) {}

if (o instanceof ColoredObject) {
  ColoredObject co = (ColoredObject) o;
  Object c = co.o;
  if (obj instanceof Point) {
    Point p = (Point) obj;
    int x = p.x();
    if (c == Color.YELLOW
        && x >= 42) {
          System.out.println("Found!");
    }
  }
}

Med pattern matching kan detta skrivas som nedan.


record Point(int x, int y) {}
record ColoredObject(Object o, Color c) {}

if (o instanceof ColoredObject(Point(int x, _ ), Color c)
  && c == Color.YELLOW
  && x >= 42) {
    System.out.println("Found!"); 
}

Andra intressanta föredrag

Om du inte hört om AsyncAPI så kan följande föredrag AyncAPI & Springwolf - Automated documentation (and more) med Raphael De Lio vara intressant speciellt om du använder Spring. Många av oss har använt Swagger, SpringFox och OpenAPI för att exponera och dokumentera REST ändpunkter. AsyncAPI är tänkt att göra detsamma för asynkron kommunikation genom att definera ett kommunikationskontrakt mellan sändare och mottagare. Föredraget börjat dock på riktig strax före mitten, så var beredd på detta.

Hexagonal arkitektur har säkert många hört talas om och på föredraget Hexagonal Architecture in Practice, Live Coding that will make Your Applications more Sustainable går Julien Topçu (med fransk brytning) igenom detta. Mycket livekodning och ett starwars tema utlovas! Det går undan i föredraget men han lyckas fånga essensen i hur man kan strukturera och använda en hexagonal arkitektur i en Java applikation.

Ytterligare föredrag:

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.