ISBN 9784873119762
Head Firstデザインパターン 第2版 : 頭とからだで覚えるデザインパターンの基本
- 出版社
- オライリー・ジャパン
- 刊行
- 2022-06
概要
GoF デザインパターンをビジュアルと事例で体得する
想定読者
オブジェクト指向設計の考え方を基礎から体系化したいプログラマー。Java を読める程度の経験があり、設計パターンを名前だけでなく判断軸として使えるようになりたい人
こんな人には向いていない
- すでに GoF パターンを実務で使い分けており、より高度なアーキテクチャ(DDD や CQRS)へ進みたい中上級者には内容の密度が物足りない
- 特定言語(Python / Go / TypeScript 等)への適用コードが主目的の場合、サンプルが Java 中心のため読み替えコストが生じる
- 数百ページの技術書を読み通す習慣がまだない人には、672 ページという分量が負担になる可能性がある
読了後にできるようになること
- Observer・Decorator・Factory・Singleton など主要 GoF パターンを、具体的な事例を通して実装レベルで説明できる
- オブジェクト指向の設計原則(OCP・DIP・LSP 等)をパターン選択の判断軸として言語化できる
- Composite・Iterator・State・Proxy など構造・振る舞い系パターンの使いどころと落とし所を区別できる
- MVC アーキテクチャを複合パターンとして解釈し、既存設計にパターン語彙を当てはめて説明できる
- 言語・フレームワーク非依存のパターン語彙を習得し、設計議論で共通言語として使える
本書のキー概念(章解説)
- 第 1 章 デザインパターン入門 — 鴨シミュレーター事例 — Strategy パターンの導入と、継承より委譲を選ぶ理由が一番明確に示される章
- 第 2 章 Observer パターン — 気象観測アプリ — イベント駆動設計の基礎として最も実務に近い事例
- 第 3 章 Decorator パターン — Starbuzz コーヒー
- 第 4 章 Factory パターン — ピザショップ
- 第 5 章 Singleton パターン — チョコレート工場
- 第 6 章 Command パターン — ホームオートメーション
- 第 7 章 Adapter・Facade パターン
- 第 8 章 Template Method パターン — コーヒーと紅茶
- 第 9 章 Iterator・Composite パターン — レストランメニュー
- 第 10 章 State パターン — ガムボールマシン — 状態遷移をコードで表現する方法論として評価が高い章
- 第 11 章 Proxy パターン
- 第 12 章 Compound パターン — MVC アーキテクチャ — 複数パターンの組み合わせとして MVC を解説する。読了後に最も評価が変わる章の一つ
- 第 13 章 実世界でのパターン適用 — アンチパターン含む
- 第 14 章 付録: その他のパターン(Bridge / Builder / Chain of Responsibility 等)
ハイライト
- デザインパターンを学ぶことを通して、オブジェクト指向で再利用しやすいプログラムを書くために必要な考え方を知ることができる。言語やフレームワークに依存しない原則を学べる点が全開発者に共通する価値だ(言語非依存の設計原則という本書の普遍的な価値を端的に表している)
- イラストや写真を使ってやさしく楽しく解説する人気の Head First シリーズのデザインパターン編。初めて学ぶ方、過去に挫折した経験のある方、知識を確固たるものにしたい方を対象に(書籍のターゲット読者と学習スタイルが最も端的に出ている記述)
外部からの言及
- iOS・Swift 系のエンジニアが設計力向上のために参照する書籍として頻繁に挙がっており、特に個人開発者のノウハウまとめ記事で言語非依存の設計原則本として位置付けられている(qiita)
- ソフトウェア設計・アーキテクチャの学習ロードマップ記事では、GoF 直読みの前段として本書が Stage 4-5 に位置付けられており、設計原則とパターンの橋渡し役として評価されている(qiita)
- チームの輪読書として採用されるケースがあり、実装例を発表形式で共有する学習形態と相性がよいとされている。リファクタリング第 2 版と並んで選ばれた実績もある(qiita)
- 史上最も推薦されているプログラミング本まとめ記事では第 5 位(推薦率 29.4%)にランクイン。初学者・再学習層・知識を確固にしたい層という三段構えの読者設定が評価されている(qiita)
編集メモ
Qiita 言及 9 件 / 累計 likes 約 2,407。最大 likes 記事(1,539)は iOS 開発ノウハウまとめで設計書の筆頭として紹介。ソフトウェア設計学習ロードマップ記事(477 likes)でも Stage 4-5 の必読資料に位置付けられており、プログラミング推薦書ランキング記事では上位 5 位(推薦率 29.4%)と高評価。2005 年初版から 2022 年改訂版まで長期にわたって継続的に言及されている
読む前に押さえておきたいこと
- Java もしくは別の静的型付けオブジェクト指向言語でクラス・インターフェースを使ったコードを書いた経験
- 継承・ポリモーフィズムの基本概念(知識としてあれば十分で深い理解は不要)
学習のコツ
- 1 章(Strategy パターン)は設計の根幹となる委譲と継承の使い分けを示す。ここで腑に落ちなければ他の章に進む前に立ち止まるのが効果的
- 2 章(Observer)と 10 章(State)は現代的な UI フレームワーク・状態管理との対応が取りやすい。使っているフレームワークの実装と照らし合わせながら読むと理解が深まる
- チーム輪読に向いている構成で、各章が独立した事例を持つため担当章ごとに発表形式をとれる
- 14 章(付録)は Bridge・Builder・Chain of Responsibility 等の補足パターン集。通読後の辞書的な参照に活用できる
- Java のサンプルコードを自分が普段使う言語に書き直す演習を並行すると、パターンの言語非依存性を実感できる
出版社による内容紹介
ビジュアルで学ぶデザインパターン。ロングセラー待望の改訂版! 2005年の発刊以来、15年にわたって売れ続けている定番の待望の改訂版です。イラストや写真、会話調の説明を使ってわかりやすく解説する人気のHead Firstシリーズのデザインパターン版で、入門書として不動の人気を誇っていますが、このたびJavaのバージョンアップや現在の状況に合わせて全面的にアップデート。第1版と同様に、抽象的でわかりにくい概念も、豊富なイラストや、身近なもののたとえで難なく理解でき、例題を通して、オブジェクト指向プログラミングの考え方を身につけることができます。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。