Note : 8 ; Une compilation de patterns de très bonne qualité.
Ce troisième volume de la série PLOP-D a complètement redynamisé la série ! Alors que je reprochais aux volumes précédents la portion de matériel utile, il n’y a rien de tel ici : la substance utilisable directement dans nos projets y est importante. J’ai trouvé la sélection clairement orientée vers les patterns de conception, ce qui n’est pas pour me déplaire. Cependant, même les patterns organisationnels peuvent s’avérer utiles ou inspirants, tel que le “Patterns for pattern writters”. Malgré cette orientation, le volume est quand même découpé en plusieurs parties, en fait plus de parties même que les opus précédents, car on en compte 10 ici, mais elles sont aussi plus finement ciblées. Il était aussi question d’opérer un découpage valable pour un livre qui compte maintenant 575 pages.
La première partie traite des patterns à usage généraux. Cette première partie n’est certainement pas à ignorer. On y trouve le très utile « null object », l’excellent « extension object » qui est une des très rares contributions d’Erich Gamma. Le « manager » de Peter Sommerlad a plutôt une coloration historique, car c’est le pattern universellement utilisé aujourd’hui pour les DAO.
La seconde partie couvre des variations sur les patterns. Elle va d’avantage intéresser le praticien expérimenté. Les trois sont intéressants, les variations sur le state pattern peuvent être utilisées presque tel quel dans une formation.
J’ai trouvé les deux patterns architecturaux qui forment la troisième partie du même nom assez peu convainquants. Tant pis.
La quatrième partie est consacrée aux patterns liés aux architectures distribuées. Les 5 patterns qui la constituent sont plutôt musclés. Ma préférence va au très élégant « asynchronous completion token ». L’ « acceptor connector » vaut certainement le détour, mais il est quelque peu complexe et la présentation à l’aide diagramme en notation Booch n’aide pas.
Ce sont deux patterns qui constituent la cinquième partie consacrée à la persistance. Le « serializer » a surtout un intérêt documentaire, tandis que « accessing relational database » bien que bien construit n’offre plus qu’un intérêt mitigé aujourd’hui.
On ne trouve qu’un seul pattern dans la sixième partie qui cible les interfaces utilisateur. Il s’agit plutôt d’un pattern language d’ailleurs, mais je lui ai trouvé peu d’intérêt.
La septième partie traite de patterns de programmation et il ne faut pas la rater, même si elle ne contient que deux de ces patterns (presque des idiomes). Le premier d’entre eux est le désormais célèbre « double-check locking », tandis que l’« external polymorphism » qui s’apparente beaucoup au décorateur n’est pas dénué d’intérêt.
Je n’ai jamais vraiment été soulevé d’enthousiasme par les « business patterns ». Peu d’entre-eux trouvent grâce à mes yeux. Cette huitième partie en contient 3 et j’avoue qu’ils ne m’ont pas marqué.
On n’échappe pas facilement aux « process patterns ». Nous en avons 4 dans cette neuvième partie. Le « pattern for evolving frameworks » est un pattern language qui met bien en exergue les aspects fondamentaux de la conception d’un framework. Le « pattern for designing in teams » contient les frémissements de l’avènement d’XP. Le « pattern for system testing » est le plus intéressant du lot, à mon avis. Là encore un pattern language qui mérite la lecture.
Si vous vous sentez l’âme d’un auteur, le « pattern language for patterns writing » sera votre amis. Il est le seul membre de cette dixième partie consacrée aux « patterns on patterns ». Ecrire un pattern, le soumettre (et être accepté) en conférence n’est pas si simple, j’en ai l’expérience. Rétrospectivement, je trouve qu’il s’agit-là d’un bon guide.
On ne peut espérer un score de 100% de matière utile à une compilation de patterns issus d’une conférence. Cela dit la sélection est vraiment très bonne, c’est un très bon livre, je ne l’ai pas lu en pensant « vivement que cela finisse » que cela a été parfois le cas avant. Je garde précieusement ce volume et le recommande.
Référence complète : Pattern Languages of Program Design, vol. 3 – Robert Martin, Dirk Rhiele, Frank Buschmann edt. – Addison Wesley / Software Patterns series 1998 – ISBN: 0-201-31011-2
http://www.goodreads.com/book/add_to_books_widget_frame/0201310112?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on