Dernièrement, je suis intervenu sur un projet Maven Java 17, pour rétablir l’indicateur de couverture du code par les tests affiché dans SonarQube. C’est un problème classique dont les causes peuvent être multiples. Dans mon cas, c’était l’activation des preview features de Java 17 pour permettre la JEP 406: Pattern Matching for switch. J’ai profité de cette petite aventure pour aplanir le sujet, je l’espère, une bonne fois pour toutes.
Spring HATEOAS
J’ai donné en mars 2022 un talk au Lyon JUG sur Spring HATEOAS. Une captation vidéo est disponible sur Youtube. Les slides (au format Asciidoctor reveal.js) sont disponibles sur GitHub. Enfin le code source de l’application qui a servi d’exemple est également disponible sur GitHub. J’espère que cela contribuera à rendre vos API plus RESTful.
Intégrer Storybook dans un projet Vue.js avec vue-i18n
Dans le précédent article, nous avons vu comment intégrer Vue.js, vue-i18n et Jest dans un projet. Ajoutons un catalogue de composants avec Storybook.
Intégrer vue-i18n dans les tests Jest d’un projet Vue.js
Visiteur et packages
J’avais besoin, pour un projet en Java, de rajouter de nouvelles opérations à un groupe de classes fermées (du point de vue SOLID). J’ai opté pour une implémentation à base de visiteur. Comme on le voit sur le diagramme de classes ci-dessous, adapté du cas décrit dans le livre Design Patterns: Elements of Reusable Object-Oriented Software, visiteur introduit de nombreuses relations.
Je ne voulais pas que toutes les classes appartiennent au même package. Je voulais encore moins introduire du couplage entre des packages mal conçus. Je suis arrivé à cette solution :
Le visiteur n’est pas une panacée : il contraint les classes visitées à appartenir au même package que l’interface du visiteur, à cause du double dispatch. Les implémentations du visiteur, moins contraintes, peuvent être créées dans leur propre package.
Mettre en place webpack dans un projet AngularJS
Les applications AngularJS sur lesquelles j’ai travaillé jusqu’à présent, ont été construites à l’aide de Yeoman et generator-angular. Leurs fondations s’appuient sur Grunt, auquel je n’ai jamais consacré le temps nécessaire et Bower, dont les mainteneurs préconisent désormais l’utilisation de Yarn et webpack. J’ai envisagé un temps de remplacer Grunt par Gulp, mais j’ai eu l’impression que, malgré les qualités de l’outil, comme pour Grunt, sans lui adjoindre quantité de plugins, Gulp ne m’apporterait pas assez. J’ai donc été voir du côté de webpack.
Compiler Aseprite sous Windows 10 avec Visual Studio Community 2015
Aseprite est un logiciel épatant pour dessiner des sprites. Les sources sont disponibles sur GitHub, avec les instructions pour construire une version binaire pour Windows, Linux et Mac OS. N’étant pas expert de l’écosystème Microsoft, j’ai rencontré quelques difficultés, qu’il m’a paru intéressant de partager. Voici les étapes que j’ai suivies pour aboutir à un exécutable qui tourne sous Windows 7 et Windows 10.
Démarrer un projet SDL 2.0 avec Code::Blocks sous Windows
La mise en place d’un projet SDL 2.0 avec Code::Blocks sous Windows présente son lot d’obstacles. Bien que Code::Blocks 16.01 fournisse un assistant de création de projets SDL, celui-ci est prévu pour fonctionner avec SDL 1.2, la version majeure précédente. Le code C produit par l’assistant fait appel à des fonctions obsolètes et le script de ce dernier n’est pas adapté à la structure de la bibliothèque de développement SDL 2.0 que nous allons télécharger. Je n’ai pas été convaincu par les solutions que j’ai pu trouver sur Internet, notamment celles qui aboutissent à la copie de SDL dans MinGW. Voici donc comment je m’y prends… Continuer la lecture