JavaRush /Java Blog /Random-JA /書籍『Head First Design Patterns』のレビュー
Alex
レベル 37

書籍『Head First Design Patterns』のレビュー

Random-JA グループに公開済み
Head First シリーズに少なくとも最低限の知識がある人の中には、そのような文献は初心者にとってかなり表面的な読み物であると考える人が多くいます。何と言うか、プログラミング分野の複雑なテーマを48時間で深く学ぶことは不可能でしょう。ただし、『デザイン パターン』が初心者にとってプログラミングの有益なガイドとなる本であることに異論はありません。この本は Stackoverflow で最も人気のある 10 冊のうちの 1 冊ですが、それには十分な理由があります。プレゼンテーションの容易さ、基本的なトピック、質の高い例により、この本は現在、そして今後長年にわたって人気があると私は考えています。 書籍「Head First Design Patterns」のレビュー - 1

本の特徴

ヘッドファーストのデザインパターンは、パターンとは何か、パターンをどのように使用するか、パターンについてどのように考えるかを教えてくれます。パターンはテンプレートであり、特定の問題セットに対する普遍的な解決策です。 デザイン パターンは、一般的に使用されるアーキテクチャ ソリューションであり、ユーザー フレンドリーで柔軟なアプリケーションを作成するために使用できます。世界中の開発者が同じ問題を同じアプローチで解決しています。注釈にあるように、車輪の再発明をしたくない場合は、既製のデザイン テンプレート (パターン) を使用してください。この本では、これを扱うことに専念しています。これとは別に、資料のプレゼンテーションにも注目する価値があります。Head First シリーズの本はその簡潔さで有名で、一気に読めます。「デザインパターン」も例外ではありません。また、次の重要な原則にも準拠しています。
  1. 可視性
  2. 会話形式のプレゼンテーション
  3. 豊富なイラスト
  4. 読者の積極的な参加
  5. 感情に訴える
  6. 読者の注意を引く
この本の著者は、メタ認知の理論を巧みに使って内容を提示しています。私にとって、最初の 100 ページはあっという間に過ぎてしまいました。このアプローチの利点は、脳が読んだ内容を実際に記憶していることです。いくつかの物語スタイル、興味深い質問、冗長性、創造性の組み合わせ - これらすべてが、読者が主要なトピックへの興味を失わないようにするのに役立ちます。この本を購入する前に、さまざまなレビューを読んで迷っていました。しかし、このトピックに関する他のいくつかの情報源をざっと読んだ後、パターンを深く理解するには、この本が必要であると判断しました。

メインテーマとキーアイデア

「きっと誰かがあなたの問題をすでに解決しているはずです」 - この本の最初の章はこのように始まり、プログラミングにおけるデザインパターンの意味全体を伝えています。主な目標は、その意味を読者に正しく伝えることです。なぜなら、まずプログラマは、パターンが何のためにあるのか、どの時点でパターンを適用する必要があるのか​​を知らなければならないからです。基本的に、まず頭の中でテンプレートを小さな部分に分類し、その後でそれらをプログラムに実装する必要があります。プログラミングの初心者がパターンをよく理解している場合、パターンを使用するとコードが大幅に複雑になる可能性があります (ただし、コードは単純化されるはずです!)。「なぜデザインパターンを使用する必要があるのですか?」という質問に対して この本では明確な答えが示されています。「抽象化、継承、ポリモーフィズムなどの概念を知っていても、優れた OO デザイナーにはなれません。パターンには実証済みの OO 設計経験が含まれています。」

"まとめ"

この本は 14 章と序章に分かれています。冒頭で、この本の著者は読者の準備を整え、パターンデザインに関する情報を正しく認識できるように脳を調整しようとします。最初の章では、パターンの基本原理とその目的について説明します。最もよく使用されるパターンの 1 つである戦略は、簡単かつ目立たずに検証できます。第 2 章から第 11 章までは、個々のパターンの詳細な分析に当てられています。
  1. 観察者。イベントの発生に関心のあるオブジェクト全体にイベントを分散します。
  2. デコレーター。Java の継承と、コードを変更せずに Java クラスに新しい機能を与える方法についてもう一度見てみましょう。
  3. 工場。このパターンにより、コードが不要な依存関係から保護されます。
  4. シングル。シングルトンとも呼ばれ、プログラム全体に対して単一のクラス オブジェクトを作成できます。
  5. チーム。このパターンを使用すると、メソッド呼び出しを簡単にカプセル化し、その機能を拡張できます。
  6. アダプターとファサード。インターフェースの非互換性の問題を解決し、オブジェクトをパッケージ化してインターフェースを簡素化します。
  7. テンプレートメソッド。アルゴリズム ブロックのカプセル化により、サブクラスがいつでも必要な処理アルゴリズムに関連付けられるようになります。
  8. イテレーターとリンカー。このパターンは、コレクションの種類に関係なく、コレクションを反復処理するための便利なツールを提供します。さらに、この章ではスーパーコレクションに関する情報も提供します。
  9. 州。オブジェクトには、内部状態の変化を通じてその動作を制御する能力が与えられています。
  10. 副。オブジェクトへのアクセスを制御するための非常に便利なパターン。
第 12 章では、強力なソフトウェア アーキテクチャを構築するために使用できる複合パターン、つまり説明したパターンのいくつかの組み合わせについて検討します。第 13 章では、実際の問題におけるパターンの使用に専念し、パターンの分類、パターンの種類、および使用のガイドラインを示します。この本は第 14 章の付録として機能し、より広範囲のパターンをカバーしています。それぞれが独自の方法で役立つため、知っておくことは非常に望ましいことです。もちろん、第 2 章から第 11 章のパターンほど人気はありませんが、だからといって有用性が低下するわけではありません。この本は、パターン理論を学術的に正確に表現しているつもりはありません。しかし、Head First の本があまりにも詳細に書かれていると、意欲的な開発者は自分で何が何であるかを理解し、基本を明確にする機会がなくなってしまいます。これは、デザイン パターンに詳しくない人にとって、デザイン パターンが何であるかを学ぶための簡単で便利な方法です。 著者によれば、『デザイン パターン』は、すでに Java (または C#) に精通しており、オブジェクト指向設計の原則を学びたいと考えており、退屈な講義よりも活発な会話を好む人に適した本だそうです。この本は参考書ではありません!あなたが経験を持ち、これらのパターンの少なくとも一部を扱うプロの開発者であれば、この本は興味を引くものではないでしょう。この本の重要な要素は演習です。スキップしないでください。この本を注意深く読み、極端な場合にはインターネットで最小限の検索を行えば、問題を解決するのに頭を悩ませることはありません。しかし、必ずメリットはあるでしょう。少なくとも、この本で紹介されている理論を​​より深く理解できるようになります。

長所と短所

JavaRush で学ぶ多くの学生と同様、私も退屈な講義、詰め込み教材、その他知識に飢えた学生の精神に対する暴力に対して冷淡な態度をとります。私の考えでは、理解できない文章を暗記することに費やされるエネルギーは、別​​の学習源を見つけることに最もよく使われます。この本はあなたの時間と労力を費やす価値のある本です。優れたプレゼンテーションスタイル、読者の注意を適切に管理し、重要なポイントを繰り返し説明することにより、この本の主な利点、つまり内容の吸収の容易さが形成されます。イラストが豊富なのも嬉しいポイントです。私の意見では、この本のすべての写真にはそれぞれの役割があり、それらはすべて著者の言葉を強調し、内容の本質をより深く理解することを可能にします。上で書いたように、この本は参考書ではありません。著者はすべてのパターンを列挙するつもりはありません。その主なタスクは、他のより複雑なパターンを理解しやすくするために、基本的なパターンについて理解を示し、説明することです。そして彼女はこれに100%対処します。欠点の中には、ロシア語の Head first デザイン パターンが英語ほど読みにくいことが挙げられます。もちろん、すべての開発者は英語を話す必要がありますが、初心者プログラマは必ずしも原文で本を読めるほど英語のスキルを習得するとは限りません。ただし、資料が非常に正確に提示され、意味が保持されているため、これは強制的なマイナスと考えることができます。

デザインパターンに関するその他の書籍

私は、基本的なトピックをいくつかの情報源から研究し、その中から適切なプレゼンテーション スタイルを探すのが良いという考えを支持しています。パターンを深く掘り下げて追加の理論を読みたいときは、信じてください、あなたは夜を過ごす何かがあるでしょう。
  1. オブジェクト指向設計手法。デザインパターン(Gamma E.、Helm R.、Johnson R.、Vlissides J.)。

    書籍「デザインパターン」(Head First Design Patterns)のレビュー - 2

    これはより本格的な出版物であり、パターンの参考書であり、「Gang of Four」から非常に尊敬されている本です。多くの人がこれを OO デザインのバイブルと呼んでいます。

    インターネット上では、開発者の意見は 3 つの陣営に分かれています。

    • この本は時代遅れで、表現方法が読むのを不可能にしていると主張する人もいる
    • この本をパターンの参考書としてのみ使用することを推奨する人もいます。
    • さらに、この本はデザインパターンの聖杯であり、いつか上級 Java 開発者になりたい人は誰でも読むべきだという人もいます。
    私は 2 番目のグループの支持者です。この本は本当に価値があると思いますが、情報を検索する目的ではなく、開発のために読むのは非常に困難です。

    重要:この本の例は C++ で書かれています。

  2. Java EE。プロフェッショナル向けのデザインパターン(Murat Yeter、Alex Fidom)。

    書籍「デザインパターン」(Head First Design Patterns)のレビュー - 3

    この本はエンタープライズ アプリケーションの設計に特化しており、実際のアプリケーションの問題の多くの例を取り上げています。

  3. Java でのデザイン パターン(Grand M.)。

    書籍『デザイン パターン』 (Head First Design Patterns) のレビュー - 4

    この本は、パターンの使用によって開発者の時間がどのように節約されるかをカラフルに示し、UML 言語の概要を提供し、47 の設計パターンについて説明します。

JavaRush のデザインパターン

JavaRush コースでは、Java Collections クエストのレベル 7でデザイン パターンを学習します。講義12では最も一般的なパターンを取り上げ、講義4ではこのトピックに関する問題を解決します。以下は「自分を強化する」ための興味深い記事です。
  1. カテゴリ、例など、私たちが好むすべてを含むパターンに関する一般的な記事。

  2. パターンに関する 2 つの記事:パート 1 の概要と詳細なパート 2

  3. シングルトンパターンを例として使用してパターンを設計します。

  4. ストラテジー」パターンと「アダプター」パターンに関する記事。

  5. デザイン パターンの概念は UML 図に関連しています。この記事は、UML図が何であるかを理解するのに役立ちます。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION