Note de lecture : Design Patterns, par Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides

Note : 10+ ; LE livre de la décennie 90 !! Book of the year 1995 & Book of the decade ‘90!

Il y a un « avant » et un « après » Design Patterns. Il y a tellement de choses à dire sur ce livre emblématique qu’il est même difficile de trouver par où commencer. Commençons par « avant ».

Dans les années 80, jusqu’au début des années 90, on parlait bien d’activité de conception (par opposition à l’activité d’analyse) mais sans parvenir vraiment à identifier ce en quoi cela consistait. « montre-moi ton arbre d’héritage » était alors l’aulne à laquelle on mesurait la qualité d’une conception objet. Evidemment un arbre large et profond était jugé meilleur qu’un arbre rabougri. Pour certains gourous, seuls les objets issus du domaine métier étaient des éléments valides de conception. Je garde un souvenir vivace de m’être fait tancé vertement pour avoir introduit dans ma conception des objets qui n’en étaient pas. Bref l’activité de conception était alors généralement considéré comme le tartinage de code dans les classes identifiées en analyse. Sauf pour quelques uns qui se disaient qu’il y avait plus…

Puis est arrivé le Design Patterns. Un ouvrage tellement emblématique qu’il porte même un nom alternatif dans la communauté des patterns : le GoF, c’est à dire le « gang of four » par référence à ses quatre auteurs.

Il y a de nombreuses choses que je trouve géniales dans ce livre. La première est son absence apparente de génie. De nombreuses personnes ayant lu l’ouvrage disent, ou disent la première fois « je n’y ai pas appris grand chose ». Effectivement, aucun des 23 désormais célèbres patterns n’est une création des auteurs. C’est même une contrainte, un point obligé de l’identification des patterns : les patterns ne sont pas créés, ils sont découverts et doivent avoir été appliqués plusieurs fois avec succès pour prétendre à être identifié en tant que pattern. C’est le point de départ de l’apport des patterns :

L’activité de conception devient l’introduction de « mécaniques » dans le modèle objet, non de façon descendante, mais de façon émergente sous l’effet de « forces » documentées au sein des patterns, par refactoring d’un modèle existant.

L’accent est désormais mis sur la structure du modèle objet, par ses relations et sa dynamique, plus que par l’arbre d’héritage. Aujourd’hui les arbres d’héritages larges et profonds sont d’ailleurs jugés plutôt négativement.

L’utilisation d’un vocabulaire permettant de dialoguer plus efficacement sur les problématiques de conception.

L’adhésion de la communauté objet à cette approche a été immédiat. L’épuisement du premier tirage en 1 mois et demi en est l’une des preuve. Aujourd’hui le livre approche son 40ème retirage et plus d’un million et demi d’exemplaires en ont été vendus… L’autre symptôme est la naissance d’un véritable mouvement avec sa propre communauté et ses conférences qui dureront jusqu’au début des années 2000. Aujourd’hui, cette communauté en tant que telle s’est évanouie, mais elle a donné naissance à un autre mouvement : le développement agile !

Derrière ce mouvement de nombreux autres ouvrages ont vu le jour, mais 17 ans après, c’est bien le GoF qui reste la référence, par sa qualité et la pertinence des patterns qui y sont documentés : c’est LA bible incontournable du design pattern. Je lui ai décerné la titre de « book of the décade » car je considère qu’il s’agit de l’apport le plus important au monde de l’objet sur les années 90. Il a incontestablement fait évoluer de manière radicale ma manière de concevoir.

Le texte est simple, clair et lisible. Mais certains des concepts forts, comme la conception émergente se dissimulent en fait en filigrane dans le texte. Ce n’est pas évoqué explicitement, mais c’est un corollaire naturel… Des traductions ont existé, entre autre en français dont je ne pense pas qu’elles soient encore commercialisées. De toute façon je recommande la lecture en Anglais, la traduction française (que je possède par ailleurs) est entachée de nombreuses petites erreurs et traduire les noms des patterns en français n’est d’ailleurs pas la moindre (à l’exception de la « façade » pour laquelle des américains sont venus me demander la signification…).

L’épopée « patterns » appartient au passé. J’aimerais dire que c’est une bonne chose car ce savoir doit faire partie des acquis du développeurs. Mais je constate au jour le jour que ce n’est pas le cas, peut-être même avons-nous perdu de ce côté.

C’est pourquoi je recommande ce livre, non seulement sans réserve mais comme jalon incontournable du cursus de tout développeur. L’âge du texte ne change rien à l’affaire : Il excelle aussi bien par la qualité de son contenu, que par son concept novateur à l’époque (exprimer et nommer explicitement les briques de réutilisation de conception), que par sa présentation où patterns sont présentés selon un schéma constant. Au cas où vous ne l’auriez pas remarqué, je l’ai noté “10+”. C’est le seul de mes notes notes de lectures que j’ai ainsi noté, il est donc celui qui a obtenu la note la plus haute.

design-patterns

Référence complète : Design Patterns, Elements of reusable object oriented software – Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides – Addison Wesley / Professional Computing series 1995 – ISBN : 0-201-63361-2

Publicité

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.