中古で高値で買ってしまったんですけど…
人気書籍で中古市場で値が高騰していた「オブジェクト指向のこころ」が3月より再販されています。
概要
本書はまずなぜオブジェクト指向プログラミングが必要なのかを説明してくれます。
システムには変更が発生する → だから凝集度を高く、結合度を低くしておく
凝集度、結合度はクラス設計を行う際に必要な概念で、これを理解しているかしていないかでクラス設計時に「このフィールドをどこに追加するべきか…」「このメソッドを…」という判断がつけやすくなります。
このようにオブジェクト指向の必要性をまずはざっと再確認します。
このようにオブジェクト指向の必要性をまずはざっと再確認します。
次にクラス図の記載に使用するUMLの再確認。
そして問題のあるシステムの紹介。
オブジェクト指向を適用してその問題を解決する方法など。
オブジェクト指向を適用してその問題を解決する方法など。
そして本題のデザインパターンです。
紹介されているパターンは12程度ですが、Facade, Adapter, Strategy などの重要パターンを厳選して紹介しており、そのパターン採用に関する考察や適したシステムの紹介なども記載されています。
デザインパターンの合間にはオブジェクト指向に対して視野を広げる考え方や、エキスパートがどう設計するかの解説、などなどとても興味深い内容になっています。
感想
Javaでオブジェクト指向に初めて手を出した状態でデザインパターンどころかUMLすらふんわり程度しか知らない状態だったので、導入部分(1,2章)から正にジャストフィットな内容でした。
まずこの書籍の特筆すべき点は、「デザインパターンを事実に則した流れで解説している」というところです。
- 最初にとあるシステムの問題を定義します
- その解決策を考察します
- こういう形に作れば(直せば)解決すると判断します
- そして答えがでます
「その形ならあるじゃないかこのパターンが!」
という一般的なデザインパターンの解説書の逆をいく流れです。
デザインパターンの書籍で多いのは、
デザインパターンの書籍で多いのは、
「このパターンはこういう形だからこういう時に使う」
というまずはパターンありきの解説ですよね。
実際の仕事ではまずシステムの大枠や流れを考えるので当然この書籍のようなアプローチになりますから、 流れを逆にして考えなくていい、というのはとても大きい事だと思います。
自分が考える際の思考回路と同じ流れで読み進められますから。
とはいえ、デザインパターンの紹介部分ではこういう時に使う、という説明もちゃんとなされています。
上記のように仕事の流れに添って解説している部分は実際のシステムの問題を解決していくくだりで採用されている手法です。
自分が考える際の思考回路と同じ流れで読み進められますから。
とはいえ、デザインパターンの紹介部分ではこういう時に使う、という説明もちゃんとなされています。
上記のように仕事の流れに添って解説している部分は実際のシステムの問題を解決していくくだりで採用されている手法です。
そしてそれだけではなく、著者がシステムをいくつも作成する上で得た、
- こういう時はこう考える
つまりまるで経験豊富な先輩から(事実著者はそうだと思いますが)実例を交えてオブジェクト指向や設計、デザインパターンに関しての考察やノウハウ、重要性や注意事項を順を追って教えて貰っているような気持ちになります。
全編に渡ってコード例が記載されている類の書籍ではなく、あくまで「なぜこうなのか」「なぜこうするのか」「なぜこれが必要なのか」という概念を理解するという立ち位置の書籍です。
とはいえ、必要箇所ではコード例もありますし、クラス図も記載されていますのであまりに情報が不十分で何が書かれているか分からない…という事にはなりませんでした。
とはいえ、必要箇所ではコード例もありますし、クラス図も記載されていますのであまりに情報が不十分で何が書かれているか分からない…という事にはなりませんでした。
ただ実際業務でのシステム例が出てきたりしますので、開発者経験のある方じゃないと少し難しいかも知れないですね。
個人的にはオブジェクト指向を説明する時に車クラスだなんだと変な喩えをされる方が分かりにくいので、実際の例に基づいたこの書籍はかなり理解が進んだと思います。
0 件のコメント:
コメントを投稿