September 04, 2004

オブジェクト指向でなぜつくるのか

[ ブックレビュー ]

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―』 なにやら売れているとのことで、読んでみた一冊。

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
平澤 章
日経BP社 (2004/06/03)
売り上げランキング: 2,269
通常24時間以内に発送します。
おすすめ度の平均: 4.15
5 とっつきやすいオブジェクト指向
4 とにかく書いていることが幅広く、その上理解しやすい
5 読んで損はない1冊だと思います!

この書籍が解くのはオブジェクト指向の「How」ではなく「Why」。オブジェクト指向で開発する理由を、その利点やプログラミング技術の歴史を背景に論理立てて解説しています。

面白いなと思ったのは、オブジェクト指向プログラミングはソフトウェア開発効率を向上させるプログラミング技術であって、それ以上のなにものでもないと言い切っているところ。つまり構造型プログラミングにクラス、継承、ポリモフィズムという仕組みを持ち込むことで、それまで不可能だったことが可能になったと、あくまで具体的なポイントに的を絞っています。

オブジェクト指向というと、現実の世界をモデリングしてそのままプログラミングに落とし込むための考え方であるとか、あるいは実装を考えずにまずはユースケースからみ値引き出されるクラス構成を考えて...などなど、プログラミング技術を超えたところにその重きが置かれることがおおいのですが、この書籍では、そういった考え方こそがオブジェクト指向をわかりにくくしている原因だと指摘。あくまで実装のための技術だと割り切って使うことで理解が深まるというものでした。

僕が以前に読んだ本ですとまるっきり逆のことが書かれていることも多く、例えば、「オブジェクト指向プログラミングは実装のための技術ではないから、実装を楽するために継承やポリモフィズムは利用すべきではない、現実の世界を投影した意味のあるクラス構成が築けた場合にのみ、継承やポリモフィズムでそれを表現すべき」みたいな論調でした。

僕の感覚的にはどちらも一理あるといったところでしょうか。やはり、実装側の視点から入るかモデリングする側の視点から入るかによって意見は分かれるところなのでしょう。そういう意味では、この書籍は、「オブジェクト指向は実装のためだけの技術ではない」というので頭が凝り固まっている人が読むと、別の視点で物が考えられるようになっていいかもしれません。

なお、後半ではモデリングやオブジェクト指向設計、開発プロセスなど上流工程の話題にも触れていて、オブジェクト指向がプログラミングの枠に囚われない考え方でもあるのだと解説してはありますが、あくまでそれは上流工程に入ってからの話であって、その下のレイヤの場合とで分けて考えるべき、といった論調です。このぐらいの解説の方が、確かに混乱しなくていいのかもしれません。

本質とは若干ずれてしまうのですが、第5章の OOP におけるメモリ利用のロジックの解説は結構秀逸で分かりやすく、Java謎+落とし穴徹底解明 あたりと一緒に読むと理解が深まるかもしれません。

それから、上流工程のオブジェクト指向が云々という話に関しては、憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門 が、この書籍の内容と反対の視点から解説しはじめてゴールは一緒のところにたどり着く本です。二つ合わせてよむと、オブジェクト指向の考え方や全体像がはっきりと見えるのではないかな、と思います。

憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門
Tucker!
翔泳社 (1998/05)
売り上げランキング: 5,416
通常24時間以内に発送します。
おすすめ度の平均: 4.45
5 オブジェクト指向をマスターしたいなら読むべし!
5 オブジェクト指向の知識はこれからの常識に
3 分かりやすい説明で、内容もまとまっているとは思いますが。。。

結論: オブジェクト指向の入門書ではないですが、若干かじった後に読んでみるといい本だと思います。

Posted by naoya at September 4, 2004 05:33 PM | トラックバック (1)  b_entry.gif
トラックバック [1件]
TrackBack URL: http://mt.bloghackers.net/mt/suck-tbspams.cgi/1221
animal porn
Excerpt: zoophilia
Weblog:
Tracked: January 7, 2006 04:56 PM
コメント [1件]

初めまして。毎回NDO::Weblog楽しく見てます。
頑張ってください。

今回の記事を見て少し考えてたのですが、naoyaさん自身のスキルマップというのでしょうか。

それがどこまで広いのだろうかということです。
イケ面ハッカーとはお聞きしているのですが。

よろしければ教えてください。

それではこれからも頑張ってください。

[1] Posted by: tkdktomo at September 5, 2004 12:50 AM [返信]
コメントする









名前、アドレスを登録しますか?