【積読消化シリーズ#2】オブジェクト指向でなぜつくるのか
WRITER
けだま
Javaを中心にぽちぽち書いているサーバーサイドエンジニアです。
いつかフルスタックって言えるようになりたいなあ。
もくじ
「オブジェクト指向は現実世界をそのままプログラムに表現する技術である。」
オブジェクト指向に触れたことがある方なら誰しも、そのような説明を聞いた事があるのではないでしょうか。
初めてこの説明を聞いた時からずーっと、なんか妙にしっくりこなかったんですよね。
「現実世界をそのままプログラムに表現する」ってなに?
実装はもちろん、要件定義や設計でどう活かしていけばいいの?
納得感のないままJavaを触り続けていた私に刺さったのがこの本でした。

オブジェクト指向でなぜつくるのか 第3版
オブジェクト指向は現実世界をそのままプログラムに表現することではない
「オブジェクト指向は現実世界をそのままプログラムに落とし込むことという説明がよくされているが、その考え方は危険だよ」がこの本での一貫した主張です。
え??? 聞いてた話と違うやん。
そう、今まで聞いていた話と180度違うんです。
オブジェクト指向はそれまでのプログラミング言語とはまったく異なる考え方であるような説明がされる事が多いが、実際は構造化プログラミングに残された課題を解決し、もっと楽にプログラミングをするための考え方であり、あくまでも機械語から始まったプログラミング言語の歴史の延長にあること。
「現実世界をそのまま……」という表現は、オブジェクト指向をさまざまなものに応用しようとした結果生まれてしまった誤解であること。
ページを読み進めるほどに、うっすら目の前にかかっていた「なんだかしっくりこない」のベールが一枚一枚丁寧に剥がされていくようで、第4章を読み終わる頃にはオブジェクト指向を見る視界がすっかりクリアになっていることを感じました。
オブジェクト指向の周辺知識も合わせて紹介されている
この本ではオブジェクト指向の考え方の誤解を解くだけではなく、デザインパターンやUMLなど、オブジェクト指向の周辺知識も合わせて紹介されています。
こちらは概要を説明するだけにとどまっていますが、各章の最後に「より深く学ぶための参考書籍」と題して数冊の参考書籍が掲載されており、より詳しくその内容について学びたいと思った時の次の一歩が提示されているのがとても素晴らしいところ。
単に参考書籍のタイトルや出版社が紹介されているだけでなく、それはどのような事が書かれている本なのか、どれくらいの難易度なのかまで教えてくれているので、その中からさらに自分に合った一冊を選びやすい構成なのも嬉しいポイントだなと思いました。
この本をおすすめしたい人
この本は
- Javaなどのオブジェクト指向を採用した言語の入門書を読み終わったばかりの初学者
- 「現実世界を……」の説明を受けたものの、オブジェクト指向について理解しきれていないと感じている人
- オブジェクト指向の周辺知識をより深めたいが、どの本を読めばいいのかわからない人
におすすめです。
特に初学者の方がこの本を読めば、これからオブジェクト指向を使っていく時にクリアな視界で開発を進めることができそうです。
6年前の自分に教えてあげたい。
ちなみに今の私は2に当たる人ですね。疑問を解消するのに遅すぎることはありません。
今が一番人生で若い時ですから、今の段階で読めてよかったなあと感じています。
3は先述の参考書籍があるが故ですね。さらに一歩深く学びたい人にとっては使い勝手の良い本だと思います。
最後までお付き合いいただき、ありがとうございました!
このブログをきっかけにこの本を読んで、オブジェクト指向への理解をより深められますように!
余談:最終章の関数型言語でなぜつくるのかの熱量がすごい
私が読んだのは第2版なのですが、この版で追加された「第13章:関数型言語でなぜつくるのか」のボリュームがエグいです。
他の章は平均して400行(Kindleで読んでいるので、位置No換算です)くらいなのですが、第13章は800行以上あります。倍て。
その大ボリュームの中で、関数型言語の7つの特徴が「え? これで概要なんですか?」というくらい丁寧な文章と図解で紹介されています。
オブジェクト指向を理解するために読み始めたはずが、読み終わる時には「関数型言語やりてえなあ」に変わっています。
この本の裏タイトルは「関数型言語でなぜつくるのか」だったのか。
関数型言語の世界に片足を突っ込みたい人にもおすすめです。