Note de lecture : Effective Java 3rd edt., par Joshua Bloch

Note : 7 ; Grosse prise de poids et hélas moins digeste, mais toujours une référence.

A chaque nouvelle édition, le titre phare du langage Java prends un peu plus d’embonpoint. L’édition précédente avouait 315 pages pour 78 items, nous voici avec 366 pour 90 items ! Il est vrai que cette nouvelle édition était nécessaire et attendue, essentiellement pour couvrir les nouveautés de Java 8, mais Java 9 n’est pas en reste bien que les modules ne soient pas abordés.

La pertinence du propos reste de mise. Mais il s’agit bien d’une édition augmentée et mise à jour, à l’exception de l’item 73 de la seconde édition qui a disparu. Mise à jour, elle l’est indubitablement. Chaque item et chaque exemple de code a été scrupuleusement revu afin de prendre en compte les évolutions de la librairie standard et du langage, aussi minimes soient-elles. Augmentée, elle l’est aussi des items touchant essentiellement les lambdas et les streams.

Le premier chapitre (en fait le second, car je n’ai pas compté l’introduction) n’a que peu changé, à part un nouvel item sur l’injection de dépendance (en fait le RAII) qui illustre un focus renforcé sur l’immutabilité des objets. Aucune modification au chapitre 3, hormis les quelques rafraichissements qui mettent les exemples au goût du jour.

Lire la suite

Publicités

Note de lecture : Clean Architecture, par Robert C. Martin

Note : 5 ; Agréable à lire, mais beaucoup de “recyclage », beaucoup de verbiage et peu d’information nouvelle.

Robert Martin est sans contestations possibles un des maîtres du craftsmanship. Je l’ai découvert avec son « C++ Applications Using the Booch Method » qui fut un régal. Son « Clean Code » et plus modestement son « Clean Coder » ont popularisé le craftsmanship et les concepts SOLID. Il m’est difficile d’avouer que j’ai eu du mal à trouver ici des idées nouvelles par rapport à ses écrits précédents. L’ouvrage atteint les 370 pages mais ce volume me parait être là pour donner le change.

Ainsi la première partie composée de 2 chapitres ne dit pas grand-chose, si ce n’est qu’il ne faut pas faire de concession sur la qualité de l’architecture. Une position pas vraiment nouvelle de la part de l’auteur.

La seconde partie fait partie des éléments nouveaux apportés par Uncle Bob : elle est consacrée aux paradigmes des langages de programmation et est composée de 4 chapitres, soit un peu plus de 35 pages. L’auteur nous présente ces paradigmes comme autant de contraintes, de possibilités que l’on enlève au programmeur pour chacune d’entre-elle :

Lire la suite

Note de lecture : Your Code as a Crime Scene, par Adam Tornhill

Note 8 ; De nouvelles perspectives sur l’analyse du code en utilisant une machine à remonter le temps !

J’avais entendu parler de ce livre, en bien… mais j’avais aussi entendu quelques réserves à son égard. C’est sans doute ce qui a retardé sa lecture, et c’est bien dommage ! A part son titre surprenant, le livre n’est remarquable de prime abord que par son impression en couleur. A titre personnel, j’ajoute aussi la préface par Michael Feathers.

Le volume compte moins de 190 pages, annexes comprises. Il n’en est pas moins découpé en 15 chapitres dont 14 sont rassemblés en 3 parties. Le chapitre d’introduction ne servant guère qu’à expliquer la démarche générale du livre.

La première partie « evolving software » regroupe 5 chapitres sur un peu plus de 50 pages. Le premier chapitre « code as crime scene » donne le ton dans tous les sens du terme. D’abord par le titre qui reprends celui du livre, mais aussi en ouvrant sur l’histoire de Jack l’éventreur et des informations extrapolées des lieux de ses méfaits. De la même manière l’auteur identifie les « hot spots » de logiciels par les endroits ayant subi le plus de changements, en exploitant la gestion de version. L’exploitation de la dimension temporelle sera un dénominateur commun de beaucoup des analyses qui nous seront proposées.

Lire la suite

Note de lecture : Beyond Legacy Code, par David Scott Bernstein

Note : 4 ; Beaucoup de verbiage et peu d’illustration

Une nouvelle déconvenue, je dois bien l’avouer. Non pas que le style de l’auteur soit mauvais, il est plutôt tonique avec de bonnes qualités de « story telling ». Non pas qu’il n’ait rien à dire, bien au contraire : il transparait du texte une maîtrise, une compréhension et une solide vision de son sujet. Non, l’auteur échoue à développer convenablement son sujet, à l’appuyer sur de solides exemples. Au lieu de cela, il semble préférer discourir en se servant du texte comme une tribune. Pourtant le contenu est au coin de la rue, il ne demande qu’à se révéler : ce sont les 9 principes qui constituent l’essence de l’ouvrage.

L’ouvrage, justement n’est pas excessivement volumineux, avec ses 230 pages. Mais attention : il s’agit exclusivement de texte ! Il est découpé en 2 parties très inégales, la première servant d’introduction avec 3 chapitres sur 40 pages, la seconde développant les 9 pratiques sur le reste du livre.

La première partie s’ouvre sur le triste constant du code legacy et de ses causes : une industrie d’amateurs comme le dit l’auteur. Rien de vraiment neuf, mais c’est bien écrit et guère ennuyeux. Le second s’attaque sur une douzaine de pages au fameux CHAOS report, mais de façon critique, ce qui est assez original, et pertinent en l’occurrence. Mais c’est aussi pour dire qu’il partage les conclusions, mais pas l’analyse. Enfin cette 1ère partie se referme sur un petit chapitre introductif à la seconde partie (les 9 pratiques) et comme quoi notre focus sur l’agile nous a fait perdre de vue la nécessité de solides pratiques de conception (ou d’ingénierie) qui en forment les fondations. Je suis bien d’accord.

Lire la suite

Note de lecture : How to Make Sense of Any Mess, par Abby Covert

Note : 4 ; Puzzle de réflexions à assembler soi-même.

Abby Covert est « information architect ». Cet opuscule a pour but de nous livrer la substantifique moelle de ce que l’auteur considère comme l’essence de l’architecture d’information. Il mérite le qualificatif d’opuscule par sa brièveté : moins de 160 pages de petit format, avec un concept par page (soit environ 1 minute ou 2 de lecture chaque fois). L’ensemble est structuré en 7 parties.

La première d’entre-elle « Identify the mess » occupe 18 pages. Ce chapitre est lui-même un peu le bordel. Abby Covert s’interroge sur la nature de l’information (ni de la data, ni du contenu) et sur la complexité (de l’information, des utilisateurs…). Bref, beaucoup de choses forment le « mess ».

Le second chapitre couvre nos intentions sur 15 pages. Il s’agit presque d’un mini-traité de coaching. L’auteur cherche à nous aider à décrire ce que « bien » veut dire pour nous. Pour enchainer sur le triptyque « Pourquoi » – « quoi » – « comment » connut des lecteurs de Simon Sinek. J’ai toujours du mal à raccrocher cela au sujet du livre.

Lire la suite

Note de lecture : Scrum, pour une pratique vivante de l’agilité 5ème édition, par Claude Aubry

Note : 6 ; De nouvelles idées et de nombreux remaniement pour un texte qui continue (hélas) de privilégier les saisons aux itérations courtes et les fonctionnalités regroupant les user stories.

Les éditions du livre de Claude Aubry se suivent et incarnent pour moi le changement dans la continuité. Nous en sommes déjà à la 5ème édition. Je les ai toutes lues, chacune d’entre-elle du début à fin et non pas en diagonale. Car l’auteur se fait un point d’honneur à faire véritablement évoluer son texte à chaque édition et ne se contente pas d’un simple changement cosmétique.

Le livre reste sur une structure de 22 chapitres, mais fait un bond de 294 à 343 pages ! Le premier chapitre compte une quinzaine de pages (contre 14 précédemment). Il fait toujours un bon boulot (en léger progrès même) pour situer Scrum et le mouvement agile. Quelques changements non anodins aujourd’hui, dont l’évocation de la systémique. Le second chapitre traite des sprints et prends 5 pages d’embonpoint. Et l’auteur d’évoquer des « saisons » en lieu et place des releases, en ajoutant des notions de prélude et d’interlude. Tout ceci prend des odeurs de SAFE, et ce ne sont pas de bonnes odeurs pour moi.

Place au chapitre 3 qui a changé de titre et parle de « sublimer l’équipe ». Pas mal de bonnes choses dans ce chapitre qui a pris aussi quelques pages au passage, avec l’ évocation de « The People’s Scrum » et l’heureuse disparition à la référence « Exploring Scrum », mais je trouve la métaphore de la permaculture compliquée et peu convaincante. Des remaniements également au chapitre 4 sur ce chapitre consacré au Product Owner, qui n’était pas mauvais et le reste. Par contre, l’évocation de la permaculture, ce n’est toujours pas ça.

Lire la suite

Note de lecture : The Tao of Microservices, par Richard Rodger

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.

Lire la suite