02 - Les choix techniques
Pour démarrer ce projet, il a fallu commencer par choisir soigneusement les différents composants que je pensais utiliser.
J’ai essayé d’utiliser au maximum des composants libres et Open-Source ou alors présentant une alternative simple à mettre en oeuvre.
Il y a donc :
Le framework pour le Front End
Le choix de l’IDE
Travaillant depuis des années avec l’excellent IntelliJ IDEA édité par Jetbrains, c’est tout logiquement que j’ai décidé de l’utiliser.
Il y a quelques années, suite à une présentation faite au JUG de Lyon, j’ai eu droit à une licence Ultimate offerte.
Une fois expirée, j’ai souhaité la poursuivre pour pouvoir bénéficier des avantages qu’elle procure (intégration des outils de base de données, outillage liée à Spring, etc.).
Après, la version Community suffit amplement pour débuter gratuitement avec cet IDE.
Le choix de la base de données
Pour la base de données, mon choix s’est tourné vers PostgreSQL.
Un SGBD robuste mais pour autant simple à mettre en place.
Pour faciliter son installation et mettre ne pas avoir à l’installer de manière trop invasive sur mon poste, j’a opté pour un container Docker, mais on y reviendra.
Le framework pour le Front End
Pour le Front, le choix a été plus difficile à faire : On en trouve de partout, de tous les types.
Comme cette application devait être accessible depuis Internet (c’est idiot à dire, mais c’est le genre de détail qui vaut le coup d’être précisé : à qui s’adresse notre application et pour quel usage ?), il fallait donc un framework web.
Lors de la création d’un projet Spring, l’assistant IntelliJ propose plusieurs solutions pour le Front dont une qui a éveillé quelques souvenirs dans ma mémoire : Vaadin.
L’avantage de cette solution, c’est que le développement du Front se fait au même endroit que le Back : dans le code Java du projet.
Le framework pour le Back End
Enfin, pour le Back, j’ai décidé de partir avec un des frameworks les plus populaires du moment : Spring.
Et plus précisément, Spring Boot, pour la facilité de déploiement qui va avec.
Et bien entendu, les différentes briques qui composent Spring : la sécurité, l’accès aux données, les tests unitaires.
Hébergement des sources
Utilisateur de longue date de Gitlab, j’ai décidé de continuer à utiliser cette plate-forme, surtout pour sa solution d’intégration et de déploiement continus via des runners, complètement intégrée au projet.