下林明正のブログ

個人的かつ雑多なブログです。

オブジェクト指向に入門しつつある

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

を読んだ。 入門となっているけど実際には入門書ではなくて、900ページくらいある突っ込んだ内容の本。 この本を通じて十分に吟味されたオブジェクト指向を体系的に学ぶことができる。

オブジェクト指向という考え方が支配的になって久しいけど、現場でのオブジェクト指向のほとんどは我流だというのが実情だと思う。 かくいう僕もオブジェクト指向らしきものは主にオープンソースフリーゲームのコードを読み書きしながら勉強してきた。学校でも勉強したといえば勉強したけど、圧倒的に不十分だった。 そうして欠けていた視点を補ったり、より深い考察を得ることができる。

序盤では良い設計の仕方なんかが書いてあって直接的に参考になる。 モジュール性のあるソフトウェアが満たす5つの原則、なんかはチェックリストとして適宜参照しても良さそう。

後半では良いオブジェクト指向を実現するためにプログラミング言語が備えているべき機能を考察していて、既存の言語に備えられた機能についての納得感を得られるし、一般には備えられていないような先進的な機能から言語の今後について感触が得られる。 個人的にはこれまで多重継承って要らないのではって印象だったけど、これこれこういう理由で必要である、というふうに説明されて「なるほど」となった。

時代柄かところどころでC++を批判していて、C++でついてしまった変な癖を矯正するのにも良いと思う。 例えばC++ではメソッド呼び出しのデフォルトの挙動が静的束縛なのだけど、それがオブジェクト指向的には間違っているということを指摘していて胸のつかえが下りる思いだった。

もちろん良いことばかりではなくて、そもそも900ページも読むのはだるすぎるし、全体的にアカデミックな感じなので展開がかったるい。流行りの技術書のようなインスタントな便利さもあまり無い。デカくて邪魔だし、7500円くらいするので結構高い。

ただ、それでもやはり、職業プログラマならいつまでも我流ではいられない。いつかはこの手の本を読む必要がある。 オブジェクト指向プログラミングが流行って15年くらいは経ってると思うし、ファストファッションのような技術書よりも長く役立ってくれるはず。 正直にいえば僕自身全ページちゃんと読んだわけじゃなくて飛ばし読みした箇所も多いんだけど、それでも読まないよりはかなりマシだと思う。

もう900ページくらいある下巻もあって地獄っぽいんだけど、がんばって読みたいところ。