Podcast: alles over JHipster

podcast

Eonics gebruikt JHipster voor de uitvoering van al haar projecten. In deze aflevering vertelt CTO Jan Peter Jansen meer over het hoe en waarom van dit framework. Hij gaat niet alleen in op de werking van het framework maar bespreekt ook de voordelen en de valkuilen van het gebruik. Beluister de podcast op Spotify, bekijk hem op YouTube, of lees het onderstaande artikel.

Jan Peter vertelt ons eerst wat JHipster nou eigenlijk precies is. ‘Het is een framework dat je kunt gebruiken om op een hele makkelijke manier de basisstructuur van je code neer te zetten. Je doet dit door de modellen, die je wilt gebruiken in je project, via een command line interface of een grafische interface in elkaar te klikken. Op deze manier krijg je 80% van je boilerplate code cadeau. Dit betekent dat je veel saaie standaard code binnen je project niet meer zelf hoeft te schrijven.’

Bij Eonics combineren we JHipster meestal met Springboot en Angular. Jan Peter: ‘In dit geval maakt JHipster de repositories, de entity classes, de services, de API’s, de business logica classes, hij genereert een beheer interface voor je, er is user beheer, authenticatie en ga zo maar door. Dus alle basisdingen die je in een applicatie nodig hebt, kun je in JHipster in een paar minuten opzetten. Dit is dus het saaie werk dat bij ieder project nodig is, en wat ik als developer liever niet zelf doe. Ik richt me graag op de interessante business logica.’

Tijdens het bouwen van je applicatie kun je met JHipster altijd weer attributen toevoegen of zaken aanpassen. Jan Peter: ‘Normaal gebruik je bijvoorbeeld Liquibase om je database te updaten. Met JHipster kun je altijd aangeven dat je entiteit verandert, bijvoorbeeld een attribuut toevoegen, en vervolgens kun je in JHipster automatisch de benodigde wijzigingen laten genereren.”

Juiste aanpak

Code generatie is onder developers een gevoelig onderwerp. Volgens Jan Peter is het dan ook belangrijk dat je ervoor zorgt dat iedereen binnen het team begrijpt hoe je deze tooling moet gebruiken. ‘Je moet het niet zien als een basisapplicatie waar je dan vervolgens verder zelf mee aan de slag gaat. Gegenereerde code moet je namelijk nooit wijzigen omdat je handmatige wijzigingen niet opnieuw automatisch kunt genereren. Zie het in plaats daarvan als een applicatie met twee lagen: een gegenereerde library laag waar niemand aankomt, en je eigen laag daarbovenop die gebruik maakt van de gegenereerde library. Op deze manier kun je customs code en gegenereerde code effectief combineren en vele malen sneller ontwikkelen. Het is dus echt een werkwijze waar je met het hele team voor moet kiezen. Iedere developer moet begrijpen wat de regels zijn en hoe je ermee moet werken.’

Bij Eonics zijn de meeste projecten in Java en Angular, maar JHipster schrijft niet een bepaalde stack voor. Jan Peter: ‘Je kunt in JHipster ook aangeven dat je bijvoorbeeld je frontend in React wilt schrijven. Het is zelfs mogelijk om bijvoorbeeld je code in PHP te laten genereren. Er is een marktplaats waar je allerlei templates en andere zaken naar je smaak kunt kiezen om ervoor te zorgen dat JHipster werkt met de talen en frameworks die jou het beste liggen. Ik heb zelf niet veel ervaring met deze alternatieven, maar weet wel dat ze beschikbaar zijn.”

Ook qua cloud integratie heeft JHipster alles in huis wat je nodig hebt. Jan Peter: ‘Standaard is er Docker integratie maar ook hier zijn er allerlei opties mogelijk. Zo kun je, mocht je dat willen, bijvoorbeeld direct naar Heroku deployen.”

Aan de slag

Voor wie zelf met JHipster werken wil, heeft Jan Peter nog wel wat tips: ‘Ga er mee aan de slag en kijk naar de code die wordt gegenereerd. Speel ermee en kijk hoe je met deze code zou moeten integreren en of je snapt hoe het in elkaar steekt. Voor Spring genereert het bijvoorbeeld redelijk standaard code die je gewend bent: de 3 lagen structuur en alles wat erbij komt kijken. Maar elke developer en elk project is anders, dus ga ermee spelen en kijk of je kunt zien wat de mogelijke voordelen zijn maar ook waar de beperkingen en valkuilen zitten.’

Met alle ervaring die Jan Peter heeft, zijn dit de lessen die hij heeft geleerd: ‘Gebruik het niet in een bestaand project maar alleen als je het echt vanaf het begin kunt toepassen. Zorg dat iedereen mee is en goed begrijpt hoe ze met JHipster moeten werken, en dus ook wat ze er níet mee kunnen doen. Wat ik ook vaak doe in projecten is dat ik alleen de backend en de beheerinterface van JHipster gebruik. En dan bouw ik wel een eigen front-end die gebruik maakt van de API’s en het authenticatiemechanisme. Dit vind ik een mooie manier om met bestaande custom frontend toch te kunnen werken met JHipster. Realiseer je wel dat niet alles kan. Alle standaard dingen qua relaties kunnen wel, maar hele specifieke dingen worden mogelijk niet ondersteund en moet je dan zelf erbovenop bouwen. Als je project teveel van dit soort uitzonderingen kent, kan het zijn dat JHipster niet de juiste keuze is.’

Tot slot benoemt Jan Peter nog eenmaal de voordelen: ‘Uiteindelijk zijn de meeste applicaties toch een variant van een CRUD applicatie. Dergelijke applicaties kun je echt supersnel ontwikkelen met JHipster. Nog belangrijker is dat ik als developer niet meer alle saaie standaard code hoef te schrijven en me dus kan richten op het interessante deel van het werk. Een aanrader!”

Als je meer wilt leren over JHipster kun je het beste beginnen bij de officiele website. Deze heeft ook een uitstekende tutorial. Heb je een vraag over JHipster of heb je feedback? Laat hieronder dan een bericht achter en dan neemt Jan Peter zo snel mogelijk contact met je op.