Note : 2 ; Une vision “nano composants” bien éloignée de celle de Sam Newman et Martin Fowler…
Certains livres doivent se lire vite, pour que la douleur ne dure pas trop longtemps. Comme pour l’arrachage d’une dent ! Pour commencer, le livre est une tromperie sur la marchandise : point de microservices selon Fowler ou Newman, ici il s’agit d’une architecture crée par l’auteur. Comme elle est différente des autres, il l’appelle « 2.0 », les autres c’est 1.0 ! En fait ce n’est d’ailleurs pas simplement une architecture, mais selon l’auteur la solution ultime et définitive au développement logiciel, sur les plans techniques et organisationnels.
Car sur le plan technique, l’auteur fait la peau à tout ce qui est différent de sa solution au chapitre 1. Selon lui, la conception objet produit de grosses hiérarchies de classes trop couplées et incompréhensibles… libérons-nous de cette escroquerie. L’approche guidée par les tests est un écran de fumée tandis que les approches agiles obligent les équipiers à ce parler pour compenser le couplage de leur conception. Enfin le « don’t repeat yourself » est contre-productif, pour ne pas le qualifier de sabotage. J’en passe encore quelques-uns mais on aura compris l’idée : tout ce que l’auteur n’a pas su faire marcher ne marche pas pour la totalité des mortels. Bien sûr son architecture, à l’image des potions-miracle du far-west, adresse la totalité de ces problèmes sans aucuns inconvénients.
Tout ce bashing couvre une bonne partie du chapitre 1 de ce livre de près de 300 pages qui en compte 9. Mais pas seulement, on en trouve aussi dans les autres chapitres. En fait les différents chapitres tendent à se ressembler pas mal (à l’exception de l’étude de cas du chapitre 9), il n’est donc pas très utile de les passer tous en revue.
Justement, cette architecture si géniale, quelle est-elle ? Pas des services, assurément, mais des nano-composants exposant la conception du système au monde extérieur et communiquant par des « messages très simples », qui sont basiquement des ensembles clé-valeurs et interceptés par les différents composants via pattern-matching. Et quand l’on a des choses plus grosses à se partager, les messages portent la référence d’accès à la « couche persistance ». En fait, on a bel et bien reproduit le monolithe au niveau déploiement, avec un couplage fort via les messages mais une certaine flexibilité d’adressage. L’auteur a aussi créé sa propre notation pour représenter tout cela.
Contrairement à l’habitude chez Manning, il n’y a pas de code dans cet ouvrage, sauf dans le chapitre 9. Seulement du texte et les diagrammes utilisant la notation de l’auteur. La teneur du texte est la plupart du temps très vague. Il s’agit surtout de longs argumentaires pour nous asséner comment son architecture est géniale, simple, permet de développer rapidement, est adaptable et ne génère pas cde dette, tandis que les autres approches sont vouées à l’échec, à l’obsolescence, empêchent l’évolution et sont inévitablement de médiocre qualité. Tout est récité de manière péremptoire sans qu’aucune de ces assertions ne soit étayé d’argumentaire ou de preuve. C’est très contrariant.
Le dernier chapitre est l’étude de cas. Le texte mélange argumentaire architectural (encore !) et une logique de construction que j’ai eu du mal à décoder. En fait je n’y suis pas arrivé. C’est un projet technique qui illustre donc mal l’idée du microservice. Il est écrit en JavaScript sur Node.js, car « tout le monde peut lire du JavaScript », avec une IHM en JQuery et pas ce « non-sens de React », car encore une fois « tout le monde peut lire du JQuery ». J’imagine que « tout le monde » veut dire : l’auteur et ses potes ? Moi je n’y suis pas parvenu et j’ai fini par sauter la fin de l’ouvrage.
L’auteur n’est pas un ignare, et il y a des choses intéressantes dans ses idées. De même, il a beaucoup de connaissances et de culture et cela se reflète régulièrement dans le texte. Voilà pour les deux points. Le reste du texte nous montre une personne agressive, obtuse et dogmatique où tout ce qui ne corresponds pas à ces vues n’est qu’idiotie. Et je suis poli. En-dehors des incessants désaccords (pour ne pas parler de signes d’incompétences) que je peux émettre, le style rends la lecture extrêmement pénible. C’est pourquoi je vous convie très fortement à ne pas approcher cet ouvrage : l’odeur pourrait même imprégner vos vêtements !
Référence complète : The Tao of Microservices – Richard Rodger – Manning 2018 – ISBN: 978 1 61729 314 6