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

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

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • オブジェクト指向に対してやんわりと持っていた恐怖感がほんのりとなくなった。
    技術書にありがちな良くわからない説明でなく、なぜオブジェクト指向が良くわからないものとして扱われているのかを丁寧に解説していて読んでいて楽しかった。

  • ・データが意図しないところで書き変わるのを防ぐ=カプセル化(グルーバル変数の排除)

    ・修正範囲を減らすことができる=継承(共通部分のスーパークラス化)

    ・呼び出し元を統一することで、修正範囲を減らすことができる=多態性(スーパークラスを型に指定することで、インスタンスがどのサブクラスから生成されても良いようにする)

  • オブジェクト指向でなぜつくるのかについて述べられている本。とても、興味深く読みやすかった印象が強い。
    コーディングレベルでオブジェクト指向を活用するというより、オブジェクト指向ってなに、オブジェクト指向の特性、利点などが分かりやすく書かれている本。
    オブジェクト指向について気になる方は一読の価値あり!

  • プログラミング言語に関する別の本を読んでいたときに、暗黙の前提として以下のことが読み取れました。

    ・Javaが最強の言語として一世を風靡している時代があった。
    ・Java(や、オブジェクト指向言語)最強時代が、終焉を迎えつつある。

    そこで、

    どうしてJavaは一世を風靡しえたのか?
    どういう背景で、Javaが登場したのか?
    そもそも、オブジェクト指向ってなんなのか?

    ・・・という疑問に答えてくれそうだ! と思い、本書を読んでみたところ、あたりました。

    「オブジェクト指向は、当初はプログラミング言語の仕様(技術)として登場し、
    その後、設計や要件定義などの整理術としての使われ方もするように変遷していった。」

    という説明に、ナルホドと思いました。

    Javaのオブジェクト指向ならではの言語仕様を、COBOLやCと対比させながら説明してくれているので、

    Javaが専門ではない人にも楽しく読めると思います。

  • 概念は分かった。

  • 現実世界とオブジェクト思考は違う
    ・インスタンスが帰属するクラスはただ1つ
    →たい焼きとたい焼き機が正解

    プログラミングの仕組みと割り切って覚える
    ・クラスは変数とサブルーチンをひとまとめにして独立性の高い部品を作る仕組み
    ・ポリモーフィズムト継承はコードの重複を排除して、汎用性の高い部品を作る仕組み
    ・インスタンスは実行時にインスタンス変数をヒープ領域に展開したものであり、この仕組みにより、クラスのロジックをシンプルに保つことができる。
    →これらを使いこなすことで、保守に強く再利用しやすいソフトウェアを作ることができる

    システム化の範囲
    →ソフトウェアが現実世界の仕事をどこまでカバーするのか?
    →人間の仕事の一部
    →一部とは?
    →コンピュータが得意なこと
    →覚える仕事
    →→大量の情報を記憶してそれを瞬時に取り出す
    →決まり切った仕事
    →→計算など

    サブルーチンの独立性のを高めるためには
    →メインとサブで共有する情報を少なくする(グローバル変数)
    →ロジックは追えばわかるが、変数は一目では分かりづらい、しかもその中でグローバル変数はどこからでもアクセスできるため、デバッグの際、変数の内容がおかしかった場合、全てのソースを調べなければいけない。

    機械語

    高級言語

    構造化言語
    それでも、
    ・グローバル変数があると保守性が悪い
    ・サブルーチンしか再利用できない

    クラスの効能
    ⑴まとめる
    結びつきの強い、複数のサブルーチンと複数のグローバル変数を、1つのクラスにまとめることができる
    ・部品の数が減る
    ・メソッド(サブ)の名前付けが楽になる
    →クラス内で一意なら良いため
    ・メソッド(サブ)が探しやすい

    ⑵隠す
    クラスに定義した変数と、メソッドを他クラスか、隠すことができる
    ・プログラム保守悪化の元凶となるグローバル変数を使わずにプログラムを書くことが可能

    ⑶たくさん作る
    一旦クラスを作ると、実行時にそこからいくつでもインスタンスを作ることができる
    これにより、同種の情報を複数同時に扱う処理であっても、そのクラス内部のロジックをシンプルにできる

    インスタンス変数の性質
    ・別のクラスのメソッドからアクセスできないように隠せる
    ・いったんインスタンスが作られると、必要なくなるまでメモリ上に残される
    →長持ちするローカル変数、仲間内だけのグローバル変数
    →同じクラス内のメソッドからのみアクセス可能と指定できる

    グローバル変数
    →どこからでもアクセス可能、便利だけど、保守性悪い

    ローカル関数
    →保守性よいが、サブルーチンさんに渡せないので不便

    ポリモーフィズムはサブルーチンを呼び出す側のロジックを一本化する仕組み
    →共通メインルーチンを作る仕組み

    継承
    ・似た者同士のクラスの共通点と相違点を整理する仕組み

    型にはめられるとプログラマは楽になる

    型を宣言する理由
    ・メモリ領域を節約するため
    ・エラーを防止するため
    →配列から浮動小数点の引き算など、変なロジックが書かれた時にコンパイルエラーとする

    型としてのクラスにできること
    →変数定義、メソッドの引数、戻り値の宣言など

    パッケージ
    ・クラスをまとめる仕組み
    ・ディレクトリのようなもの
    ・名前の衝突を全世界で避けることができる
    →インターネットのドメイン名みたいな形で決まってる
    →→他の組織や国で作ったどんなクラスも、重複せずに使える

    例外
    →いままでは、エラーコードを使っていた
    →→この場合は1,このエラーは2など
    しかし、アプリで確実に実装しなければいけない点と、修正、削除の時に、関係サブルーチンを全て直す必要がある
    →エラーコードの判定ロジックが複数のサブに連鎖する

    例外処理のメリット
    ・例外の宣言や後処理を書き忘れた場合、コンパイル時または実行時にエラーになる
    ・後処理の必要がないメソッドでは例外の宣言だけをしておけばよし

    オブジェクト指向には、下記2つがある
    ・抽象的な汎用の整理術(上流
    →集合論
    →役割分担
    ・プログラミング技術(下流

    歴史

    サブルーチンの独立性を高める手法
    →呼び出し側(メイン)とサブルーチンで共有する情報を少なくすること
    →複数のサブが共有するこうした変数のことをグローバル変数と呼ぶ
    →グローバル変数をいかに減らせるかが保守性に重要
    →→解決策
    ローカル変数と値渡し
    →サブルーチンに入った時に作られて、サブルーチンから抜ける時に消える
    →値渡しは呼び出し元の変数を直接使わずに、値をコピーして渡す仕組み
    →メイン側で受け取った値を変えても影響ない

    OPPでは
    まとめて、隠して、たくさん作る
    →仕組み

    ポリモーフィズムは共通メインルーチンを作ること→今までは共通サブルーチン


    インスタンスは「長持ちするローカル変数」あるいは「仲間内だけのローカル変数」である
    →→すなわちOOPの解決したかった課題とは「スコープの問題」であり、柔軟なスコープを導入するためのプログラミング技術であった

  • 前半はよいが後半は難しくて断念。。

  • 3・4章の内容がとてもよかった。オブジェクト指向がプログラミングの歴史の流れの中で自然に生まれてきたものであることが理解できた。このことは『コーディングを支える技術』でも書かれていたが、そちらではいろいろと寄り道を挟みながらだったのが、この本ではオブジェクト指向に焦点をしぼっているため流れがすっきりして理解しやすかった。5章のメモリの使い方の内容も面白かった。後半の応用技術の話はほぼほぼ読み飛ばした。13章の関数型言語のところはオブジェクト指向の流れを汲んだ発展型としての話かと期待したが、オブジェクト指向との関係性はさらっと書かれているだけでちょっと残念だった。

  • いろいろ大基本が整理されてよかった…。また少し常識が身についてきたかも。個人的は第2版で追加された関数型言語についての解説も読みやすくてよかった。Scala書いてみよう。

  • 図書館で借りた。少し意味がわかった

全60件中 21 - 30件を表示

著者プロフィール

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

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

平澤章の作品

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