オブジェクト指向でなぜつくるのか 第2版

著者 :
  • 日経BP
3.93
  • (52)
  • (65)
  • (51)
  • (5)
  • (1)
本棚登録 : 960
感想 : 60
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (368ページ)
  • / ISBN・EAN: 9784822284657

作品紹介・あらすじ

オブジェクト指向と関数型言語の本質をズバリ解説。10年後も通用する"基本"を身につけよう。

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • オブジェクト指向とは何なのか、プログラミングの歴史から紐解く良書であった。JAVAをやる前に読んだときは挫折したので、やはり手を動かすことだなあと。

  • オブジェクト指向で作ることのメリットを、オブジェクト指向が生まれるまでの経緯を交えて語っている良書。
    また、関数型言語のパラダイムを最終章で紹介しており、読者の可能性を広げる一冊であるように感じた。

  • 【廃棄予定】

  • これから本格的にアプリ開発を始めるにあたり、上司に勧められて読んだ本

    オブジェクト指向、というもやっとした概念について、理解ができる本。
    読み終えた後は、霧が晴れたように理解ができた。

    平易な文章で書かれており、図も多いので、初心者でも読みやすい。
    Javaを前提に書かれているが、Javaの知識が無くても理解ができる。
    初めて読む技術書としてぴったりだと思った。


    「オブジェクト指向」と「オブジェクト指向プログラミング」は別の言葉であること、
    オブジェクト指向プログラミングの歴史、
    「クラス」「継承」「ポリモーフィズム」というオブジェクト指向プログラミングのコアとなる考え方、
    最後には、今後のトレンドとして「関数型言語」(Haskell)についても書かれていて、
    オブジェクト指向について体系的に学ぶことができた。

  • ざっと目を通したけ。
    興味が湧いてきたときにしっかり読む。

  • オブジェクト指向の歴史と、上流工程と下流工程にわけた説明がされており、整理された本。読みやすかった。

  • オブジェクト指向を学んである程度プログラムを書いたあとに読んだ。前よりも構造的にプログラムを見れるようになった気がする。
    クラス図やシーケンス図の大切さはもとよりなぜそうなっているのかの視点で見れるという意味でも読んで損がない一冊だと思う。
    人類にはオブジェクト指向は早いといっている人もいるが、要は使いようなきがした。

  • オブジェクト指向の入門としておすすめ
    7hくらいで読了

  • 2020/11/7 ★3.5

  • プログラミング言語の入門書が終わった後に読むと良い本
    プログラミングの入門書は、クラスの作成方法や概要には触れているものの、クラスを設計する際の指針のようなものには特に触れていないように思う。
    この本を読むとオブジェクト指向の必然性から、クラス設計の大まかな指針まで理解することができる。(と思う)

  • オブジェクト指向がイマイチ理解できなかったため購入。
    わかりやすい説明で概念が理解できた。後は実際にオブジェクト指向でコードを書いて行きたい。

  • オブジェクト指向について、やさしく噛み砕いて解説してくれている。

  • オブジェクト指向でなぜつくるのか。最初からオブジェクト指向言語のC#でプログラミングをしていた私にとって、これは盲点とも言える問いだった。
    この本では、プログラミングの歴史を追いながら、オブジェクト指向がいかにして生まれたのかを解き明かしていく、ある種歴史書のような内容だ。
    普段意識せずに作成・使用しているクラスや継承の機能も、はじめからあったわけではない。先人たちが悩み抜き、どうしたら人間にも理解しやすく、バグを生みにくく、再利用しやすいコードを書けるのか試行錯誤した結果、オブジェクト指向という考え方が起こってきた。
    比較をするには、他を知らなければならないし、他を知ることではじめて自分の個性がわかる。こうした概念は何にでも当てはまることだけど時折忘れてしまう。この本は、それを思い出させてくれる本でもあった。

  • 機械学習や深層学習のライブラリを使っていく上でオブジェクト指向が頻繁に出てきて、いつまでたっても見て見ぬ振りはできないなと思い、オブジェクト指向を学ぶべく購入した
    この本はCやPython、Javaとかの特定言語におけるOOPを学ぶのではなく、あくまでざっくりとしたオブジェクト指向の概念や歴史、それに付随するあれこれを学ぶものなので、特定言語でばりばりclassとか作りたいって場合は別途その言語でなにかしら作ってみる必要があるように感じた
    概念や歴史自体はとても分かりやすかった 自分はSIerやソフトウェアエンジニアとは近いようで遠い職種だが、そういう職種だよという人にとっては入社して読むべき価値はあると思われる 他の「なぜ〜なのか」シリーズ同様、読むなら若いうちに読むべき一冊


    1章
    なぜオブジェクト指向が難しいのかの解説 基本情報や応用情報で抱いたオブジェクト指向の概念はとても難しそうなものだったが、実際はそんなことないという説明が主


    2章
    オブジェクト指向と現実問題は似てるようで実は違うということ
    そしてOOPの基本要素である3つの、クラス・ポリモーフィズム・継承について説明されていた
    クラスはひとまとまりのメソッドの集約、ポリモーフィズムは呼び出し方の統一で継承は共通点の整理


    3章
    OOPが登場するに至った歴史について
    プログラミング言語は様々な進化を重ねて構造家言語にたどり着き、その上でグローバル変数問題と再利用問題を解決するためにOOPが普及 なおOOP自体はもともとあった概念


    4章
    2章をもう少し詳しく
    サブルーチンやインスタンス変数を一つのクラスにまとめることにより得られる効能について これによりグローバル変数を使わなくて良いのが大きな利点 またインスタンスをたくさん作ることができるようになる
    インスタンス変数は長持ちするローカル変数(もしくは仲間内だけのグローバル変数)のようなもの
    ポリモーフィズムは呼び出す側の処理を統一でいて便利
    継承はクラスの共通部分を別クラスにまとめておく
    またクラスは型指定となるのでプログラマは楽できる


    5章
    OOPにまつわるメモリ操作について
    Javaの中間コード方式により同じプログラムを異なる環境で動かせる(JavaVM)
    プログラムのメモリ領域は静的、ヒープ、スタックの3つ 静的にはプログラム開始時に確保されグローバル変数とか実行可能形式コードを保存 ヒープは実行時に確保 スタックは1スレッドごとに用意されるもので、OOPにおいてはクラスは静的領域にインスタンスに対してはヒープが作られる すなわちOOPは有限のヒープを使って動く
    インスタンスの対応づけのために変数にはポインタが格納される C言語でないとポインタはないように思えるが実際は内部でポインタが動いているので、それを知らないとインスタンスをコピーしようとして誤ることがある
    メソッドテーブルのおかげでポリモーフィズムがうまくいく 継承は本質的にはポインタを頼りにしてデータを見にいってるだけなのでインスタンス変数とは違うメモリ領域内にある
    ガベージコレクタが削除するのはなにからも参照されていないインスタンス


    6章
    OOPを用いて様々なフレームワークができてそれを使うだけという便利な世界になった
    またデザーンパターンというものも誕生した


    7章
    OOPは単なるコードだけの話でなく思考の整理術という上流な技術としても拡張した


    8章
    7章の続きとしてのUMLの説明 基本情報とかでよく出てくる話
    UMLの用途は主に3つでプログラムの構造や動作の図示化、成果物の関係性の図示化、オブジェクト指向で表現できないことの表現の3つ そしてこれらに対応する様々な図がある


    9章
    8章のUMLを利用した要件定義段階でのモデリングについて、ビジネスアプリケーションと組込みソフトウェアの2つの説明 後者は基本情報や応用情報の午後試験でも出てくるやつ
    重要なのはコンピュータが得意な業務とできない業務をしっかり見極めて要件定義段階で振り分けること
    モデリングの目的は業務分析・要求定義・設計


    10章
    少し話が変わってソフトウェアをよりよくしていく方法
    保守性や再利用性を高めるために独立性の高い部品に置き換える そのために分かりやすい名前をつけたり1つ1つのクラスを小さく作ったりする また依存関係の循環を避ける→修理や更新をしやすくするため


    11章
    オブジェクト指向から生まれたアジャイル開発と従来のウォーターフォール開発について
    従来のウォーターフォール開発は要件の変更や技術の急速な進化に追従しづらいためアジャイルが生まれた そしてアジャイルにも色々な形態がある しかしどれが最適というわけでもなく結局は取り扱うものによって最適手法は異なる またアジャイルの1つ?でもあるXPはプログラミングをすごいゆるい形態へと変えて働きやすさを大幅に引き上げた
    アジャイルのプラクティスとしてTDDやペアプログラミングなど ここらへんもFEやAPで頻出なワード


    12章
    OOPだけに終わらず、アスペクト指向やSOAといったものが追従してきている


    13章
    最後に関数型言語について
    これはオプションといった感じの章で、関数型言語の仕組みについての説明があった これは関数の組み合わせだけで表現するプログラミング言語のことLispとかHaskellとか
    関数型言語は名前は知っていたが仕組みや概念は全く知らなかったので楽しく読み進められた 自分が使ってる言語(CとPython)だと関数だけで全てを表現する、変数は二度と変更しないというのは信じられないので驚いた
    引数に関数を適用する仕組みによりOOP的な挙動も再現しているし、条件によって使わない引数があるために実行効率がよくなるらしい また副作用のない式を用いるために分散処理とも相性がいいらしい

  • オブジェクト指向というものは、なんとなくわかりそうでわからないものというものだった。しかし本書ではそういった理由としてむしろ比喩を使っていることや用語の多さが原因だとあり、まさにその通りだと思った。
    またオブジェクト指向が生まれた背景なども知れたので、どうしてこれが優れているのかということまで知れた。
    とても参考になった本。

  • タイトルの通り、「オブジェクト指向でなぜつくるのか」わかる本です。
    オブジェクト指向が生まれる前との比較で書かれているので、オブジェクト指向のメリットがとてもよく理解できました。

  • Memo
    クラス ポリモーフィズム 継承


    クラス:まとめて 隠して たくさん作る

    メソッド:サブルーチン
    インスタンス変数(属性、フィールド):グローバル変数

    Private
    Public

  • オブジェクト指向ではな開発を続けてきた人にとってはオブジェクト指向で作成する利点が明確になりよい本といえる。
    ただ、これからプログラミングを勉強し始める人にとってはオブジェクト指向でない作り方のほうが実感がわかずすっきりしないかもしれない。

  • # 書評☆4 オブジェクト指向でなぜつくるのか 第2版 | 従来の手続き型言語の欠点を解決するのがオブジェクト指向言語

    ## 概要
    書名通り,オブジェクト指向 (OOP) でなぜ開発するのかという疑問に答えるために解説されている。

    大きく4部構成になっている。

    1. OOPが理解しにくい理由
    2. OOPの登場の経緯,仕組み,メモリー管理
    3. OOPを用いた周辺環境
    4. OOPによる設計

    特に,「第3章 OOPを理解する近道はプログラミング言語の歴史にあり」,「第4章 OOPは無駄を省いて整理整頓するプログラミング技術」,「第5章 メモリの仕組みの理解はプログラマのたしなみ」がよかった。

    従来の手続き型言語の問題点を指摘し,その問題をOOPでどのように解決しているのかという視点で,OOPの主要な要素を解説しており,わかりやすかった。

    従来の手続き型言語では以下2点の問題があった。

    1. グローバル変数が必要
    2. 関数単位でしか再利用不可能

    OOPでは,これらの問題をクラスを用いることで解決できるようになった。

    また,メモリの仕組みもよかった。関数はクラスや親クラスで共通であったり,メンバー変数はインスタンスごとに個別などの解説があり,キャストしたときなどにどのクラスの関数・変数が使われるのかという点が理解しやすくなった。

    このメモリ管理のところは,できることならもっと深く,体系的に勉強したいと感じた。

    例えば,新人にOOPを説明することになった場合,この3章から4章の内容を踏まえて説明すればいいのではないかと思った。

    章の末尾には,著者が参考にした書籍も紹介されており,今後の参考になる。

    ただ,個人的には末尾の方のUMLや設計などの説明は不要だった。

    設計の分野においてOOPを適用する場合,どうすればいいか,UMLで現実のプロセスを表現する場合はどうすればいいかなどあって,悪くはないのだが,OOPの理解を深めるうえでは余計に感じた。この点は,他の本で必要になったときに学べばいいかと思い,軽く読み流した。

    ## 結論
    若手の教育を任される場合にOOPを解説するという視点に立ったときに,この本はわかりやすくてよかった。

    他にもOOPの解説本はあったが,自分には今のところこの本の3-5章があっていた。

    パーマリンク: <https://senooken.jp/blog/2018/11/07/>

全60件中 1 - 20件を表示

著者プロフィール

ウルシステムズ株式会社所属。メインフレームによる金融システムからマイクロコンピュータを使った制御系システムまで、いくつかのシステム開発を経験した後、30代前半でオブジェクト指向モデリングとSmalltalk、(Observerパターンの)MVCフレームワークに出会い、衝撃を受ける。その後、技術コンサルティングの仕事を経て、2001年にウルシステムズのスタートアップに参画し、現在に至る。著書/翻訳書:『UMLモデリングレッスン』(著、日経BP)、『リファクタリング 第2版』(共訳、オーム社)、『レガシーコード改善ガイド』(共訳、翔泳社) ほか

「2021年 『オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識』 で使われていた紹介文から引用しています。」

平澤章の作品

  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×