大人になりたくない

プログラミング系。最近は主に vvvv 。

デザインパターンを正しく理解するための本リスト

パターン、オブジェクト指向といわれてピンと来ていないが興味はあるので勉強してみたいという人向け。
胡散臭いネットでの解説や本も多いので、ここに自分の読んだ中での良本をまとめるので正しくパターンを理解してほしい。
また、パターンを理解する、という事はオブジェクト指向の良質な例を知れる、ということなので、オブジェクト指向の理解が早い。(これは、何かの調査結果だったか論文を読んだ事がある。)

まずは「デザインパターンとともに学ぶオブジェクト指向のこころ」を最初に読むべき。

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

オブジェクト指向の中心となる"抽象化"について理解する事が出来る良本。
まさに"オブジェクト指向のこころ"が正しく理解できる。
デザインパターンはこの抽象化された設計達から、見つけ出されただけの物。


その後、「オブジェクト指向に置ける再利用のためのデザインパターン」を読む。
これがいわゆるGoF本。

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

GoFGang of Four) のデザインパターンは共通の語彙として普通に使われるので把握しておく必要がある。


デザインパターンとともに学ぶオブジェクト指向のこころ」を読んでいれば GoF 本はすんなり心が理解できると思うが、もう少し優しいものが欲しい人は、
結城先生の「Java言語で学ぶデザインパターン入門」が読みやすくておすすめ。

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門


次は「プログラムデザインのためのパターン言語」
いわゆる PLoP(Pattern Languages of Programs workshop)本。
PLoP というワークショップに提出された秀逸なデザインパターンをまとめたもの。
知っているパターンも多いと思う。

プログラムデザインのためのパターン言語―Pattern Languages of Program Design選集

プログラムデザインのためのパターン言語―Pattern Languages of Program Design選集

次に「ソフトウェアアーキテクチャ ― ソフトウェア開発のためのパターン体系」。
いわゆる POSA(Pattern-Oriented Software Architecture)本。

ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

これはアーキテクチャパターンデザインパターンよりも規模が大きいパターン)も書かれている。
これも知っているパターンがあると思うし、読んで面白い。

最後に「パターンハッチング」。
GoF の1人、ジョン・ブリシデスの著書。

パターンハッチング―実践デザインパターン (Software patterns series)

パターンハッチング―実践デザインパターン (Software patterns series)

  • 作者: ジョンブリシデス,John Vlissides,永田渉,長瀬嘉秀
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 1999/11
  • メディア: 単行本
  • 購入: 1人 クリック: 5回
  • この商品を含むブログ (10件) を見る
これは読み物としてもすごい面白い。
デザインパターンについての誤解を解いてくれる。


とりあえずこの5(+1)冊を読めば、とりあえず会話についていけると思う。
パターン言語についての理解も重要だけど何に書かれていたかな。おすすめを思い出せば追記。
イディオムパターンについてとりあえず除外。

オプションの読み物として、「時を超えた建設の道」と「パタン・ランゲージ」。
デザインパターンの起源となったアレグザンダーの著書。
上の本に何度も出てくると思うので、気になる人は読みましょう。

時を超えた建設の道

時を超えた建設の道

パタン・ランゲージ―環境設計の手引

パタン・ランゲージ―環境設計の手引

結構店頭で探すのに苦労したので、大きい本屋にしかないかも。

洋書になってしまうけど「Holub on Patterns」もおすすめ。

Holub on Patterns: Learning Design Patterns by Looking at Code

Holub on Patterns: Learning Design Patterns by Looking at Code

重複しているパターンも結構あるけど、読んで損はない。



あとはマルチスレッドでもクラウドでも、それぞれのドメインに応じたパターン本を読んでいけば OK 。
正しく抽象化された設計、テスト、リファクタリング、が上手に組み合わされた開発のリズムはとても心地良いものなので、テスト、リファクタリングについての本はまた後日気が乗ればまとめてみよう。