Go is een door Google ontwikkelde programmeertaal gericht op expressiviteit, schaalbaarheid en productiviteit. Go bestaat zo’n 7 jaar, is volledig open source, snel, statisch getypeerd, ontworpen voor concurrency en voorzien van garbage-collection. Mede hierdoor neemt de adoptie van Go snel toe. Grote open source projecten en services zoals Docker, Prometheus and Kubernetes en Soundcloud zijn geschreven in Go en organisaties passen Go steeds vaker toe binnen hun eigen projecten. In dit artikel laten we je kennismaken met Go.
Read More »Java Magazine
Spark of Life
In het Java Magazine van april 2015 heeft Bas in een artikel toegelicht hoe Evolutionaire Algoritmen oplossingen kunnen vinden voor lastige problemen (zie www.nljug.org/databasejava/evolutionaire-algoritmen/). Met behulp van een implementatie in Java werd het Traveling Salesman Problem gebruikt om aan te tonen hoe effectief en efficiënt Evolutionaire Algoritmen zijn in het vinden van (sub)optimale routes voor dit ogenschijnlijk simpele probleem. Na het lezen van dit artikel dacht Niels (terecht): dit kan beter… met Spark!
Read More »Groovy testen met het Spock framework
In dit artikel maken we kennis met het Spock test framework. Na het bespreken van de core features van het framework, beschrijf ik de syntax en het data driven testen. Als laatste bespreek ik de configuratie om de testen goed te laten draaien in een Maven gebaseerde build configuratie. Dit is nodig om zaken, zoals code coverage en het uitvoeren van testen door middel van Maven goed te laten verlopen. Alle gebruikte code is beschikbaar in een github repository, zodat je hier meteen mee aan de slag kan.
Read More »REST-assured
Bij het realiseren van een microservices architectuur is één van de uitdagingen het doortesten van één of meerdere services. Zoals menig developer weleens ervaren heeft, is het opzetten van integratietesten niet triviaal. Dergelijke testen vergen vaak complexe mocking, veel setup en boilerplate code en dit gaat ten koste van executiesnelheid en gemak. Veel frameworks hebben in het verleden vereenvoudigingen geboden, maar nu is er REST-assured! In combinatie met WireMock wordt in dit artikel getoond dat het schrijven van integratietesten weer fun kan zijn!
Read More »Pipeline as code
Continuous Delivery pipelines met Jenkins 2 In de afgelopen 10 jaar heeft Jenkins zich ontpopt tot de standaard tool voor automatisering in software development. Dit jaar is de eerste grote Jenkins release sinds tijden uitgekomen: Jenkins 2.0. In dit artikel lees je wat er nieuw is. Op JavaOne vertelde Kohsuke Kawaguchi, de maker van Jenkins, dat er meer dan 120.000 …
Read More »Spring Cloud Stream
In Java Magazine 4 hebben we kennisgemaakt met Spring Cloud en hebben we kunnen lezen hoe je de verschillende componenten kunt inzetten om REST gebaseerde microservices te maken. In dit artikel maken we de stap naar Spring Cloud Stream. Spring Cloud Stream laat zich het beste omschrijven als een framework voor het creëren van message-driven microservices.
Read More »Pipeline as code
In de afgelopen 10 jaar heeft Jenkins zich ontpopt tot de standaard tool voor automatisering in software development. Dit jaar is de eerste grote Jenkins release sinds tijden uitgekomen: Jenkins 2.0. In dit artikel lees je wat er nieuw is.
Read More »Failsafe
Eén van de vier punten uit het Reactive Manifesto is dat software resilient moet zijn. Resilient betekent dat onze software adequaat omgaat met foutsituaties en responsive blijft. Een praktisch en veel voorkomend voorbeeld is een applicatie die gebruik maakt van externe services. In dit scenario is het denkbaar dat deze externe services niet meer beschikbaar zijn of onvoldoende presteren.Zonder maatregelen kan het heel lang duren alvorens dit probleem zichtbaar wordt. Deze traagheid kan er bijvoorbeeld toe leiden dat kostbare resources lange tijd worden gereserveerd, wat kan leiden tot starvation en performance degradatie van de hele applicatie. Niet voor niks stelt dus het Reactive Manifesto dat een applicatie resilient moet zijn. Failsafe (https://github.com/jhalterman/failsafe) is een kleine library die precies doet wat het moet doen; het toevoegen van resilience aan onze applicatie zonder veel poespas. Failsafe biedt opties voor het opnieuw proberen aan te roepen van een service die kan stoppen met werken. We kunnen ook een fallback gebruiken in het geval dat een service die we aanroepen niet meer beschikbaar is. De library biedt ook de mogelijkheid om een zogenaamde circuit breaker te gebruiken om aanroepen naar services te omzeilen. We kunnen Failsafe gebruiken met Java 6 of hoger. Maar in Java 8 kunnen we lambda’s gebruiken in de Failsafe API voor nette en goed leesbare code.
Read More »Advanced Akka
Wellicht heb je al eens wat over Akka gehoord of gelezen. Misschien zelfs in een van de voorgaande Java Magazine artikelen over Akka die je inmiddels ook op de NLJUG website terug kunt vinden (links staan onderaan). Deze artikelen lieten al goed zien wat er mogelijk is met Akka, maar in dit artikel behandel ik nog een aantal andere interessante features.
Read More »Van het bestuur nr. 6 – 2016
Een update vanuit het NLJUG bestuur.
Read More »
NLJUG – Nederlandse Java User Group NLJUG – de Nederlandse Java User Group – is opgericht in 2003. De NLJUG verenigt software ontwikkelaars, architecten, ICT managers, studenten, new media developers en haar businesspartners met algemene interesse in alle aspecten van Java Technology.