書籍名 : Game Programming Patterns ソフトウェア開発の問題解決メニュー
作者 : Robert Nystrom
分野 : デザインパターン、書き方、ソフトウェア開発
注意 : 韓国発売版を読んだので、日本発売版と違いがある可能性あり
はじめに
どうすればコードを実用的に書けるか悩んだ際に選んでみた本でした。特に自分がゲーム好きなのでタイトルだけで選んだと言っても過言ではない。
内容も面白く、デザインパターンの説明の例がゲーム作りです。制限的に見えますが普通にいろんな場面でも考えらる状況があります。
書籍の概要
最初はデザインパターンの説明ではなく、作者が考えているソフトウェア構造の説明で始まります。いい構造と悪い構造、それを直す方法と、またそれがどれだけ難しいことかはっきり説明してくれます。
導入部なので10pほどですが、入門ばかりの私には本一冊以上の価値がありました。
その次にGofデザインパターンにある様々なパターンの基本と応用が待っています。
パターンの説明には 意図、同期、パターン、いつ使うか、注意すること、コードの例等が書かれており、理解に非常に役に立ちました。
例のコードはC++で書いています。
パターンを使えるのが重要じゃない
Androidエンジニアですが実際、今関わっているプロジェクトでも普通に使えました。
でも書けるのが重要じゃなくなぜこのような形のパターンになったのかを理解するのが重要だと、本を読んでる際に気付きました。
最初この本を選んだ理由もコードの書き方に集中したためですが、根本的にデザインパターンの理解をしなきゃいけなかった。
作者はそれをちゃんと説明した上、パターンの書き方を見せてくれます。
パターンの本なのにパターンが万能ではないのを説明している
パターンを通じて管理しやすい構造やいい性能が予測される例を見せつつ、同時に、導入部でも書かれていますが、既存のコードの変更、また「奇麗な構造」の維持にかかる費用があまりにも高く、プログラマが「パターンなんていらないやー」と言いそうな理由を所々説明しています。
パターンの説明の本であり、実際ゲーム開発場面で使いそうな例を挙げていますが、そのパターンについての考察とパターンが起こす新たな問題についてページをもっと使っています。
書き方じゃなく、ソフトウェア工学の本
パターンの説明が目的の本ですが、エンジニアが持つべき考え方を説明しています。
性能と最適化はエンジニアがいつも悩んでる宿題。
デザインパターンの例を見ながら問題を知り、原因を見つけ解決方法を探り、それが「本当にいい解決方法なのか?」のを悩む。
素人の私には本当にいいイメージトレーニングになりました。
最後に
ちょうどソフトウェアエンジニアになった方におすすめします。
書き方中心ではないと書きましたが、例と説明がちゃんとできているので、デザインパターンの勉強をしようと思っている方にもおすすめ。
私も適切な場面ではちゃんと使えるように頑張ります。