O'Reilly の「HeadFirst オブジェクト指向分析設計」を読んでみた。
オブジェクト指向について、
分かっているつもりであまり分かっていなかった
ということに気付かされました。
ソフト系の開発に携わる人には、例外なくお勧めしたい。
詳しい内容は続きをどうぞ。
こんな人にお勧め
読む前の前提知識
JavaやC#を知っている読者が対象とされていますが、
読んでみた感じでは、特に知らなくても問題ないと思います。
(実際、自分はJavaについて知りませんし、C#も触り程度しか知りません。)
どちらかというと、次のことの方が重要だなと感じました。
これまでにソフトウェアをいくつか作ったことがある。
こういう人なら、言語の壁はあまり問題にならないでしょう。
独特のHeadFirst調
O'ReillyのHeadFirstシリーズは、かなり読む人を選ぶと思います。
というのも、単に説明を並べるだけではなく、
実際に本の中の人が、こちらに語りかけてきます。
あるいは、本の中の人が動き回っている様を、客観的に見ます。
Amazonの中身検索などで、購入前にチェックしておいた方がよいでしょう。
(自分は、HeadFirst調が大好きです。)
名前の通り、設計に関するノウハウが詰まっている
流れとしては、次のように構成されています。
- こんなソフトを作ってくれ、という依頼がくる。
- 設計を行う。
- うまくいかない。
- ノウハウの紹介、適用。
- 成功。
- 顧客は大喜び。
大事なのは、「設計を行うがうまくいかない」というバッドケースと、
「ノウハウの紹介、適用により、成功する」というグッドケースが含まれている点。
特にバッドケースは、読んでいても「これでいいんじゃないの?何がダメなの?」と思えるような、
現実に起こりがちなバッドケースも多く含まれており、
「うまくいかない」という例を見て、納得させられます。
その上で、「では、どうすればよいでしょう!考えてみてください。」と
読者に対して解決を迫ってくるのですが、
簡単に解決できる読者なら、きっとこの本は必要ないでしょう。
悩んでも、解決できず、次のページをめくります。
すると、そこには、ヒントが書かれています。答えはまだ先です。
ヒントを参考に考えて、それでも解決できないときは、さらにページをめくります。
そこで初めて、ノウハウの紹介が出てきます。
このように、「問題提示」→「考える」→「ヒントの提示」→「考える」→「ノウハウの提示」→「考える」
といった具合に、考える部分がとにかく多いので、読み切るには結構な時間がかかるでしょう。
しかしその分、仮想体験的な実体験として、記憶に残りますし、
実践環境でも生きてきます。
具体的な良い点
- 新規ソフトウェアの開発において、どこから手をつけていいのか分かるようになる
- オブジェクト指向分析設計により、拡張性・変更容易性が格段に上がる
- 大きなプロジェクトもこなせるようになる
- 設計に関して必要な資料を作成することができるようになる
- 複数人での開発において、分担作業がやりやすくなる
身近にオブジェクト指向について詳しい人がいる場合は、
分からないことがあってもすぐに聞けるので、吸収が早いでしょう。
負の財産に気付く
今まで書いてきたコードが、実は負の財産であった(あるいは、負の財産になりかねなかった)ことに
気付くこともできました。
あなたの書いているそのコードは、他の誰かを苦しめていないでしょうか。
少しでも不安な方は、後ろからグサリと刺されないように、良い設計を心掛けましょう。
現場に1冊、できれば手元に1冊
現場に1冊あれば、みんなで共有して読めますし、
必要に応じて、ノウハウを参照することもできます。
手元に1冊あれば、好きな時に読み進めることができ、
多くのことを自分のものにすることができるでしょう。