「オブジェクト指向でなぜつくるのか」という本を買いました。
今までの説明でピンと来てない方、必読です!
「オブジェクト指向でなぜつくるのか」第2版(平澤 章 (著)2011/4/7発刊)を購入しました。
名著と名高い本ですが、その名に違わぬ名著でした!!
今、気が付きましたが、2021/4/15に第3版が出るようです。↓
(※私が読んだのは、第2版です。第3版とは若干内容が違うかもしれません。)
オススメする方
・Python、JavaScript、Rubyといったオブジェクト指向を学ぶ方(私です!)
・オブジェクト指向を学習したけど何が良いのか分からない方(私です!)
・特に、オブジェクト指向のクラス分けの例がピンとこない方(私です!)
オススメしない方
・プログラミング初学者が1冊目に購入する。(おそらく分からないと思います。)
私が書籍から学べた事
・「オブジェクト指向」をどこで使用すべきか?
・「オブジェクト指向」をなぜで使用すべきか?
・「オブジェクト指向」にまつわる歴史、周辺技術、デザインパターン
(ここについては、本書だけでは不十分かもしれません。しかし概念は理解できます)
・グローバル変数、ローカル変数、インスタント変数の正しい理解
(本書の本筋ではないですが重要な気づきでした。オブジェクト指向との関連も大!)
・「ガベージコレクション」ありがとう!!読めば必ず感謝すると思います。
1.外観・分量
私は、本書を電子書籍で購入しました。そのため、サイズ感は分かりません。
コードを写経するようなものではなく、「読み物」としての読めるので、電子書籍で良いと思います。
単行本のページ数は、「368ページ」です。
参考ですが、おそらく平均的な読書スピードの私が5~6時間程度で読めました。
2.内容
内容は、タイトルのとおりなぜ「オブジェクト指向」を使うのか?を解説したものになります。
おそらく、書籍や講座等で「オブジェクト指向」や「class」を学んだときに、何らかのたとえ話や例に基づいて解説があったと思います。
本書では、「動物がスーパークラス、哺乳類がサブクラス」「人は、生年月日という属性をもつ。さらに具体的にはAさんというインスタンスを持つ」といった比喩の例が紹介されます。
著者は、これらの比喩の乱用を、誤解を招く元であるとして否定的な立場を取ります。
面白いのが、最後まで読むと逆にこの比喩がしっくりくる、というより言いたいことが理解できます。
前半は、プログラミング言語の発展の歴史から、「オブジェクト指向」という考えが生まれるに至った背景を解説し、そのうえで「オブジェクト指向」に与えられた役割を説明しています。
後半は、「どのようにしてプログラミング言語が動くか?」「オブジェクト指向の考えから生まれた様々なアイデア」「デザインパターン」といった話題に展開されていきます。
3.ブックレビュー
私にとって、まさに目から鱗となる本でした。
タイトルどおり、「オブジェクト指向でなぜつくるのか」がはっきりと理解できます。
オブジェクト指向の理解の妨げになってる理由として、「専門用語の洪水」を挙げられており、専門用語についてはかなり丁寧に解説がなされているため、かなり読みやすいです。
「オブジェクト指向」の言語を学ぶ方にとっては必読の書であると思います。
「オブジェクト指向」を用いてプログラムを書くだけなら、前半部分だけでも十分かもしれません。
前半部分だけでも大幅に理解を深めることができました。
後半は、応用的な話になり、初心者としてプログラミングを書いている段階ではきちんと理解できませんでした。今後、ある程度いろいろなプログラミングを書いて再読すれば理解できそうです。
また、ところどころ「豆知識」的な内容をおりこんでくれているので、興味深く読めます。
ただし、いくつか注意点もあります。
・本書は、いくつかサンプルコードが出てきますが、Javaで記載されています。
しかし、コードを追いかけるような内容ではないので、内容理解には影響ないです。
(実際、全くJavaが分からない私でも理解できました。)
・「サブルーチン」=「関数」の事です。
上でJavaで記載されているが問題ないと書きましたが、ここだけ詰まりました。
「サブルーチン」=「関数」さえ頭に入れておけば大丈夫です。
あと、第2版は2011年に出されていますが、本書では「人工知能AIは概念としては存在しているが、実行は難しい技術」としてとらえられています。
2021年現在、AIはあらゆるところで応用され、一般用途まで降りてきています。
10年の間にとてつもなく技術が進歩していることが分かりますね。
おそらく第3版では、この辺りの時代の違いを解消しているのだと思われます。
コメント