
Innovasjon og innsikt på Javazone 2024 - Oppsummering av konferanse
JavaZone 2024, som ble arrangert 4. og 5. september i Oslo, var en spennende konferanse for utviklere og IT-fagfolk. Våre ansatte deltok på flere foredrag som dekket et bredt spekter av temaer, fra moderne arkitekturer til nye Java-funksjoner. I dette innlegget deler vi de viktigste innsiktene fra konferansen, inkludert hvordan Quarkus forbedrer utviklingsprosesser, hvorfor mikrotjenester og delte biblioteker kan være effektive, og hvordan passordløs autentisering blir en realitet.
Lightning talks.
Tre springgrøfter jeg har vært i.
Av Anders Karlsen
Anders Karlsen ga et personlig tilbakeblikk som Spring-utvikler. I denne presentasjonen delte han tre feil han har gjort gjentatte ganger til tross for sin erfaring. Disse feilene var ofte resultatet av et kompromiss mellom det han visste var den riktige tilnærmingen, og tids- eller kompleksitetsbegrensninger.
Hovedpunkter.
- Feil 1: Fristelsen til å ignorere visse unntak i Spring-applikasjoner, som i utgangspunktet ser ufarlige ut, men som ofte fører til feil senere.
- Feil 2: Dårlig håndtering av avhengigheter i Spring, noe som resulterte i stive og vanskelig vedlikeholdbare systemer.
- Feil 3: Overbruk av annotasjoner, som gjorde koden vanskelig å lese og vedlikeholde over tid.
Hva vi lærte: Karlsen minner oss på viktigheten av å gjøre ting riktig fra begynnelsen, selv når tidsfrister er stramme. Hans erfaringer gir en universell lærdom om viktigheten av nøyaktighet i programvareutvikling.
Fellesbiblioteker og mikrotjenester, effektiv kodeduplikasjon?
Av Magne Kjellsvik
Magne Kjellsvik diskuterte en utfordrende problemstilling i mikrotjenestearkitektur: bruk av delte biblioteker. Mens noen ser på dette som ineffektiv kodeduplikasjon, argumenterte Kjellsvik for at riktig utformede delte biblioteker kan fremme effektivitet og samarbeid.
Hovedpunkter.
- Effektivitet av delte biblioteker: Når de er godt utformet, kan delte biblioteker redusere kodeduplikasjon og forbedre samarbeidet mellom utviklingsteam.
- Vedlikeholdsutfordringer: Å lage slike biblioteker krever nøye design for å unngå vedlikeholdsproblemer.
- Beste praksis: Kjellsvik anbefalte god dokumentasjon, grundig testing og modularisering for å maksimere effektiviteten.
Hva vi lærte: Selv om delte biblioteker i mikrotjenestearkitekturer kan være kontroversielle, viste Kjellsvik at med riktig styring kan de være en verdifull ressurs for utviklingsteam.
Presentasjoner.
ID-porten til sky uten nedetid.
Av Anne Marte Hjemås og Thomas Reppesgård
Anne Marte Hjemås og Thomas Reppesgård delte sitt imponerende prosjekt med å migrere ID-porten, som brukes til autentisering av millioner av borgere, til en ny skyinfrastruktur uten nedetid. Denne migrasjonen involverte en fullstendig omskriving av koden, modernisering av teknologiene og adopsjon av Kubernetes.
Hovedpunkter.
- Sømløs overgang: Migrasjonen til Kubernetes ble gjennomført uten nedetid takket være nøye planlegging og smidig gjennomføring.
- Fullstendig modernisering: Overgangen fra Java 8/11 til Java 21 var et av prosjektets mest bemerkelsesverdige aspekter, med en fullstendig omskriving av kritiske komponenter.
- Feilhåndtering: Teamet møtte flere utfordringer, som å håndtere to versjoner av systemet samtidig i produksjon, samt feil i koordineringen av sikkerhetsprotokoller.
Hva vi lærte: Denne presentasjonen demonstrerte viktigheten av strategisk planlegging og tilpasningsevne i håndteringen av store migrasjonsprosjekter. Deres erfaringer gir verdifulle innsikter om hvordan man kan håndtere komplekse overganger med minimal risiko.
Agile and Architecture: a meeting of the undead
Av Einar W. Høst
Einar W. Høst tok en provoserende tilnærming ved å sette smidighet opp mot programvarearkitektur. Han utforsket hvordan, selv om arkitekturen ble "avskaffet" med fremveksten av smidige metoder, fortsetter begge disse konseptene å eksistere i et skjebnefellesskap, begge streber etter å løse komplekse problemer innen programvareutvikling.
Hovedpunkter.
- Myten om arkitekturens død: Høst argumenterte for at arkitekturen aldri døde, men må eksistere i harmoni med smidige metoder for å møte moderne utfordringer.
- Viktigheten av et strukturert rammeverk: Selv om smidighet bringer fleksibilitet, er en solid arkitektur nødvendig for å sikre skalerbarhet og robusthet i applikasjoner.
Hva vi lærte: Denne presentasjonen minner oss om at smidighet ikke bør gå på bekostning av en godt gjennomtenkt arkitektur. Fremtiden ligger sannsynligvis i en balanse mellom disse to tilnærmingene.
Why you should use Quarkus for your next project.
Av Sebastian Daschner
Sebastian Daschner fremhevet Quarkus, et moderne Java-rammeverk som er designet for å levere rask ytelse og integrasjon med Kubernetes. Han viste hvordan Quarkus er optimalisert for skybaserte arkitekturer og kan forbedre produktiviteten til utviklere.
Hovedpunkter.
- Rask utvikling: Daschner la vekt på hvor rask utviklingssyklusen med Quarkus kan være, spesielt takket være dens interaktive "dev mode".
- Kubernetes-støtte: Quarkus er designet for å implementeres effektivt i Kubernetes-miljøer, noe som forenkler håndteringen av containere.
- Økt produktivitet: Rammeverket forenkler mange aspekter av Java-utvikling samtidig som det leverer høy ytelse.
Hva vi lærte: For team som ønsker å optimalisere utviklingen av skybaserte applikasjoner, tilbyr Quarkus en fristende løsning takket være sin ytelse og kompatibilitet med Kubernetes.
Passwordless BankID with Passkeys and WebAuthn.
Av Tarald Riise
Tarald Riise presenterte hvordan BankID implementerte en passordfri autentiseringsløsning med Passkeys og WebAuthn. Dette systemet tilbyr rask, sikker og phishing-resistent autentisering ved hjelp av FIDO2-nøkler, uten behov for å lagre biometriske data.
Hovedpunkter.
- Forbedret sikkerhet: Bruken av FIDO2-nøkler gir en phishing-resistent autentisering.
- Enkel implementasjon: En direkte integrasjon med nettlesere og maskinvare uten behov for å håndtere biometriske data.
- Bedre brukeropplevelse: Rask og enkel autentisering for sluttbrukerne.
Hva vi lærte: Denne presentasjonen viser hvordan en moderne passordfri løsning kan forbedre både sikkerheten og brukeropplevelsen for kritiske tjenester som BankID.
10 år resultater fra med forskning på smidige team.
Av Jan Henrik Gundelsby og Nils Brede Moe
Denne presentasjonen delte resultatene av 10 års forskning på suksessfulle, autonome smidige team. Foredragsholderne diskuterte felles kjennetegn for velfungerende smidige team og beste praksis for å bygge slike team.
Hovedpunkter.
- Teamstørrelse: Diskusjon om den ideelle størrelsen på smidige team og deres sammensetning.
- Smidige praksiser: Utforskning av praksiser som fremmer suksess, som bruken av OKR (Objectives and Key Results).
- Bruk av generativ AI: Hvordan smidige team utnytter kunstig intelligens for å forbedre sitt arbeid.
Hva vi lærte: Denne sesjonen ga et helhetlig bilde av nøkkelfaktorene som gjør smidige team vellykkede på lang sikt, med fokus på samarbeid, optimal størrelse og innovasjon.
Java 23 – Better language, better APIs, better runtime.
Av Nicolai Parlog
Nicolai Parlog presenterte nyhetene i Java 22 og 23, inkludert mange forbedringer av språket, API-er og den virtuelle maskinen (JVM). Han dekket viktige funksjoner som ubenavnte mønstre, strengmaler og API-et for klassefiler.
Hovedpunkter.
- Språkforbedringer: Introduksjon av nye funksjoner som ubenavnte mønstre og strengmaler.
- API for fremmedminne og funksjoner: En viktig forbedring for minnehåndtering i Java-applikasjoner.
- Ytelsesforbedringer: Diskusjon om JVM-forbedringer som øker ytelsen til Java-programmer.
Hva vi lærte: Java fortsetter å utvikle seg raskt med funksjoner som gjør utviklingen mer effektiv, samtidig som ytelsen til applikasjoner optimaliseres. Denne presentasjonen fremhevet innovasjonene i de nyeste versjonene av Java.
Apache Pulsar: Finally an alternative to Kafka?
av Julien Jakubowski
Julien Jakubowski presenterte Apache Pulsar som et levedyktig alternativ til Kafka for håndtering av sanntids, hendelsesbaserte applikasjoner. Han forklarte hvordan Apache Pulsar skiller seg ut når det gjelder arkitektur og skalerbarhet.
Hovedpunkter.
- Skalerbarhet: Pulsar kan håndtere store mengder data og distribuere dem raskt mellom forskjellige noder.
- Varighet: Høy tilgjengelighet av meldinger med innebygd redundans, selv i forskjellige datasentre.
- Enkel integrasjon: Pulsar tillater sømløs integrasjon med eksisterende applikasjonsporteføljer, og dekker samme bruksområder som RabbitMQ og Kafka.
Hva vi lærte: Apache Pulsar representerer et kraftig alternativ til Kafka, med mer fleksibilitet og kapasitet for distribuert behandling uten ekstra kompleksitet for utviklere.
Are virtual threads going to make reactive programming irrelevant?
Av José Poumard
José Poumard utforsket om virtuelle tråder introdusert i Java 21 kan gjøre den reaktive programmeringsmodellen overflødig. Virtuelle tråder lover å forenkle applikasjonsarkitekturen samtidig som de tilbyr lignende ytelse som den reaktive stilen.
Hovedpunkter.
- Enkelheten med virtuelle tråder: Virtuelle tråder gjør det mulig å implementere tradisjonelle arkitekturer på en enklere måte, samtidig som de beholder høy ytelse.
- Concurrent Structured API: Introduksjon av en ny API som gjør asynkron programmering mer tilgjengelig.
- Scoped Values: Diskusjon om Scoped Values, et alternativ til tråd-lokale variabler.
Hva vi lærte: Virtuelle tråder introduserer en mer intuitiv måte å programmere samtidige applikasjoner på uten kompleksiteten til reaktiv programmering, samtidig som de gir utmerket skalerbarhet.
Debugging with IntelliJ IDEA.
Av Anton Arhipov
Anton Arhipov viste hvordan IntelliJ IDEA’s debugger kan brukes til mye mer enn bare å finne og fikse feil. Han demonstrerte flere nyttige funksjoner som kan gjøre utviklingsprosessen mer produktiv, inkludert avanserte verktøy for feilsøking av Java-applikasjoner.
Hovedpunkter.
- Lambda breakpoint : Evnen til å sette breakpoints direkte i lambda-uttrykk.
- Stream chain tracing : Muligheten til å spore kjeder av stream-operasjoner for å identifisere hvor feil oppstår.
- Evaluere og logge : Å evaluere uttrykk direkte i koden og logge resultatene uten å stoppe utførelsen av programmet.
Hva vi lærte : Denne presentasjonen fremhevet hvordan bruk av debuggingsfunksjonene i IntelliJ IDEA kan øke produktiviteten ved å tilby mer detaljerte verktøy for å analysere komplekse feilsituasjoner.
Building server-side web applications with htmx and Spring.
Av Thomas Schühly
Thomas Schühly presenterte hvordan man kan bygge interaktive, server-side web-applikasjoner ved hjelp av htmx og Spring, uten å bruke JavaScript. Han viste hvordan htmx muliggjør en enklere tilnærming til å lage dynamiske brukergrensesnitt direkte fra serveren.
Hovedpunkter.
- Server-side rendering med htmx : Htmx lar utviklere bygge dynamiske web-applikasjoner uten å være avhengige av et frontend JavaScript-rammeverk.
- Gjenbrukbare komponenter : Gjenbruk av komponenter kjent fra backend-utvikling for å lage en full-stack applikasjon.
- Forenklet utvikling : Ved å bruke Spring som backend og htmx for frontend, blir utviklingen av interaktive applikasjoner enklere og raskere.
Hva vi lærte : Schühly demonstrerte en praktisk tilnærming for utviklere som ønsker å lage interaktive applikasjoner uten å gå gjennom kompleksiteten til moderne JavaScript-rammeverk, noe som forenkler utviklingen betydelig.
To build a cathedral, the user needs brick laying tools.
Av Christin Gorman
Christin Gorman reflekterte over hvordan vi i programvareutvikling kan bli overveldet av å forsøke å forstå brukernes sammensatte behov. Hun argumenterte for at i stedet for å bygge "katedraler", bør vi fokusere på å levere enkle verktøy som brukerne kan bruke for å nå sine mål.
Hovedpunkter.
- Mål-orientert utvikling : I stedet for å prøve å lage komplekse løsninger som dekker alle behov, bør utviklere fokusere på å bygge små, fleksible verktøy.
- Verktøyene selv bør være enkle : Programvaren bør bestå av små, enkle verktøy som kan kombineres for å nå et større mål.
- Fleksibilitet og skalerbarhet : Å bygge verktøy som er for spesifikke for én oppgave kan gjøre dem stive og vanskelige å tilpasse til andre formål.
Hva vi lærte : Gormans presentasjon var en påminnelse om viktigheten av å holde programvareutvikling enkel og fleksibel, slik at den kan tilpasses brukernes skiftende behov uten å bli for kompleks eller uhåndterlig.
Relatert innhold