あらすじ
『オブジェクト指向でなぜつくるのか』10年ぶり、待望の改訂第3版!
「これからの10年も通用する基本」を、より多くの読者に身につけてもらうために改訂しました。
現在のソフトウエア開発技術の主役である、オブジェクト指向の全体像とそこに含まれる各技術を平易な文章で核心をズバリと解説します。
生産性のかぎを握るプログラム開発の主要技術をわかりやすく教えるという位置づけは変わりません。
そのうえで「今ドキのOOP」として人気言語(Java、Python、Ruby、JavaScrpit)の最新動向を新たに盛り込んでいます。
もちろん、すべての文章を細かく見直して現況に沿うよう更新しています。
本書の特徴
◆オブジェクト指向(OOP)の全体像と特徴がわかる
◆OOPのプログラムが動く仕組みが具体的にわかる
◆関数型言語の本質とOOPとの関係がわかる
◆アジャイル開発手法と実践手法がわかる
感情タグBEST3
Posted by ブクログ
構造プログラミングの延長にオブジェクト指向プログラミングがあるという感覚がまったくなかったため、本書を読んで大変勉強になった。
私が初めてオブジェクト指向に触れたときは、カプセル化によって完結になる、継承によって似たオブジェクトを楽につくれる、のような新らしいことだけを聞かされ、構造プログラミングとはまるで別もののように感じていた。
しかし、本書を読んでみれば、カプセル化は、構造プログラミングのグローバル変数の問題を解決するために、その変数とそれを操作する関数のスコープを設定したものであるという説明が、継承、ポリモーフィズムは、抽象化したクラスを扱うことにより、構造プログラミングでは毎回コピーペーストして書き換えていたような違いを吸収するための関数を個別に作成する必要がなくなるという説明など的を射た解説があるため、オブジェクト指向というものについて構造プログラミングから地続きで理解することができた。
また、フレームワークという仕組みは、ポリモーフィズムなど継承が可能であるからこそ成立しているという話は、新鮮で大変納得した。
また、関数型プログラミングについての簡単な解説もついており、これもまた構造プログラミング→オブジェクト指向プログラミングと続いてきたものであり、ポリモーフィズムを別視点から実装していることなどが理解できて、よい補足だと感じた。
UMLの説明は、Languageであることが重要で、二次元を利用して設計を話すためのツールだという認識を持てたのがよかった。
オブジェクト指向を扱う初学者には、是非一読してもらいたい書籍で、今後人に勧めていきたいと思った。
Posted by ブクログ
オブジェクト指向の概要についてまとまっている。だいたい今のエンジニアはオブジェクト指向に一度は触れると思うので、この本はとりあえず読んでおく、はしておいても良さそうに感じた。
特に、オブジェクト指向が台頭してくるまでの歴史の話は、ハードウェアの進化が大きく関わっていると知らなかった。こういった歴史を知ることは好きなので、楽しく読めた。
現代は実行効率を気にしなくてもある程度大丈夫な分、よりわかりやすさと変更のしやすさを重視したソフトウェア開発が必要。日々良いコードとは何か、を念頭に置いて開発する。
各章には、その内容をさらに詳しく知りたい方向けに書籍の紹介もあるので、自分が気になった章は深掘りすることもできる。
Posted by ブクログ
OOPは業務でも使うしそれなりに勉強したので内容はスルスル入ってきた
しかし初学者にとっては多分しんどい内容なので頑張れ
他の人に教えることを前提に読んでいたので参考になる点が多々あった
OOPの概念を説明するのにあるあるな例(設計図と車みたいな)が出てこなかったのも良い
OOPを理解してるとわかりやすいと感じるかもしれないが自分も初見の時は全然ピンと来なかった覚えがある
UMLについてのパートで図解の威力を理解した気がする
特に非エンジニアと話すときに便利というのはピンときた
Posted by ブクログ
これは当時は難解で分かった様な分からない様なだったが、今になって本質が腑に落ちた気がする。今更あまり使い道があるとは思えないのが残念だが。
もしかしたら当時はなかったローコード、ノーコードというのもこの思想の延長線上にあると考えると結構その土台がはっきり見えてくる気がする。
Posted by ブクログ
オブジェクト指向言語でおさえておくべきポイントが網羅的に解説されており、自らの知識の再整理には役立った。またUMLやアジャイル開発等、オブジェクト指向言語と親和性のある開発関連の手法等についても触れられており、現代の開発の全体像や概念の理解には役に立った。あとはリアルな開発の実践の中で、これらの手法や考え方とのリンケージをとりながら、自ら消化していくことが大事。今後そのような実践機会があれば、適宜手に取って復習するべき書籍となろう。
Posted by ブクログ
オブジェクト指向を単に利用するのではなく、何のためにどうやって利用すべきかを教えてくれた本である。
今まで漠然的にクラスやインターフェイスを作っていたように思うが、過去との背景や歴史を知ることで、よりSOLID原則を守る必要性を感じた
Posted by ブクログ
オブジェクトと現実は似て非なるもの
インスタンスが帰属するクラスは一つ
機械語→アセンブリ言語→高級言語→構造化言語→オブジェクト型言語OOP
FORTRANって1957年、COBOLって1960年なんだ。コンピュータの普及で人が足りないから構造化プログラミングでプログラミングの生産性や品質を上げたらしい。
構造化言語では、goto文の乱用やサブルーチンの独立性を高めたものの、グローバル変数として使えないし、あんま言及ないけど再利用が貧弱。
エドガーダイクストラが構造化プログラミングを提唱。GOTO文ってわかりづらそう。
プロシージャってサブルーチンのことなの
関数や副手続もそうらしい
型を決める理由
整数型は32ビット、浮動小数点型は64ビットのように型によって、コンパイラが必要なメモリの計算が可能になる
プログラムのエラーを防止できる
OOPで追加された機能
パッケージ、ガベージコレクション、例外
廃止された機能
明示的なポインタ、共用体、グローバル変数、マクロ
機械語のコードは異なる環境のハードウェアに配布して動かすことは基本できない
インタプリタ方式の場合はマシン環境に合うように解釈しながら実行するので、おなじぷろぐらむをへんこうせずにふくすうこかんきょうをうごかすことができる
JAVAやC♯はコンパイラ方式でもインタプリタ方式でもなく、中間コード方式を採用している
Posted by ブクログ
この本に書かれていることは知らなくてもコーディングはできるけど、知っておいて損はないという内容が書かれています。
普段オブジェクト指向でこれ使ってるけど何でこれが必要なんだろう?って疑問を解決してくれると思います。
技術習得としては優先度は低い本だとは思うけど、覚えると言うより読む本なので息抜きとか余裕があったら読んでも良い本だと思います。
Posted by ブクログ
オブジェクト指向に至るパラダイム変化の歴史がわかりやすく書かれていることが良かった。OOPにおけるメモリ領域の使い方の説明は、プログラミング言語としての機能の具体的なイメージをうまく与えたと思う。
オブジェクト指向の仕組みを上流工程に適応することで、モデリングや設計おきの影響与えたということはわかった。ただUMLついてはもう少し深掘りしても良いのかなと感じた
Posted by ブクログ
オブジェクト指向に対して、きちんと理解していなかった。本書で概要を掴むことができたのはありがたい。
様々な設計書の説明の項目は難しくて理解できなかった部分もあるけど、それはまた機会があれば読み直してみたい。