Game Programming Patterns を読んだ
デザインパターンの分かりやすい解説書だと、どこかで聞いたので読んでみた。
タイトルに「ゲームプログラミング」が入ってるが、 ゲームプログラミングらしいグラフィクスやAIの話があるわけではなく、 徹底的にソフトウェアアーキテクチャの本である。 ただ、サンプルにはゲームの例(キャラクターがいてコントローラからの入力を受けて動く等)があるので 一切ゲームに触れたことがない人には難しいかもしれない。 そんな人は滅多にいないと思うけど。
自分はこれまでデザインパターンを体系的に学んだことがなく、 業務でも「なんかしっくりこないな〜」という感じがよくあったのだが、 この本を読んである程度は整理ができた気がする。
特にパターンごとに提示される具体的な例が秀逸で、 安直な方法がどういう点で行き詰まるのかを先ず見せてくれて、その上でデザインパターンでどのように解決するのか、という展開があるので、 パターンの意義がとても納得しやすかった。
終盤にある最適化のパートが、ハードウェアアーキテクチャに少し踏み込んだ話で、 おそらくデザインパターンの本にしては異質なんだろうけど、そこがまた面白かった。 クラス間の疎結合に設計しても、パフォーマンス向上のために クラスを解体して結合を一部復活させるとか、そういう泥臭い話があった。 そういった例でも、オブジェクト指向に反するように見えつつ本質的には疎結合が保たれていて、 デザインパターンを習得するというのは、形式的なクラス図が描けるということ以上に、 そういうセンスを磨くことなんだろうなと思った。