Alors, je vous ai présenté à peut près toute la stack technique, mais je n’ai pas expliqué le pourquoi.

Je vais essayer de le faire tout en restant le plus concis possible.

Concernant l’IDE, je pense que le post précédent donnait assez d’explications.

La base de données

Pour une architecture aussi simple et fortement relationnelle, un SGBDR me semblait tout indiqué. Donc, une technologie SQL.

Pour une petite application, il ne restait donc plus que MariaDB et PostgreSQL.

Et pour le coup, mon choix a été purement affectif.

En effet, j’ai beaucoup plus l’habitude de travailler avec PostgreSQL et je me sens donc plus à l’aise avec cet environnement.

Comme indiqué précédemment, j’ai choisi de faire tourner la base de données dans un container Docker. Et c’est un peu par paresse.

Comme je développe et teste de nombreuses choses, au lieu de toutes les installer directement sur ma machine, je les fais tourner dans des container Docker seulement quand j’en ai besoin.

IntelliJ incorpore même un module dédié qui me permet de démarrer ou d’arrêter les containers dont j’ai besoin directement depuis mon IDE. Et c’est plutôt pratique !

Et au passage, c’est une bonne occasion pour commencer à utiliser cette technologie.

MariaDB et PostgreSQL sont tous les deux utilisables de cette manière, chacun proposant des images officielles.

Le Front

La solution retenue pour le Front est moins conventionnelle : Vaadin.

Mais comme je ne suis pas (encore) super à l’aise avec les trucs à la mode en ce moment (Angular, Vue.js ou autre), j’ai choisi un environnement simple et qui présentait un avantage non négligeable : Il suffit d’ajouter quelques dépendances au projet Spring et hop !

Toutes les IHM sont codées via des classes Java.

Par exemple, pour ajouter un bouton sur l’écran, ça peut ressembler à ça :

Button save = new Button(getMessage("button.save"));
save.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
save.addClickShortcut(Key.ENTER);
save.addClickListener(e -> saveUser(userBinder));
add(save);

En 4 lignes, on définit le bouton, son label, son apparence, le raccourci clavier associé et l’action à réaliser lors du clic.

Et perso, pour ce que j’ai à faire, ça me suffit amplement.

De plus, Vaadin intègre nativement des composants de sécurité et une intégration très poussée avec Spring.

Le Back

Pour le Back, encore une fois, l’habitude a parlé.

Spring est une référence en la matière et je l’utilise depuis de nombreuses années.

On peut y trouver de nombreux composants comme l’accès aux données, la sécurité, des tâches planifiées, l’envoi de mails ou bien d’autres choses. Toute la liste est disponible ici.

Parmis ces projets, on trouve Spring Boot.

Il s’agit d’un framework basé sur l’API Servlet et qui permet de simplifier le développement des applications web en s’appuyant sur le pattern MVC 2.

C’est un framework léger et qui embarque tout ce qui est nécessaire pour faire fonctionner une application.

Hébergement des sources

Dans tous les projets, il y faut utiliser un gestionnaire de version de sources.

La référence absolue du moment est Git.

On trouve essentiellement deux acteurs pour les particuliers : Github et Gitlab.

Etant un mec plutôt sentimental et une de mes principales inspirations dans ce métier travaillant chez eux, je me suis dit que j’allais donner sa chance au produit.

Et je me suis rendu compte qu’ils proposaient des choses vraiment intéressantes comme l’intégration et le déploiement continus, simplement en ajoutant un fichier de paramétrage à la racine du projet concerné.

Et enfin, pourquoi ce look sur le site ?

Allez, faites un petit effort…

Logo Spring