2019/02/06
結論から言います。
この一冊でオブジェクト指向とは何か?がよく分かります。
sponsored link
オススメのポイント
この本の特徴は、オブジェクト指向についての説明だけに注力しているのではなく、オブジェクト指向が誕生・普及するに至った理由や経緯についてしっかり説明してくれていることです。
クラスとは何か?
カプセル化とは何か?
ポリモーフィズムとは何か?
それらの仕組みの詳細な説明だけでは、オブジェクト指向を理解するのは難しいと思います。むしろ余計に難しくなるでしょう。
オブジェクト指向によって、どんなことが出来るようになったのか? というより、それまでプログラミングの現場でどんな問題があったのか?そのような前提状態を含めて包括的に説明してもらえると、オブジェクト指向の存在位意義から理解することが出来ます。
オブジェクト指向によって何を実現したかったのか?
何の為にクラスを書くのか?
なぜカプセル化するのか?
なぜポリモーフィズムという機能があるのか?
「なぜそうするのか?」というレイヤーで頭を整理することが、オブジェクト指向を理解する近道でもあり、最も重要なポイントだと思います。
「どうやるのか?」といういわゆる実装方法だけを突き詰めても、オブジェクト指向を理解したとは言えません。オブジェクト指向というプログラミング手法は、ただオブジェクトを作ればいいというわけではなく、それをどう使うのか、どういう設計にするのかが重要になってくるからです。
本書はそういう意味で、とても大きな視野で、大きな流れの中で、オブジェクト指向というものの特徴を説明してくれているので、すんなり理解できると思います。
もちろん、具体的なコーディングを例に出して説明してくれているところもあります。そのコードがまた無茶苦茶シンプルかつ核心を突いたコードになっているので、読むのも簡単で非常に理解がしやすいです。
オブジェクト指向についてだけでなく、それを含むプログラミング開発の大きな流れ(歴史)についても項を割いて解説してくれていますが、これは長年、現場で活躍する著者(平澤 章さん)だからこそ書ける詳細かつ壮大な考察となっています。
オブジェクト指向も含め、これまで主流だった命令型のプログラミングとは大きく異る関数型のプログラミング言語についても軽めに解説してくれています(第二版で付け足したそうです)。
関数型プログラミングは、オブジェクト指向の次の開発技術と言われているそうなので、しっかり理解しておきたいところです。
残念なところ
残念と言うほどでもないですが、本書の随所に「”オブジェクト指向は現実世界を全てプログラミングで表現することが出来る”というのは誤り」みたいな説明が出てきます。
個人的には”オブジェクト指向は現実世界を全てプログラミングで表現することが出来る”というのがそもそも「は?」と思ってしまうので、そこを全力で否定されても、特に驚きはしないのですが、とにかく否定されます。読んでいて若干しつこく感じました。
対象読者
全体的に非常に分かりやすい言葉で書かれているので、Javaの基礎的な構文、クラス、インスタンス、メソッドなどの言葉の意味が理解できていれば、すんなり読めると思います。
とりあえずクラスを書いてインスタンス化するってのは分かるけど、何これ面倒くさい。っていうぐらいの人が読めば大幅にプログラミング能力が向上するんじゃないかなと思います。
もちろん、ある程度分かっている人が読んでも、頭の整理として非常に良い読み物だと思います。
間違いないです。
今だけ→転職できなければ全額返金の「エンジニア転職保証コース」
絶対エンジニアになる!→テックエキスパート
フリーランスエンジニアの収入例を見てみる→レバテックフリーランス