JHipster – Le générateur d’application moderne

Je suis développeur et je cherche toujours à être au courant des dernières nouveautés en terme de technologies ou d’architecture. Etant en train de refaire MovieLike entièrement, j’ai donc cherché quelle était la meilleure architecture pour mon besoin. Trois solutions pour moi. La première était de développer le site avec un nouveau framework PHP (Laravel, CakePhp), mais je commence à saturer un peu avec le PHP même si c’est le premier langage que j’ai vraiment utilisé. Deuxième option, apprendre Ruby et notamment RubyOnRails. Ce serait pour moi un nouveau challenge mais cela demandait beaucoup d’investissement pour une technologie peu utilisée.

J’ai donc choisi la troisième option : un serveur REST couplé à un site Javascript Single Page App. C’est très utilisé aujourd’hui, performant, malléable et dans la philosophie des micro services (lire le très bon post de Xebia). Et quoi de mieux pour développer mon serveur REST que Java, que j’utilise professionnellement et qui a prouvé sa valeur.

Et c’est donc après ce choix qu’intervient JHipster. JHipster (contraction de Java, langage cœur du serveur et Hipster pour le côté hype) est un générateur (à base de Yeoman) qui permet de créer rapidement une application complète. A tout de suite pour plus de détails.

jhipster

JHipster

Alors, que contient JHipster ? Je l’ai dit, le générateur est basé sur Yeoman. SpringBoot permet d’initialiser très rapidement la partie backend et Angular pour le front. Disons que ceci constitue le core. Même si cela suffirait amplement, Julien Dubois, créateur de JHipster a eu la bonne idée d’y ajouter :

  • côté Front :
    • HTML5/CSS3
    • Bootstrap et Sass pour le CSS
    • Angular Translate pour l’internationalisation
    • Bower pour la gestion de librairies
    • Karma/PhantomJS pour les tests
    • Grunt/Gulp pour gérer le build, l’optimisation et le reload automatique
  • côté Back :
    • Spring Security
    • Spring MVC REST et Jackson pour la partie REST/json
    • Spring Data
    • Maven/Gradle pour les dépendances et la compilation
    • MySQL/MongoDB/Cassandra au choix pour la base (et même d’autres)
    • LiquiBase pour la gestion de la structure de la base
    • ElasticSearch pour des recherches rapides
    • tout ce qui faut pour les tests, le cache, les logs

Et oui, beaucoup de choses. Ne vous inquiétez pas, tout n’est pas utilisé/utilisable dans la même application et la plupart des outils mis à disposition sont transparents.

Demo

Pour utiliser JHipster, il faut avoir installé le gestionnaire de paquets NPM et les dépendances requises (gulp, java, maven, git, yo, bower). Ensuite, saisissez la commande suivante pour installer l’outil :

npm install -g generator-jhipster

Puis pour créer votre application, placez vous dans un nouveau répertoire :

yo jhipster

JHipster vous posera plein de questions (le curieux) qui permettront de spécifier votre application et les outils utilisés. Rien de définitif mais mieux vaut tester plusieurs options avant de vous lancer dans le projet final.

jhipster

Une fois l’application générée, il ne vous reste plus qu’à lancer le serveur (tomcat) grâce à la commande mvn et admirer votre application. Il est maintenant temps de créer des entités :

yo jhipster:entity author

Quelques questions et votre entité se retrouve en base, gérée par le serveur, dans un service REST et avec des écrans de CRUD dans l’application !!!

jhipster_3

Conclusion

JHipster permet de générer très rapidement un socle de développement et des entités. Ensuite, c’est à vous d’enrichir votre application selon vos besoins. Attention, la génération est pensée pour être faite une fois, ce qui signifie que si vous réutilisez JHipster pour générer à nouveau votre application, vous perdrez toute modification.

Il faut donc comprendre que JHipster est plus un outil d’aide au développement (et surtout au lancement d’un projet), proposant une très bonne stack générique mais paramétrable pour coder proprement et rapidement. Dites-moi si je me trompe mais c’est la définition même d’un framework.

La version 3.0 qui devrait arriver prochainement est orientée micro services, apporte des optimisations (gulp, update des entities, …) et proposera les JSON Web Token pour l’authentification.

Vous pouvez retrouver toutes les informations sur le site officiel de JHipster, et le GitHub (oui, parce que c’est un projet Open Source). Si vous êtes développeur et que vous êtes intéressé par ces technologies, n’hésitez pas à faire un test avec JHipster une après-midi pluvieuse.

Je vous laisse une vidéo de démonstration par l’auteur lui-même :

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *