JHipster est le plus connu et le plus utilisé des générateurs d’applications dans le monde Java, avec plus de 150 entreprises officiellement utilisatrices et près de 500,000 installations.
Cette soirée est l’occasion d’avoir une introduction au projet, par 4 de ses principaux contributeurs (dont le créateur du projet), qui interviendront chacun sur une partie qu’ils ont eux-mêmes développé.
Par Julien DUBOIS (créateur de JHipster)
Présentation de JHipster 4 par Julien Dubois, avec le développement et le déploiement d’une application Spring Boot + Angular 2 en moins d’une heure.
Avec JHipster :
-
on fait du Front avec Angular
-
du Back avec Spring Boot
-
tout est 100% Open Source
-
500 000 downloads
-
325 contributeurs, et 18 développeurs dans la "core" team
-
plus de 5000 stars GitHub
JHipster est vraiment un projet full stack, allant du Front au Back, et traitant toute la partie DevOps.
-
plusieurs études annoncent 6 semaines de gain pour un démarrage de projet
-
hot-reload du back et du front (code Java, BDD, etc.)
-
code généré de qualité, et design modulaire
-
ready for production out-the-box
-
installation avec
yarn link generator-jhipster
-
lancement du générateur Yeoman (scaffholder tool sur lequel s’appuie JHipster)
-
existence de questions à tiroir (ex : propositions d’un cache de niveau 2 uniquement si choix d’Hibernate au préalable)
-
-
demo avec Angular 4 (encore en Beta du fait de quelques bugs, mais plusieurs projets sont déjà en PROD avec cette version)
-
…
-
jhdocker
pour la génération d’une image docker de l’application
Pour rappel, utilisation de Spring Cloud pour le stockage de la configuration.
par Mathieu Abou Aichi
Générer visuellement son application avec le JHipster Domain Language.
Intérêts :
-
favoriser la collaboration
-
faciliter les modifications
-
avoir les entités dans un fichier
Voir l’excellente doc sur https://jhipster.github.io, ET l’excellent JDL-Studio permettant d’avoir un éditeur graphique pour vos entités :
Une fois les fichiers de définition des entités créés, la génération de ces dernières se fait en 1 ligne de commande.
Voir JHipster-ide pour l’intégration dans les IDE (Eclipse garanti, Visual Studio Code, IntelliJ).
par Pascal Grimaud
Devops facile avec Docker et JHipster.
-
DevBox (Vagrant) permettant de monter un environnement complet
En 2 lignes de commmandes, on crée l’image et on la monte. -
Existence d’une image Docker officielle (~500 Mo)
-
de nombreux scripts Docker-Compose disponibles pour chaque projet généré.
6 clouds supportés :
-
Heroku : déploiement en 1 ligne de commande
-
Rancher : très récent. Très utilisé dans le cadre de micro-services.
-
Kubernetes :
Dans le cadre de son projet Qualitoast, Pascal a utilisé Minikube pour lancer localement un cluster Kubernetes single-node.
par William Marques
Utilisation d’Angular 2 avec JHipster: risques, difficultés et bénéfices.
En fait, nous en sommes maintenant à Angular 4 (Google ayant changé le versionning il y a peu)
Comme maintenant déjà rappelé plusieurs fois, Angular (2+) est passé à Typescript.
Typescript s’appuie sur les dernières spécifications Javascript (ECMAScript, ES2015+)
-
Webpack pour packager l’application :
-
effectue du Tree shaking (n’est packagé que ce qui est nécessaire)
-
split le code en bundles
-
-
NPM pour la gestion des dépendances
TipPlus besoin de Bower Toute l’équipe JHipster utilise Yarn :
-
met en cache les packages
-
Lock toutes leq dépendances, y compris les transitives
-
s’utilise de façon transparente par rapport à NPM
-
-
Browersync a été mis en place pour disposer du live-reload sur le serveur de développement.
-
Tests unitaires lancés avec Karma + Jasmine sous PhantomJS.
-
Angular CLI pour disposer d’une ligne de commande.
Permet de générer divers composants via la ligne de commande.
-
Bénéfices :
-
typage
-
support d’ES2015+
-
un seul gestionnaire de dépendances
-
Tree shaking
-
lasy loading
-
-
Risques :
-
librairies tierces peu matures (ex : Bootstrap encore en alpha)
-
par Julien Dubois
Une architecture microservices "out of the box" avec JHipster.
-
Eureka ou Consul pour le service registry (serveur de discovery)
-
absent sur le schéma, mais intégré depuis, Zipkin permet le tracing de données temporelles permettant d’investiguer les problèmes de latence dans les architectures micro-services.