<輪読会>オブジェクト指向でなぜつくるのか -第1章 オブジェクト指向はソフトウェア開発を楽にする技術-

輪読会メンバー

  • Izumi Haruya

github.com

  • Sekine Yutaro

github.com

  • Abe Kaisei

github.com

まえがき

  • 旧版と比べて第3版の変更点
    • オブジェクト指向がなぜ難しいのか」をより客観的な視点で説明することに注力するようになった

引用:オブジェクト指向でなぜつくるのか P10


(本書で気になる問い)

  • モデリングとコミュニケーションを重要視する
  • 「一見凄そう」で終わらない(理解しようとする)姿勢が大事

第1章 オブジェクト指向はソフトウェア開発を楽にする技術

オブジェクト指向はソフトウェア開発の総合技術

  • オブジェクト指向でなぜ作るのか
    • ソフトウェアを楽に作るため
  • 難しいソフトウェア開発を楽に行うための総合技術である

モノ中心にソフトウェアを組み上げる開発手法

  • 手続き型(システム全体を集合的に扱っている)
    • (デメリット)仕様変更や機能追加の際の修正範囲が広い
    • (デメリット)ソフトウェアの再利用が難しい
  • オブジェクト指向(システムを部品に分け、独立性を持たせ、システム全体を構築している)
    • (メリット)仕様変更や機能追加の際の修正範囲が狭い
    • (メリット)ソフトウェアの再利用が容易

プログラミング言語から総合技術に進化した

オブジェクト指向の歴史

引用:オブジェクト指向でなぜつくるのか P23

オブジェクト指向が難しい理由

  • プログラミング言語の仕組みが複雑

    • 今までは仕組みが単純だったが、技術発展と共に仕組みが複雑になっていった
      • 単純にコードを上から読むでは済まなくなってしまった
      • 上記の理由から使いこなすまでには時間がかかるようになった
    • 用語自体が難しい
  • 比喩を使った説明による混乱

    • 説明時の比喩が独特なことが多く、情報の中身よりも比喩の印象が強く残ってしまう
  • オブジェクト指向というコンセプトが抽象的

    • モノ中心というコンセプトが抽象的である
    • 現実世界とコンピュータの世界は似て非なるものである

      上記のことからそのまま当てもはめてもうまくいかない

(独自の解釈)業務委託などの場合では、手続き型とオブジェクト指向の中間など、明確なポジションを取ることが少ない場合があるため、実務との乖離が生じ、理解しにくいケースもある

オブジェクト指向技術のwhatとwhyを説明する

  • 本書の目標

    • 論理の飛躍をせずわかりやすく説明すること
  • オブジェクト指向を難しくしている理由3つに対する方針

    • プログラミング言語の歴史を踏まえて、メリットを具体的に説明する
    • 比喩による説明は最小限に抑えて説明をする(比喩を使う場合はその旨を明示する)
    • プログラミングの仕組みと、「モノ中心」で汎用的に物事を捉える考え方は別物として、分けて説明する

本書の構成

引用:オブジェクト指向でなぜつくるのか P30

上記の図で示す通り

参考書籍

オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識 | 平澤 章 |本 | 通販 - Amazon.co.jp