Heb je Flux? Dit was de belangrijkste vraag (en het wi-fi wachtwoord!) die werd gesteld tijdens de Spring I/o '17 conferentie die plaatsvond in de prachtige stad Barcelona. Flux en Mono waren twee van de belangrijkste concepten die werden besproken tijdens sessies op de conferentie. Reactief programmeren en de ondersteuning daarvan door het hele ecosysteem van Spring Framework was het belangrijkste onderwerp, dat in bijna alle sessies aan bod kwam.
Het evenement zat vol interessante lezingen over Reactor 3, Spring Boot, Spring Cloud, Spring Cloud Stream, Angular 4, Kotlin, Microservices, Functioneel Programmeren en meer. Er waren ook enkele workshops, zodat je hands-on ervaring kon opdoen met deze functies en concepten. Naast presentaties over technologie waren er sessies over de toepassing ervan in verschillende onderwerpen, zoals Test Driven Development, hoe je progressieve webapps bouwt, hoe je het probleem oplost van een monolithisch domein in de frontend met behulp van Self Contained Systems of hoe je DeepLearning4J en Spring Boot gebruikt in de Machine Learning-context.
Hoewel er geen centrale opslagplaats is voor alle presentaties, deelden de meeste sprekers hun inhoud op Twitter onder de hashtag #springio17. Ik en mijn collega João Monteiro waren de twee dapperen die ons geweldige bedrijf Polarising vertegenwoordigden. Een van mijn favoriete lezingen was DDD Strategic Design with Spring Boot, waarin Michael Plöd de voordelen van Domain Driven design besprak en voorbeelden gaf van hoe je de domeinen in een applicatie kunt scheiden in Bounded Contexts, met behulp van wat ik een need-to-know basis noem om deze domeinen te definiëren, die draaien als afzonderlijke en onafhankelijke Spring Boot-applicaties. Deze lezing werd aangevuld met een workshop over het gebruik van domeingebeurtenissen in Spring Boot, waar geen live codering plaatsvond, maar Michael simpelweg een toepassing uitlegde en demonstreerde, wat een meer diepgaande benadering van dit onderwerp mogelijk maakte door de zorgen over het opzetten van het project en alles aan de praat te krijgen weg te nemen.
Er waren ook andere workshops waar ik erg van genoten heb, zoals die over Bootiful Development met Spring Boot en Angular, door Matt Raible. We gebruikten Spring Initializer om een eenvoudige applicatie te bouwen die een lijst met bieren toonde en een gif voor het bier ophaalde van https://giphy.com/. De laatste workshop was ook erg interessant en interactief, gericht op CQRS met Spring Cloud Stream, geleid door Jakub Pilimon, die altijd vragen stelde en input gaf om het publiek geïnteresseerd te houden. De presentatie volgde de problemen die Twitter tegenkwam in een publisher/subscriber scenario en implementeerde een oplossing, vergelijkbaar met degene die Twitter gebruikt, om die problemen op te lossen.
João heeft ook iets te zeggen over deze twee dagen en ik vind het niet meer dan eerlijk om deze post met hem, mijn partner in crime, te delen. Dus vanaf hier is het zijn toetsenbord.
Mijn belangrijkste doel was om in contact te komen met de nieuwste trends op het gebied van Spring-technologieën. Ik heb vooral de sessies bijgewoond waarin Reactive Programming en de ondersteuning daarvan in Spring 5 (Spring's volgende release wordt in de komende maanden verwacht) werden gepresenteerd. Mijn favoriete voordrachten waren de openingskeynote waarin werd gesteld dat de enige constante in de technologiesector verandering is, of met andere woorden, er zijn veel frameworks en geweldige producten, dus het softwareontwikkelingsproces draait allemaal om consistente keuzes. Spring helpt om je code op een agnostische manier aan die keuzes aan te passen.
Reactor3 was weer een geweldige sessie; de reactieve basis voor Java8 (en Spring5), of in mijn eigen woorden, streams leiden tot extreem (op een reactieve manier). De presentatie ging over hoe Spring mensen de reactieve concepten (flux en mono) in hun framework hebben geïntegreerd met behulp van Java8 via een open source project genaamd Reactor3. Wat dacht je van Testing for Unicorns? Nee, die bestaan niet:) Deze lezing ging over de voordelen van het gebruik van tools zoals AssertJ en Arquillian om betere unit- en integratietests te schrijven op een expressievere manier, met minder tijdrovende boilerplate code om de testinfrastructuur op te zetten.
Tot slot de beginnersgids voor Spring Cloud, dat hoewel het een inleidende sessie was met een eenvoudig overzicht van het Spring Cloud ecosysteem, Ryan Baxter veel hints gaf en pleitte voor het gemak van het bouwen van een min of meer microservice-gebaseerde applicatie met behulp van Flex en Mono. Hij liet zien hoe je tools als Eureka, Zipkin en Histrix kunt integreren en hoe je ze kunt gebruiken in dit soort toepassingen.
Reactive Spring was een mix van stand-up comedy en hardcore programmeren! Josh Long en Mark Heckler brachten een uur door met grappen maken en live coderen, en aan het eind was het gevoel: hoe hebben ze dat in godsnaam in zo weinig tijd kunnen bouwen! Ze laten het zo eenvoudig klinken om het reactieve paradigma te gebruiken! Er waren veel goede gesprekken op hetzelfde moment en ik wenste dat ik de gave van alomtegenwoordigheid had om alle sessies te kunnen bijwonen, het was een geweldig evenement, we komen terug!

VANDA RIBEIRO & JOÃO MONTEIRO
Polarising Adviseurs en liefhebbers van de lente
Lente(tijd) I/o @Barcelona '17
Profiel auteur

