JavaRush /Blog Java /Random-FR /Critique du livre « Head First Design Patterns »
Alex
Niveau 37

Critique du livre « Head First Design Patterns »

Publié dans le groupe Random-FR
Parmi les personnes qui connaissent au moins un peu la série Head First, nombreuses sont celles qui considèrent cette littérature comme une lecture plutôt superficielle pour les débutants. Que puis-je dire, il est peu probable qu'il soit possible d'étudier en profondeur un sujet complexe dans le domaine de la programmation en 48 heures. Cependant, il est difficile de prétendre que Design Patterns est un livre qui constituera un guide utile de programmation pour les débutants. Ce livre est l'un des dix plus populaires sur Stackoverflow, et pour cause. La facilité de présentation, le sujet fondamental et les exemples de haute qualité rendent le livre populaire aujourd'hui et, à mon avis, pour de nombreuses années à venir. Critique du livre « Head First Design Patterns » - 1

Caractéristiques du livre

Les modèles de conception tête première nous indiquent ce que sont les modèles, comment les utiliser et comment y penser. Un modèle est un modèle, une solution universelle pour un ensemble spécifique de problèmes. Les modèles de conception sont, à leur tour, des solutions architecturales couramment utilisées qui peuvent être utilisées pour écrire des applications conviviales et flexibles. Les développeurs du monde entier résolvent les mêmes problèmes avec les mêmes approches. Comme l'indique l'annotation, si vous ne souhaitez pas réinventer la roue, utilisez des modèles de conception (modèles) prêts à l'emploi avec lesquels ce livre est dédié à travailler . Par ailleurs, il convient de noter la présentation du matériel : les livres de la série Head First sont réputés pour leur simplicité et se lisent en une seule séance. Les « modèles de conception » ne font pas exception. Il adhère également aux principes clés suivants :
  1. Visibilité
  2. Style de présentation conversationnel
  3. Un grand nombre d'illustrations
  4. Participation active des lecteurs
  5. Faire appel aux émotions
  6. Attirer l'attention du lecteur
Les auteurs du livre utilisent avec compétence la théorie de la métacognition pour présenter le matériel : pour moi, les 100 premières pages sont passées inaperçues. La beauté de cette approche est que le cerveau se souvient réellement de ce qu’il lit. La combinaison de plusieurs styles narratifs, de questions intéressantes, de redondance et de créativité - tout cela aide le lecteur à ne pas se désintéresser du sujet principal. Avant d'acheter le livre, j'hésitais après avoir lu des critiques mitigées. Cependant, après avoir rapidement parcouru plusieurs autres sources sur ce sujet, j'ai décidé : pour plonger dans les modèles, ce livre est ce dont vous avez besoin.

Thème principal et idée clé

"Sûrement quelqu'un a déjà résolu votre problème" - c'est ainsi que commence le premier chapitre du livre, véhiculant toute la signification des modèles de conception en programmation. L'objectif principal est de transmettre correctement leur signification au lecteur, car tout d'abord, le programmeur doit savoir à quoi servent les modèles et à quel moment ils doivent être appliqués. Essentiellement, vous devez d’abord trier les modèles en petits morceaux dans votre tête, puis les implémenter dans des programmes. Si un débutant en programmation a une bonne compréhension des motifs, leur utilisation peut grandement compliquer le code (mais devrait le simplifier !). À la question « Pourquoi utiliser des modèles de conception ? » Le livre donne une réponse claire : « Connaître des concepts comme l'abstraction, l'héritage et le polymorphisme ne fait pas de vous un bon concepteur OO. Les modèles contiennent une expérience éprouvée en matière de conception OO.

"Résumé"

Le livre est divisé en 14 chapitres plus une introduction. Au début, les auteurs du livre tentent de préparer le lecteur, d'ajuster son cerveau pour qu'il perçoive correctement les informations sur la conception de modèles. Le premier chapitre explique le principe de base des modèles et à quoi ils servent. L’un des modèles les plus utilisés – la stratégie – peut être examiné facilement et discrètement. Les chapitres deux à onze sont consacrés à une analyse détaillée des modèles individuels :
  1. Observateur. Distribue les événements entre les objets intéressés par leur occurrence.
  2. Décorateur. Un autre regard sur l'héritage en Java et l'octroi de nouvelles fonctionnalités aux classes Java sans modifier le code.
  3. Usine. Le modèle enregistre le code des dépendances indésirables.
  4. Célibataire. Également connu sous le nom de Singleton, il vous permet de créer un seul objet de classe pour l'ensemble du programme.
  5. Équipe. Le modèle vous permet d'encapsuler facilement un appel de méthode, étendant ainsi ses capacités.
  6. Adaptateur et façade. Résoudre le problème d'incompatibilité d'interface, ainsi que conditionner des objets pour simplifier leur interface.
  7. Méthode de modèle. Encapsulation de blocs algorithmiques, permettant aux sous-classes de s'associer à tout moment à l'algorithme de traitement souhaité.
  8. Itérateur et éditeur de liens. Le modèle fournit un outil pratique pour parcourir les collections, quel que soit leur type. De plus, le chapitre fournit des informations sur les supercollections.
  9. État. Les objets sont dotés de la capacité de contrôler leur comportement grâce à des changements dans leur état interne.
  10. Adjoint. Un modèle très pratique pour contrôler l'accès à un objet.
Le chapitre 12 examine les modèles composites, ou plutôt les combinaisons de certains des modèles évoqués, qui peuvent être utilisés pour construire de puissantes architectures logicielles. Le chapitre 13 est consacré à l'utilisation de modèles dans des problèmes réels, la classification des modèles, leurs variétés et les directives d'utilisation sont présentées. Le livre sert d'annexe au chapitre 14, qui couvre un plus large éventail de modèles. Chacun d’eux est utile à sa manière, il est donc plus que souhaitable de les connaître. Bien sûr, ils ne sont pas aussi populaires que les modèles des chapitres 2 à 11, mais cela ne les rend pas moins utiles. Le livre ne prétend pas être une présentation académiquement précise de la théorie des modèles. Mais si les livres Head First sont si méticuleux, les développeurs en herbe n'auront pas la possibilité de comprendre de quoi il s'agit et de clarifier les bases par eux-mêmes. Il s'agit d'un moyen simple et pratique d'apprendre ce que sont les modèles de conception pour ceux qui ne les connaissent pas. Selon les auteurs, Design Patterns est un livre qui convient à ceux qui connaissent déjà Java (ou C#), souhaitent apprendre les principes de la conception orientée objet et préfèrent les conversations animées aux cours ennuyeux. Ce livre n'est pas un ouvrage de référence ! Si vous êtes un développeur professionnel expérimenté et que vous travaillez avec au moins une partie de ces modèles, il est peu probable que le livre vous intéresse. Les exercices sont un élément important du livre : vous ne devez pas les sauter. Si vous lisez attentivement le livre et, dans les cas extrêmes, effectuez une recherche minimale sur Internet, les résoudre ne vous ajoutera pas de maux de tête. Mais il y aura certainement des avantages. À tout le moins, vous comprendrez plus profondément la théorie présentée dans le livre.

Avantages et inconvénients

Comme beaucoup de ceux qui étudient à JavaRush, j'ai une attitude froide envers les cours ennuyeux, le matériel bourré et autres violences contre le psychisme d'un étudiant assoiffé de connaissances. L'énergie dépensée pour mémoriser des textes incompréhensibles, à mon avis, est mieux dépensée pour trouver des sources alternatives d'apprentissage. Ce livre vaut votre temps et vos efforts. Un excellent style de présentation, une gestion compétente de l'attention du lecteur et la répétition des points clés constituent le principal avantage de ce livre - la facilité d'assimilation du matériel . Un grand nombre d'illustrations est un plus supplémentaire. À mon avis, chaque image du livre a sa place : elles permettent toutes de renforcer les propos des auteurs et de mieux comprendre l'essence du matériau. Comme je l'ai écrit plus haut, cet ouvrage n'est pas un ouvrage de référence : ses auteurs n'ont pas l'intention de lister tous les modèles. Sa tâche principale est de faire comprendre et de parler des modèles de base afin que d'autres, plus complexes, soient plus faciles à comprendre. Et elle s'en sort à 100%. Parmi les inconvénients, il y a le fait que les modèles de conception Head first en russe ne sont pas aussi faciles à lire qu'en anglais. Bien sûr, chaque développeur doit parler anglais, mais les programmeurs débutants ne développent pas toujours cette compétence au point de pouvoir lire des livres dans l'original. Cependant, cela peut être considéré comme un inconvénient forcé, car le matériel est présenté avec assez de précision et le sens est préservé.

Livres supplémentaires sur les modèles de conception

Je suis partisan de la conviction qu'il est préférable d'étudier des sujets fondamentaux provenant de plusieurs sources et d'y rechercher un style de présentation approprié. Lorsque vous aurez envie de vous plonger dans des schémas et de lire de la théorie supplémentaire, croyez-moi, vous aurez de quoi occuper vos soirées.
  1. Techniques de conception orientées objet. Modèles de conception (Gamma E., Helm R., Johnson R., Vlissides J.).

    Critique du livre « Design Patterns » (Head First Design Patterns) - 2

    Il s'agit d'une publication plus sérieuse, un ouvrage de référence sur les patrons, un livre très respecté du « Gang of Four ». Beaucoup l’appellent la bible du design OO.

    Sur Internet, les avis des développeurs se répartissent en 3 camps :

    • certains soutiennent que le livre est obsolète et que le style de présentation rend la lecture impossible.
    • d'autres recommandent d'utiliser le livre uniquement comme ouvrage de référence sur les modèles, rien de plus
    • d'autres encore disent que le livre est le Saint Graal des modèles de conception et devrait être lu par quiconque souhaite devenir un jour développeur Java senior.
    Je suis adepte du deuxième groupe : je pense que le livre en vaut vraiment la peine, mais le lire à des fins de développement, et non dans le but de rechercher des informations, est très difficile.

    Important:Les exemples du livre sont écrits en C++.

  2. JavaEE. Patrons de conception pour professionnels (Murat Yener, Alex Fidom).

    Critique du livre « Design Patterns » (Head First Design Patterns) - 3

    Cet ouvrage est dédié à la conception d'applications d'Entreprise : il couvre de nombreux exemples de problèmes applicatifs réels.

  3. Modèles de conception en Java (Grand M.).

    Critique du livre « Design Patterns » (Head First Design Patterns) - 4

    Le livre montre de manière colorée comment l'utilisation de modèles fait gagner du temps aux développeurs, donne un aperçu du langage UML et décrit 47 modèles de conception.

Modèles de conception dans JavaRush

Dans le cours JavaRush, les modèles de conception sont appris au niveau 7 de la quête Java Collections. Les leçons 1 et 2 sont consacrées aux modèles les plus courants, et dans la leçon 4 , vous pourrez résoudre des problèmes sur ce sujet. Ci-dessous quelques articles intéressants pour « se renforcer » :
  1. Un article général sur le thème des patterns avec des catégories, des exemples, tout ce qu'on aime.

  2. Deux articles sur les patrons : partie 1 aperçu et partie 2 plus détaillée .

  3. Modèles de conception utilisant le modèle Singleton comme exemple .

  4. Articles sur les modèles « Stratégie » et « Adaptateur ».

  5. Le concept de modèles de conception est lié aux diagrammes UML, cet article vous aidera à comprendre de quoi il s'agit.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION