Javaデザインパターンハンドブック
2006年8月28日(Monday) 12:09am Java プログラミング 書評プログラマーの経験知であるデザインパターンを利用して効率的な設計を得るためのリファレンス書。なかなか合理的に出来ていて感心してしまった。
『Javaデザインパターンハンドブック (Technical Handbook Series)』
細谷 竜一 矢野 令
まず、デザインパターンとはどういう場面で使うべき知識なのかがこの本を読むと良く理解できる。
冒頭の10ページ程度で概要を説明しているのだが、ここに掲載されているわずか数枚の図が非常に重要。
まず、プログラム設計を行う際にデザインパターンを利用することで、効率的な設計と実装方針がコーディング一歩手前まで決定できることが分かる。
さらに23種類紹介しているデザインパターン間の相互関係を明らかにしていることで、リファクタリングの戦略的な手順を知ることまでできる。
タイトル通り実装言語としてJavaを採用してはいるが、テーマは設計だからJava以外のプログラマにもそのまま役立つ内容と言える。
僕自身、この本を読んでいるのはPHPで書かれたDrupalの設計を理解するため。DrupalはPHP4のオブジェクト指向機能が弱かった(これは有名)ために、自前で設計にデザインパターンを活用することで、拡張性や効率性を確保している例だ。
デザインパターンの良いところは、設計の経験から得られたノウハウを反映して実用的な知識になっている点。この本を読んでいく中でひとつひとつのパターンをつぶさに見ると「さすがに闇雲じゃないな」と感心する。
リファクタリングの過程を追うように書かれているので、実際に何が改良されるのかを具体的に理解して納得できる。そういうことをいくつかのパターンで追っていくと、数十程度のパターンでけっこうな範囲の設計をカバーできることに気づく。
そして、そういう実装レベルの知識を地道に積み重ねることが、現実にプログラム設計をする中で正しい直観を素早く生み出す近道になると思う。
『インポッシブルシンキング』など脳科学関係の本を読むと、創造的と思われている思考活動であっても結局は記憶のパターンを当てはめていることに気付く。人間の記憶の持ち方はコンピュータとは違うので一対一の機械的置換ではないが(記憶と思考のメカニズムは『考える脳 考えるコンピューターが詳説している)。
古典的なプログラミングの上達法として「ソースを読め」というのがあるが、これはそういう観点で有効だろう。それを一歩押し進めて、有効な実装集としてのデザインパターンを身につけることが上達スピードを加速しうると思っている。
2台同時USB充電「モバイルクルーザーツイン」
ロウアーミドルの衝撃
Javaデザインパターンハンドブック
インポッシブル・シンキング 最新脳科学が教える固定観念を打ち砕く技法
ほぼ日刊イトイ新聞の本

2007年5月28日(Monday) 06:51am
PHPによるデザインパターン入門…
初めてこの本を見かけたとき「PHPにもこんな本が出て来るのか」と軽く衝撃を受けた。デザインパターンの原典GoF本(Wikipediaのデザインパターンの項に概略あり)の各パターンをPHPでどう実….