Pourquoi pas ? Découvrez Vert.x

Je sais bien que ce blog est plutôt axé découverte du code pour les plus jeunes.

Mais où situer la frontière de ce qui peut vous intéresser ? Pourquoi limiter la complexité de ce que j'aborde ici ?

En deux mots : Pourquoi pas ?

Ce sera le nom de cette nouvelle série d'articles où je vous partagerai ce que je découvre moi même. Je pense que ça vous permettra de voir qu'on est toujours en train d'apprendre, quelque soit son âge et son niveau.

tâcherai de structurer mon avancée, mais je tiens tout de même à présenter mes hésitations et mes choix. Vous saurez tout ! :)

Vert.x

On va tâcher d'aller à l'essentiel, le site de Vert.x le dit très bien : il s'agit d'un toolkit pour construire des applications réactives dans l'univers de la JVM.

Une application est dite réactive si elle suit les principes énoncés dans The Reactive Manifesto.

La version française peut vous aider à comprendre, mais au mix de langues, le monde informatique est souvent en anglais.

Mon résumé très personnel est qu'une application réactive cherche à rester disponible en absorbant la charge en allouant les ressources nécessaires, en survivant aux erreurs au mieux, le tout en fonctionnement sur la base d'un système de messages asynchrones.

Vert.x cherche à répondre à ses problématiques en restant léger et simple. En tout cas, c'est leur objectif annoncé, nous verrons si c'est assez simple pour moi ;)

Comment démarrer

Après quelques recherches, je me dit que Vert.x ne s'aborde pas vraiment comme d'autres outils. Il n'y a pas des montagnes de tutoriels, les articles publiés abordent rapidement des fonctionnalités complexes.

Mais il me semble que c'est dû à la simplicité de cette jolie boîte à outils. Le site officiel a une documentation très bien faite.

Pour compléter, j'ai acheté un livre qui propose de présenter puis approfondir les différents concepts de la programmation asynchrone et réactive, le tout s'appuyant sur des exemples nombreux et basés sur vert.x. N'hésitez pas, Vert.x In Action est parfait pour se lancer dans le domaine, le Dr Julien Ponge sait manifestement de quoi il parle et sait l'expliquer ;)

Le projet

Parce que c'est toujours plus facile d'avoir en tête un objectif, je me suis dit qu'il était temps de mixer mes domaines d'intérêt.
Le projet au long terme sera d'avoir une simulation d'une sorte d'usine, avec des ateliers, des postes de travail.
La base sera une application web qui représentera ça, accompagné de clients représentant les différents postes, client web pour commencer, clients IoT ensuite.

Cela devrait me permettre de faire un backend vert.x, pour un site web, de concevoir une API, des clients web et des client IoT.
Par la suite, je me pencherai aussi sur l'aspect déploiement, on verra quand on en sera là.
Pousser mes connaissances Docker pour appréhender Kubernetes, continuer mon apprentissage de l'univers de la CI/CD et ainsi de suite...

Je sais, on est loin de mes articles sur l'initiation à python. Considérez que ce sera une série au long cours, ce projet servant de prétexte à l'exploration de bien des technos.

Quel point de départ ?

Après avoir tourné autour de plusieurs axes à choisir, je fais les choix suivant :

  • Vert.x évidemment
  • build avec Gradle en utilisant le DSL Kotlin
  • code en Kotlin
  • source sur Gitlab, je dois ça à mon troll favori ;)

Je complèterai ces choix au fur et à mesure qu'il faudra en prendre d'autres.

Les différents articles que j'ai lu n'utilisant pas tous ces choix à la fois, il va falloir faire une synthèse et adapter.
Mais avant tout, il faut une coquille pour commencer.
Il y a alors 2 possibilités.

Tout d'abord, le site https://start.vertx.io/
Une simple page permet de choisir les différents paramètres tel que le language, l'outil de build, les dépendances...
Pas de bol, il manque pour le moment la possibilité de générer le script gradle avec le DSL Kotlin. Une issue est en cours de résolution.
Ca reste un point de départ intéressant.

L'autre possibilité, c'est de partir d'un starter trouvé sur github.
Un simple clone du projet voir la récupération de l'archive et c'est fonctionnel.
Cette fois ci, gradle avec Kotlin DSL mais le bout de code de base est en Java.

J'ai fait le choix de partir du start.vertx.io, qui me semblait plus récent et officiel. La conversion du fichier gradle en Kotlin DSL n'a pas posé trop de souci avec l'aide de celui du projet Github.

Pour que nous soyons tous sur la même base de départ, vous trouverez l'état du projet dans le repository Gitlab que je vais utiliser tout au long de ces articles.

Vous voilà équipé d'un point de départ.
Il ne me reste plus qu'à synthétiser mes essais pour l'étape suivante et les premiers pas de l'application elle même.

Pour toute question, pour toute remarque, pour toute critique, vous pouvez me joindre par email ou sur Twitter.