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