J-Fall 2017: some highlights

J-Fall 2017

Het is weer november, tijd dus voor de jaarlijkse conferentie van NLJUG. J-Fall 2017 werd net als voorgaande jaren bij Cinemec in Ede gehouden. De dag was goed gevuld met een Early bird sessie, key notes, parallel sessies en hands-on labs.

De hoofdpunten van de dag waren de Java 9 release en Blockchain. Daarbij zijn, net als voorgaande jaren, Microservices nog steeds een hot item.

Blockchain

Mijn eerste sessie was “WHAT CAN BE DONE WITH BLOCKCHAIN AND SMART CONTRACTS?”. In deze sessie werd de basis van blockchains uitgelegd. Welke verschillende soorten Blockchains er zijn en welke bedrijven deze aanbieden. Er werd ook nog een korte demo gegeven waar een mini Blockchain werd getoond op twee machines. Blockchain is nog vrij nieuw, maar het is zeker een technologie die het kan gaan redden op de langere termijn.

Compilation & Garbage collection

Om Java programma’s beter te laten performen zijn er een aantal mogelijkheden. Deze mogelijkheden werden in de sessie “NEW JAVA PERFORMANCE DEVELOPMENTS: COMPILATION AND GARBAGE COLLECTION” behandeld.Garbage Collection Door een slim gebruik van JIT- en/of AOT-compilatie is de opstart tijd van een applicatie behoorlijk te verkorten. De AOT-compilatie (Ahead of time) is nieuw in Java 9. Naast de compilatie is er ook at runtime flink wat tijd te besparen door het kiezen van de juiste garbage collector. Met Shenandoah GC kun je de stop-the-world pauzetijd in veel gevallen verkorten. De snelste manier is de Epsilon GC. Deze garbage collector ruimt helemaal niets op, wat handig kan zijn voor programma’s die weinig tot geen “garbage” maken. Houd er bij Epsilon GC wel rekening mee dat je applicatie vast kan lopen als het geheugen op is.

Monoliet vs Microservices vs Modules

In de sessie “DESIGNING FOR MODULARITY WITH JAVA 9” werd uitleg gegeven over het verschil tussen Monoliet, Microservices en Modules. De spreker had een boek over Modules in Java 9 geschreven en lichte enkele topics uit het boek op om aan te geven wat het verschil is tussen monoliet, modules en Microservices. Het grote verschil is de opstarttijd en de uitbreidbaarheid van een softwareproject. Een monoliet softwareproject kun je het snelst opstarten, maar de doorontwikkelsnelheid zakt op een gegeven moment in. Met modules ben je in het begin tijd kwijt om het op te zetten, maar dat is veel korter als met Microservices. Op de langere termijn zijn Microservices iets sneller door te ontwikkelen als modules. Het grote voordeel van modules is dat ze minder log kunnen zijn als Microservices.

Naming things

Een van de moeilijke dingen voor een softwareontwikkelaar is het vinden van een goede naam voor een class, variabele of methode. In de sessie “HOW TO NAME THINGS: THE HARDEST PROBLEM IN PROGRAMMING” werd daar op ingegaan.Whats in a name Aan de hand van een aantal voorbeelden werd ingegaan op wat je vooral niet moet doen. Zo had de spreker gekeken in GitHub hoe vaak hij de methode “foo” tegen kwam en dat bleek verbazingwekkend vaak te zijn samen met “data” en “data2”. Het beste is om namen volledig uit te schrijven, want betekend “char” nu, character of charateristic? Een aantal tips waren een open deur, maar wij als ontwikkelaars vergeten ze nog wel eens als we passioneel aan het ontwikkelen zijn.

Prijzenslag

Als laatste sessie van de dag heb ik de sessie Prijzenslag van de belastingdienst gevolgd. Zoals de naam al doet vermoeden waren er prijzen te winnen. Je kon inloggen op een site of een app installeren om mee te doen aan de Prijzenslag. Tijdens de sessie werd diverse Java/Agile vragen gesteld met daarbij 4 mogelijke antwoorden. Na iedere vraag werd het antwoord toegelicht. Er was een overall top 3 en diverse prijsvragen. Het was een leuke en verfrissende sessie.

Dit was mijn derde bezoek aan J-Fall en ik zie al weer uit naar de volgende editie. Een leerzame maar zeker ook leuke dag!