JHipster : Intéressant ou pas ?

En terme de Java il y a [jHipster][1] qui buzz c’est pas vraiment une techno c’est plus une sorte de stack Java (créée par Julien Dubois, oui le même du bouquin « Spring par la pratique »), avec tout ce qui est « hype » en ce moment Spring Boot Angular JS etc

Description du site :

« JHipster is a Yeoman generator, used to create a Spring Boot + AngularJS project. »

Presque 1400 stars sur Github.

[1]: https://jhipster.github.io/

voilà voilà

1 « J'aime »

J’ai pu assister à une présentation qu’il a fait lors d’un Human Talks. Voici la vidéo de sa conf http://humantalks.com/talks/494-jhipster-un-generateur-yeoman-pour-angularjs-et-sp. De mémoire il lui a manqué un petit peu de temps pour finir, mais l’idée principale est décrite :)

Moi j’ai participé a une présentation lors d’un JUG à Bordeaux. (y) :)

Je suis plutôt sceptique par rapport à JHipster.

Déjà, le choix du Framework Java (Spring) ne me parait pas vraiment idéal pour développer sur AngularJS.

Aussi, la quantité de code généré est impressionnante, et le projet embarque certaines dépendances dont on a pas forcément besoin (Hibernate/JPA). Pas toujours facile de s’y retrouver …

Enfin, il y a la création des entités. Qui peut vraiment croire qu’a une entité JPA corresponds une vue, un contrôleur et un service dans AngularJS ? C’est bien pour l’effet démo et dans un monde parfait, mais sérieusement tout ce qui est généré pour AngularJS risque de finir rapidement dans la corbeille.

En fait je ne vois pas trop l’intérêt d’avoir un seul générateur pour faire à la fois le Backend et le Frontend. Je préfère utiliser un générateur uniquement pour AngularJS (generator-gulp-angular), qui ne fait que ça mais le fait plutôt bien.

Et pour le backend, j’utilise souvent Dropwizard qui laisse le choix sur les technologies à intégrer. Il contient d’excellentes classes pour démarrer rapidement son projet. Je trouve bien plus facile de lire la doc de Dropwizard que d’essayer de comprendre le code généré avec JHipster. Et pourquoi pas Spark, qui profite pleinement de Java8 ?

1 « J'aime »

Je ne connais pas trop AngularJS, du coup en quoi Spring n’est pas vraiment idéal ?


Sinon je rejoins ton avis, je ne suis pas fan d’avoir un générateur full stack (back et front) mais c’est peut être que je ne suis pas un développeur fullstack (back-end pour mon cas).

Du coup comme tu le disais c’est bien pour faire une démo mais je ne l’utiliserai sûrement pas pour un vrai projet.

Spring est excellent pour faire du web “à l’ancienne”. Il a été conçu pour faire du MVC dans le serveur, générer des pages avec un moteur de template, gérer les sessions utilisateurs, et encore plein d’autres choses.

Avec AngularJS, si on en respecte la philosophie, la plupart de ces choses passent sous la responsabilité du navigateur (MVC, sessions, génération de pages …). Le Backend doit être réduit à un simple service REST, avec les avantages qu’on connait en terme de scalabilité et de performance serveur. (Si on continue à générer des pages côtés serveur, on ne fait pas vraiment du AngularJS …)

JHipster à le vent en poupe car de nombreux développeurs connaissent bien Spring via leur expérience du “monde d’avant AngularJS”. Spring était vraiment un bon choix il y a encore 3 ou 4 ans, mais avec AngularJS mieux vaut choisir un Backend plus léger et vraiment conçu pour faire du REST.

Mais surtout chacun doit trouver les outils qui lui correspondent, et une bonne expérience sur Spring est un excellent argument pour choisir JHipster !

1 « J'aime »

Je pense que ce n’est pas Spring en lui même mais le fait que c’est une framework historique et que les tutoriels que l’on peux trouver sur internet (voir même les développeurs eux même) n’ont pas évolués en même temps que le framework.

De toute il est tout à fait possible de faire du Spring avec une implementation (Jersey par exemple) de JAX-RS. (Et je parle même pas de Spring boot et Spring data rest qui encourage vivement à faire que des services RESTFul et légers aka microservice).

Je ne développerai pas plus car ce n’est pas le sujet mais on peut continuer la conversation en privée si tu le souhaites.

2 « J'aime »

Bonjour à tous,

Heureux de voir une discussion où l’on parle de mon bébé, JHipster :-)

Oui l’outil est aujourd’hui très largement utilisé, j’ai des retours de nombreux projets réussis, et nos statistiques (dont les 1400 étoiles Github dont tu parles) montrent bien cet intérêt.

Concernant l’utilisation de Spring, qui semble être la critique principale sur ce forum: je pense mieux connaître l’outil que la plupart des gens qui le critiquent, c’est pourquoi je me permets d’avoir une opinion différente et de dire que c’est un excellent framework REST, et qu’il nous permet d’avoir un back-end efficace, productif, et parfaitement adapté à AngularJS.

Nous avons aujourd’hui un outil reconnu pour sa productivité et sa qualité technique, avec de très nombreux contributeurs qui ont fait un travail remarquable d’intégration de diverses stack techniques qui n’étaient pas destinées à fonctionner ensemble à l’origine. Je vous garanti que ce travail n’est pas simple: il m’a pris plus d’un an, avec une aide extérieure considérable. Libre à vous de prendre ce travail à la légère!

Après, tout dépend de votre projet: nous visons les projets qui ont un time-to-market court, avec des équipes qui n’ont pas le temps (ni nécessairement les compétences!) pour intégrer toutes ces technologies.

4 « J'aime »

Je ne savais pas que c’était un projet à l’initiative d’un Francophone.

En tout cas bien que ca ne réponde pas à mes besoins, j’en avais décelé un fort potentiel. C’est pour cela que je l’avais conseillé à certains amis développeurs et même a des anonymes sur stackoverflow

Après pour Spring, dans mon cas tu preches un convaincus c’est pas la le problème :)

Tout ça pour dire félicitation et je ne pense que personne ici ne prend le travail de quiconque à la légère.


Petite question au passage, est-ce que (à travers AngularJS) vous supportez nativement HAL qui est de plus en plus poussé par Spring via Spring Hateoas et Spring Data Rest. Et si oui via un plugin AngularJS particulier ou homemade ?

1 « J'aime »

Bonjour @Julien_Dubois,

Tout d’abord, tu as raison sur le choix de Spring, je n’étais pas vraiment au courant du projet Spring Boot et les choses semblent avoir bien bougée depuis l’époque ou j’ai utilisé ce Framework. On dirait que Spring Boot reprends la philosophie de DropWizard, et dans ce cas je n’ai plus vraiment de critique à faire sur le choix du framework en lui même.

Ensuite, a aucun moment je n’ai critiqué le projet en lui même, ni sa qualité technique intrinsèque.

Je suis moi même utilisateur de yeoman, et un bon générateur peut clairement accélérer le démarrage d’un projet, je n’en doute pas. Là ou je suis plus septique, c’est sur l’intérêt d’avoir un unique générateur pour le backend et le frontend.

Est-ce que la génération des entités permet réellement de gagner plus de temps qu’avec deux générateurs différents ? A part pour réaliser une interface d’administration des entités, il y a t’il de vrais cas d’utilisation ou les éléments générés dans le frontend sont utiles ?

Le problème d’avoir un générateur unique, c’est qu’on ne peut pas choisir sa stack backend, et même si je ne doute plus de l’efficacité de Boot Spring, j’ai mes petites habitudes … Mais promis, quand j’aurai un peu de temps, je ferai un vrai essai avec JHipster, et je crois que ça va être un des prochain sujet au JUG Orléans alors j’y serai :)

Sinon mon avis personnel c’est que c’est un bon projet et je vais l’utiliser pour un des prochains projets.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s