Après 1 mois de JHIPSTER

Dans un lointain article, j’ai commencé à bidouiller avec JHIPSTER. Pour répondre à un besoin professionnel « one shot », j’ai décidé d’ utiliser ce framework car je n’avais pas pas beaucoup de temps à m’y consacrer.
Voici un rapide retour d’expérience d’un mois ( en pointillé ) d’utilisation.

Cas d’utilisation

Le cas d’utilisation se prêtait bien à JHIPSTER:

  • CRUD
  • Authentification via les réseaux sociaux
  • Application responsive permettant d’être manipulée via pc, tablette ou téléphone
  • Interface d’administration

Ce que JHIPSTER m’a permit de réaliser très simplement

  • L’interface d’administration était déjà prête pour moi. Je n’ai eu qu’à customiser certains comportements .
  • La création du front et back pour mes entités . Ici JHIPSTER est très fort. Ca fonctionne très bien. A tel point que pour une modification, j’en suis venu à supprimer et refaire ma configuration.
  • La sécurité : tout est mis en place ( JWT, Authentification via réseaux sociaux). Des directives ANGULAR sont également disponibles pour gérer les habilitations sur certaines parties de l’interface graphique (ex. has-authority).
  • L’intégration de docker. Tout est déjà crée pour vous 🙂
  • La mécanique JAVASCRIPT. Ce n’est pas ce que je préfère. JHIPSTER m’ a permis d’avoir un cadre de développement qui corresponde à mes besoins.
  • La création des pipelines JENKINS ou GITLAB

La ou j’ai galéré

Comme j’indiquai dans mon précédent post, dès qu’on sort du cadre, on galère un peu… Je n’ai pas échappé à la règle.

AngularJS vs html5

Bien que cela soit documenté. J’ai un peu galéré à activer le mode html5. J’ai eu quelques effets de bord sur les liens.

Permalien

Pour ce point, je pense que le soucis est plus dû à mon inexpérience de développeur WEB ( je suis plus back que front …).J’ai du implémenter une URL accessible directement sans passer par la page d’accueil (accès). J’ai opté pour une URL publique. La ça a été le début des problèmes. La CSS ne se charge pas tout le temps.
Bon pour ce cas d’utilisation, je ne me suis pas trop pris la tête. Je pense qu’une solution plus viable serait déjà de passer par Angular2/4 et de mettre des redirections dans le frontal NGINX

En conclusion

Le retour est positif. Pour une application « one-shot » c’est parfait. Je pense que pour une prochaine application je partirai sur du Angular et non du AngularJS. Pour une application métier plus poussée, je partirai sur un seed maison pour maitriser et avoir la main sur l’évolution de toutes les couches. Une autre chose qui m’a un peu étonné était le ratio entre développement BACK et FRONT. J’ai passé près de 70% dans le développement ANGULARJS. Spring et la génération JHIPSTER embarque déjà pas mal de fonctionnalités.

Quoi de neuf du coté du front-end

Depuis le début de l’année je suis en train de faire une spécialisation Coursera : Full Stack Developer.

Pourquoi me direz-vous ? Tout d’abord, j’ai principalement travaillé sur du back-office ou de l’outillage. Ça m’a servi de rattrapage sur ces technologies :

  • HTML/CSS ( ne rigolez pas j’ai appris des choses…)
  • Bootstrap
  • Angular
  • Applications mobiles hybrides
  • NodeJS

Sachant que j’ai principalement travaillé sur JAVA, ça m’a fait un peu bizarre

Qu’est-ce que j’en ai retenu:

Javascript et les langages interprétés, ce n’est pas fait pour moi. Un compilateur c’est quand même bien pour découvrir des erreurs de syntaxes (je suis trop vieux pour ces co%%%£$$) …. Les puristes du javascript me diront qu’il y a les tests unitaires. Pour moi ça ne remplace pas un compilateur. Pas étonnant que des initiatives comme typescript ou babeljs arrivent massivement sur le marché.

Je comprends pourquoi AngularJS a inondé le marché ces dernières années. C’est assez bien foutu.

Le combo NodeJS/express/mongoose permet de réaliser des APIS et des requêtes facilement .

Un exemple de route pour une requête GET

Un exemple de requête qui m’a bluffé

Pour conclure, je ne  pense pas que je ferai des sites web de sitôt, mais ça m’a donné une bonne vision d’ensemble des technologies.

Intégrer dans docker une application ANGULAR

dockerangularjs

Dans le cadre d’un POC j’ai eu à « dockeriser » une application ANGULARJS. Cette dernière utilise les briques logicielles suivantes :

J’ai donc utilisé docker-compose pour orchestrer le tout. Voici la configuration

Définition du front

Dans le répertoire front, j’ai ajouté les sources (JAVASCRIPT, HTML, CSS,…). Ca donne

Définition du back

Pour le back, vu que c’est du mock, je ne me suis pas trop embêté. J’ai donc utilisé json-server et ajouté dans le répertoire config le fichier json correspondant aux bouchons.

Exécution

Construction du projet

A la racine

Exécution

Conclusion

Et voila vous avez un site basé sur angular avec utilisation d’une API REST utilisable . Il manque encore certaines briques indispensables telles que ha_proxy par ex, mais ça me suffit pour une démo.