Note : 6 ; Craig Walls (heureusement) toujours égal à lui-même !
J’avais hâte d’aborder ce volume, car on m’avai dit grand bien de Spring Boot. Craig Walls balaye consciencieusement tous les aspects de cette famille de frameworks depuis plusieurs années, avec une plume qui rend tout cela agréable : bon point. Atre bon point, le volume réduit du livre qui est de seulement 180 pages. Hélas cela a conduit à certains choix de contenus que je trouve malheureux ou qui au moins m’ont frustré. Mais j’y reviendrais.
Pour l’instant, voyons le contenu, qui compte 8 chapitres. Le premier « bootstrapping Spring Boot » ne compte que 22 pages, juste de quoi faire le tour du propriétaire et voir les différentes manières d’installer Spring Boot et d’initialiser un projet. C’est aussi l’occasion de voir que le reste du livre va faire l’impasse sur pas moins de 4 sur 5 types de projets que permet Spring Boot (page 13). C’est fâcheux et c’est le principal reproche que j’ai à faire au texte. Cela lui coute 2 points sur ma note de lecture !
Le second chapitre est consacré au « hello world » (d’est du MVC, bien sûr…). Autant dire que ses 25 pages sont précieuses. C’est un plaisir à lire et l’auteur couvre bien les aspects lié au build, à la structure du « starter » et à la gestion commune des dépendances. L’auteur montre une préférence marquée pour Gradle pour le build, mais Maven n’est pas mis à l’écart.
Les choix par défaut de Spring Boot font leur petit effet, mais la vie réelle n’est jamais aussi simple. Le chapitre 3 et ses 27 pages sont là pour développer les aspects de configuration de Spring Boot, la manière de surcharger les comportements par défaut et comment utiliser habilement les annotations et la « chaine de cascade » d’annotations de Spring Boot pour customiser le comportements. Le dernier point en particulier est assez chaud. Bref, le chapitre est très utile, et il explique bien les priorités de configuration, mais la partie consacrée aux annotations est assez chaude à appréhender !
Les tests avec Spring Boot n’ont droit qu’à 15 pages qui comprennent les tests d’intégration hors contaneur, les tests dans le conteneur (façon Arquilian) et l’invocation de Selenium pour l’IHM. C’est un peu trop pour avoir une explication claire et développée sur chaque sujet, mais le chapitre fait le boulot et l’on a des bouts de code à copier-coller. Pour ma part, j’aurais mis la partie Selenium ailleurs.
Le chapitre 5 tenait vraiment au cœur de l’auteur, on le voit bien : comment utiliser le Spring Boot CLI et Groovy pour faire des applications particulièrement frugales en nombre de ligne de code. L’exercice ressemble un peu à à une démo et j’avoue n’être pas venu pour cela. Mais le texte est clair et se lit bien. Pas de quoi chagriner pour juste 13 pages qui plus est.
Le chapitre 6 est bien plus contestable à mon avis, et j’aurais préféré de pas l’avoir là, car il est simplement hors sujet. Il n’est pas consacré à Spring Boot, mais à Grails 3 qui est construit sur Spring Boot. Si le sujet m’avait intéressé, j’aurais cherché un ouvrage sur Grails ! Ces 17 pages auraient pu être consacré au développement d’applications REST avec Spring Boot, par exemple.
Les Actuators sont un peu la cerise sur le gâteau Spring Boot, car ils permettent de monitorer les applications ! Le chapitre 7 y consacre 26 pages. Il aurait pu facilement être découpé en 2 en traitant d’un côté les endpoints Rest, par ailleurs bien abordés même si la litanie des fonctions est forcément un peu rébarbative et le volet JMX qui est un peu plus légèrement couvert. L’auteur aurait peu faire un peu mieux, mais le chapitre reste très convenable.
Enfin, le dernier chapitre aborde la partie déploiement sur une vingtaine de pages, car là aussi Spring Boot propose des choses. Cela commence avec les profils. Ensuite l’auteur propose les recettes de déploiement Cloud Foundry (la solution officielle Pivotal) et pour Heroku. Tout est très clairement expliqué, mais encore une fois on se contente du strict minimum. Ce chapitre aurait pu être découpé en 2 ou 3 pour explorer les aspects à prendre en main sur le déploiement cloud (on sent bien que l’on rate des choses…). Et AWS ou Google App Engine ne sont même pas évoqués…
Ce livre fait le boulot, et il est à la hauteur de ce à quoi Craig Walls nous a habitué. Il a l’avantage d’être court et donc de se lire vite, en contrepartie de quoi il se limite à l’essentiel, il y a donc un peu de frustration au coin de la rue quand on en sera à l’application réelle… La véritable lacune est le choix éditorial se concentrant uniquement sur les applications Spring MVC allant même vers le hors sujet avec Grails alors que les autres types d’applications Spring Boot sont totalement passées sous silence. Cet aspect est lui réellement décevant.
Référence complète : Spring Boot in Action – Craig Walls – Manning 2016 – ISBN : 978 1 61729 254 5