Codekraker 4: Jeroen Steenbeeke

Codekraker 4: Jeroen Steenbeeke

'Met deze library omzeil je de NullPointer-Exception.'

Zet Java functioneel in door gebruik van library Vavr

Al jaren ontwikkelen we bij Topicus in Java, een object-georiënteerde taal. Functioneel georiënteerd programmeren is een techniek die langer bestaat, maar waar door veel IT’ers te weinig mee gedaan wordt. Sinds versie 8 heeft Java ondersteuning voor Lambda-expressies en method references en zijn er beginstappen gemaakt om concepten uit functioneel programmeren in Java te krijgen. Eindelijk, zou ik bijna zeggen. In mijn zoektocht naar mogelijkheden om deze concepten beter toe te passen kwam ik uit bij Vavr, dat hierin nog veel verder gaat. En nu wil ik niet meer zonder. Door de library Vavr te gebruiken, kun je nog beter functioneel programmeren met Java. Java en Vavr versterken elkaar. En dat maakt het werk alleen maar makkelijker. En efficiënter.


Het voordeel van Vavr? Dezelfde logica kunnen uitdrukken in minder code. Bijvoorbeeld: je hebt een lijst met adressen en je wil de bijpassende straatnamen hebben. Bij Vavr is dit één operatie (namelijk: map), in Java zijn het er drie (namelijk: stream, map en collect). Daarbij komen er ook geen ingewikkelde constructies meer kijken. Als gebruikers zich ergens voor aanmelden en dit mislukt, dan wil je weten waarom het fout gaat via een foutmelding. Bijvoorbeeld dat de opgegeven geboortedatum in de toekomst ligt. In Java is hier geen standaard manier voor, maar in Vavr heb je Try, Either en Validation. Vavr biedt ook een constructie voor het koppelen van een vervolgstap aan een resultaat. Daarnaast is de meest voorkomende fout bij projecten dat programmeurs ergens geen waarde aan toekennen; de NullPointerException. Die kun je compleet omzeilen door een Option uit Vavr te gebruiken. Kortom: minder stappen, dus minder kans op fouten.


Het vergt echt wel, zeker in het begin, wat extra inspanningen. Vavr kent een eigen vocabulaire die je moet leren kennen. Je moet dus tijd investeren om het te begrijpen. Maar geloof me, het is allemaal de moeite waard. De documentatie van Vavr is zo goed, dat de leercurve ook kleiner wordt. Waar ik voorheen video’s over functioneel programmeren niet begreep, kan ik ze nu goed volgen. Door Vavr te leren begrijp ik andere talen beter, waardoor ik meer kanten op kan in mijn werk. Start gewoon eens met het doorlezen en uitpluizen van de documentatie. Begin daarbij met lijsten en collecties, daarna pas het geavanceerdere spul. Je verspilt je tijd pas als je er níet aan begint!


Lees ook Codekraker 1: Frank Brinkkemper over het grootste voordeel van het automatiseren van je buildstraten, Codekraker 2: Dennis Spangenberg over het stroomlijnen van controles in het develop-proces of Codekraker 3: Ramon Ankersmit over IoT en Machine Learning.


De leukste, herkenbare en awkward tech en IT jokes op jouw tijdlijn? Volg dan TechGags op Instagram!

Meer weten?

Neem contact op met

Jeroen Steenbeeke