Note de lecture : Patterns of Enterprise Application Architecture, par Martin Fowler & al.

Note: 8 ; J’ai des scrupules à le juger excellent …

Franchement, rien que la première partie justifie l’achat du livre. En une centaine de pages, l’auteur parvient à faire le tour des aspects sur lesquels il faut opérer des choix d’architecture et les contraintes qui peuvent nous guider vers telle ou telle solution. Le tout est exposé clairement et simplement, avec limpidité devrai-je même dire, par comparaison aux autres ouvrages dédiés à l’architecture logicielle. Voilà qui devrait être une saine source d’inspiration pour les auteurs des pavés de 1000 pages !

L’auteur prend des positions nettes par rapport à ces choix, et c’est tant mieux. Cette première partie, par sa qualité et son narratif me rappelle “UML distilled” du même auteur.

En revanche c’est à “Refactoring” que me fait penser la seconde partie du livre, car Martin Fowler a utilisé ici la même présentation pour ses patterns. C’est plutôt une qualité, car j’avais déjà trouvé cette présentation claire et intéressante, même si elle tend à mettre beaucoup d’emphase sur le code (nous avons le droit à du Java – essentiellement – et aussi du C#) et parfois pas assez l’accent sur l’essence de la solution. Ces patterns (il y en a tout de même 51) sont regroupés en “thèmes” qui font le pendant aux chapitres de la première partie :

  • Organisation de la logique métier.
  • Architecture des sources de données
  • Mapping comportemental objet-relationnel
  • Mapping structural objet-relationnel
  • Mapping objet-relationnel des métadonnées
  • Présentation Web
  • Distribution des traitements
  • Gestion transactionnelle
  • Gestion des états
  • Patterns de base

Ce qui m’a certainement le plus troublé (et même choqué, devrais-je dire), c’est l’absence de référence aux autres ouvrages ! Et pourtant il devrait y en avoir. Pire : nombre de patterns présentés ici ne sont guère que des reprises de patterns déjà publiés. Les indécrottables de la galaxie Patterns (j’en fais partie) s’en offusqueront. C’est ce dernier point qui m’incite à ne pas attribuer un 10 à cet excellent livre. Il y a toutefois un aspect pratique : nous avons un livre complet et auto-suffisant de patterns applicatifs dans lesquels faire notre marché pour les applications d’entreprise. Et cet ouvrage est de haute qualité, cela mérite certainement quelques concession… Martin Fowler nous a plus ou moins suggéré qu’il pourrait y avoir un second volume: nous l’attendons toujours…

patterns-enterprise-architecture

Référence complète : Patterns of Enterprise Application Architecture – Martin Fowler with David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee and Randy Stafford – Addison Wesley / Signature series 2002 – ISBN: 0-321-12742-0

Patterns of Enterprise Application Architecture


http://www.goodreads.com/book/add_to_books_widget_frame/0321127420?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Tika in Action, par Chris A. Mattmann & Jukka L. Zitting

Note : 6 ; Comment faire un livre correct à partir d’un Framework qui ne le justifierait à priori pas !

Tika est un framework de l’écosystème Apache Lucene. Il s’agit d’un framework facile à utiliser, permettant d’extraire des informations de contenu et des métadonnées depuis de nombreux formats de fichiers. Les chapitres 5 et 6 nous disent presque tout ce que l’on a besoin de savoir pour utiliser Tika : extraire le texte et les métadonnées depuis un format de fichier en utilisant la très pratique façade Tika ! Les auteurs sont parvenus à passer de deux chapitres à 15 (200 pages) sans tomber dans le simple remplissage. Ils ont su explorer différentes facettes du Framework en gardant un propos intéressant.

La première partie « getting started » nous met au parfum des problématiques inhérentes aux différents formats de fichiers, à leur détection, à la lecture de leur contenu et des métadonnées. On y couvre aussi une description haut niveau de l’architecture de Tika et la façon de l’intégrer dans un projet. Cette partie se termine par la description de l’étude de cas Lucene : comment Tika s’intègre dans une architecture de moteur de recherche.

La seconde partie est le cœur de l’ouvrage : l’exploitation de Tika. On passe en revue successivement la détection de format, l’extraction du contenu puis des métadonnées pour aborder une intéressante description des algorithmes de détection de langage ! Le dernier chapitre de cette partie « what’s in a file » ne m’a pas laissé un souvenir impérissable.

La troisième partie est consacrée à l’intégration. Bien entendu on aborde la façon dont Tika s’intègre avec Lucene puis on aborde en détail la « search stack » Lucene, ce qui m’a donné une bonne compréhension du rôle des différents frameworks ! Le chapitre sur la façon d’étendre Tika est passé un peu vite à mon gréé et j’aurais aimé voir abordé l’intégration en utilisant Tika packagé en bundle OSGi : dommage !

Les quatre études de cas figurant en quatrième partie n’étaient certainement pas indispensables, surtout qu’elles restent assez superficiellement décrites. Mais elles sont une façon agréable de clore le livre.

Voici un livre qui n’est probablement pas indispensable pour simplement utiliser Tika. Mais les auteurs ont eu l’intelligence d’intégrer du matériel donnant plus de perspective : standards des métadonnées, détection de types, détection du langage, intégration dans une architecture de recherche, etc… Ce n’est donc pas une lecture indispensable, mais elle pourra être source d’inspiration quand à l’usage que l’on peut faire de ce type de fonctionnalités.

tika-inaction-manning

Référence complète : Tika in Action – Chris A. Mattmann & Jukka L. Zitting – Manning 2012 – ISBN : 978 1 935182 85 6

Tika in Action


http://www.goodreads.com/book/add_to_books_widget_frame/1935182854?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

The Transfer Pattern

Je poursuis mon voyage dans le passé avec le “transfer pattern", écrit avec Frédéric Paulin et présenté à la conférence EuroPLOP (ne riez pas) c’est à dire l’European Pattern Language  Of Program en 1998. Ce fut ma première participation à une conférence “patterns". Ce fut aussi la première présentation d’un pattern en conférence par un Français, apparemment !

Le Transfer Pattern adresse le problème de la communication asymétrique entre deux frameworks devant s’échanger des données, mais s’appuyant sur des systèmes de types différents, tout en optimisant les recopies d’objets. 

Des systèmes de types différents ? Ben oui, c’est le C++ d’avant la standardisation…

Note de lecture : Extreme Programming Installed par Ron Jeffries, Ann Anderson & Chet Hendrickson

Note : 8 ; La mise en pratique réelle et concrète d’un projet XP.

La littérature ne manque pas, concernant l’extrême programming. Aussi, il peut être difficile d’y faire son choix. Le mien s’est arrêté sur « Extrême Programming Installed ». En effet, celui-ci se distingue des autres ouvrages par son coté résolument pratique, intégrant les retours d’expérience au texte. Les auteurs ont en effet partagé le même projet, ils nous font profiter de l’expérience issue de leur collaboration, ainsi que de projets XP antérieurs. Il est souvent difficile de se faire une idée concrète de la mise en œuvre d’un processus décrit non par le menu, mais par ses principes. Ici, les auteurs nous livrent des extraits de dialogues, des exemples de « user stories », des « minutes » d’une séance de test-first design et des exemples de tests unitaires, entre autre choses. Autre point intéressant : le livre répond clairement à certaines questions souvent laissées sans réponses : qui écrit les jeux de tests d’acceptation, qu’en est-il des erreurs provenant non des classes elle-même, mais de la collaborations entre classes, etc.. On regrettera cependant les prises de positions parfois “élitistes”, la pire d’entre elle étant le choix d’expliquer des choses en Smalltalk, qui ne peut être guère considéré comme un standard du marché. Le XP doit sortir de sa position de dédain envers le monde extérieur !

Ce livre, relativement succinct, comme tous les volumes de la « XP series » d’Addison Wesley, avec ses 240 pages ne compte cependant pas moins de 34 chapitres ! Seuls 23 d’entre eux (175 pages) constituent la partie principale de l’ouvrage, les 11 derniers sont considérés comme des « bonus tracks ». Celles-ci rassemblent des techniques particulières alternatives qui furent marquantes au cours du projet. Pour ma part, je retiendrais « It’s Chet’s Fault », où comment couper court aux stériles recherches de coupables afin d’aller vers l’avant. Les 23 chapitres principaux ne sont pas organisés de façon chronologique comme on aurait pu s’y attendre, mais par principes et techniques d’XP, considérant les valeurs fondamentales de la méthode comme acquises.

Finalement, plus que “Extreme Programming explained”, j’ai trouvé que cet ouvrage, par son coté vécu et le retour d’expérience qu’il relate, était le mieux à même de faire comprendre l’essence de l’Extreme Programming. Le style est vivant et le propos concret, c’est tout ce dont on a besoin pour se faire une idée de la méthode. Une lecture critique est cependant nécessaire, car le propos souvent dogmatique est quand même gênant.

XP-installed

Référence complète : Extreme Programming Installed – Ron Jeffries, Ann Anderson & Chet Hendrickson – Addison Wesley / XP series 2001 – ISBN: 0-201-70842-6

Extreme Programming Installed


http://www.goodreads.com/book/add_to_books_widget_frame/0201708426?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Panorama des méthodes agiles en 2006

Je vous propose à nouveau un peu d’archéologie et de nous replonger en cette année 2006.

Cette présentation faite lorsque j’étais chez Valtech nous présente le paysage des méthodes agiles à cette époque qui nous parait déjà si éloignée…

Have fun !

http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=