Posts

Comment utiliser des dev services dans SpringBoot, pratiquement comme Quarkus

Lorsque j’ai commencé un projet sur Quarkus, une des principales fonctionnalités du framework était pour moi les dev services. Lorsque vous ajoutez une dépendance (extension) comme une base de données à votre projet, elle vient avec un service qui va automatiquement gérer le démarrage ou l’arrêt d’un conteneur en même temps que votre application pendant le mode de développement. Vous avez également des paramètres pour le configurer selon ce que vous souhaitez, c’est vraiment cool !

Lire la suite →
Posts

Retours de confs 2023 : ADR et Copilot

Cette année j’ai eu l’occasion d’assister à 2 conférences : le Breizhcamp à Rennes et le DevFest Perros-Guirec. Parmi toutes les conférences intéressantes que j’ai vu, je voulais faire un retour sur une conf par évènement, celles qui m’ont le plus intéressé.

Breizhcamp - mise en place d’un ADR

Cela faisait quelque temps que j’avais lu des articles sur comment tracer les décisions d’architecture pour un logiciel. Le sujet m’intéressait fortement car j’y voyais un avantage majeur (ou complémentaire) par rapport aux specs techniques traditionnelles : cela permet de remettre du contexte dans les prises de décision.

Lire la suite →
Posts

Migrer depuis SpringBoot 1.5 vers SpringBoot 2.5 avec Openrewrite

Chez Slickteam, nous avons un vieux projet client qui fonctionne avec SpringBoot 1.5 qui est en production. Lorsque j’ai vérifié si nous avions des failles de sécurité avec la pile technique utilisée, j’ai constaté que la version de SprigBoot n’était plus maintenue depuis plusieurs années. Il y a plusieurs CVEs qui ne seront jamais corrigées. Ainsi j’ai planifié la migration de l’application vers SpringBoot 2.5, à jour avec tous les correctifs de sécurité.

Lire la suite →
Posts

Tests d'intégration avec MongoDB sur Gitlab-CI

Chez Slickteam notre plateforme CI-CD fonctionne avec Gitlab-CI, et plutôt bien ! Nous appréhendons de plus en plus les capacités de la CI projet après projet, et nous voulons le faire de la meilleure façon possible. Pour un des mes projets j’avais écrit des tests d’intégration avec la base de données, et je voulais qu’ils soient exécutés automatiquement dans notre pipeline de CI.

Pour pouvoir le faire, j’ai lu et testé pas mal de choses. Pour mon test j’ai besoin d’une base de données initialisée avec des collections vides, et un utilisateur avec les droits de lecture et écriture.

Lire la suite →
Posts

Gérer les tests et la couverture de code dans Gitlab-CI

Lorsque vous avez une CI, vous voulez qu’elle exécute les tests et affiche les résultats, ainsi que ce qui a échoué si c’est le cas. Chez Slickteam, notre CI fonctionne avec Gitlab-CI, et nous gérons nos tests avec. Cela nous aide à trouver plus facilement le problème en cas d’échec. Nous affichons également le taux de couverture global pour tous les tests.

Voici comment nous le faisons.

Pour commencer vous devez avoir des tests dans votre code (qui n’en a pas ?) et les exécuter avec un outil de build ou autre. Nous utilisons Grad le principalement, donc tous mes exemples vont utiliser des commandes Gradle.

Lire la suite →
Posts

KTOR et Keycloak - authentification avec OpenId

Depuis quelque temps je voulais essayer Kotlin. Lorsque j’ai vu que Jetbrains annonçait le framework KTOR pour créer des applications web, j’ai vu une bonne opportunité d’en apprendre plus sur le langage tout en découvrant ce nouveau framework.

KTOR est un framework web pour construire des services ou applications entièrement en Kotlin, car il peu également générer du HTML ou du CSS via des DSLs (Domain-Specific Language) en Kotlin. A la fin de cet article, il y a un exemple de page HTML écrite à l’aide de ce DSL. Ce framework embarque un serveur web (on peut choisir entre jetty, netty, tomcat ou autre), et il est possible de le configurer dans le code directement. De plus, comme il est édité par Jetbrains, créateur de Kotlin, il me semblait d’autant plus intéressant.

Lire la suite →