読書メモ

・「いちばんやさしいオブジェクト指向の本
(井上 樹 :著、技評SE新書 \840) : 2009.01.04

内容と感想:
 
「オブジェクト指向」という言葉が聞かれるようになって久しい。 第2章から引用すると、オブジェクト指向とはオブジェクトを中心として物事を捉える考え方をいう。 オブジェクトとは「ある場面において個別に識別できる重要な何か」を示し、 オブジェクト指向分析では世界をオブジェクト指向で理解し、対象をモデル化する。 この考え方は人間の物事の認識の仕方に近いと言われる。 ソフトウエア開発ではオブジェクト指向を物づくりのための技術として使っている。
 本書は新書の形をとりながらも、オブジェクト指向を初心者にもわかりやすく解説した本である。 概念を大づかみに捉えることができるだろう。
 オブジェクト指向はソフトウエア開発の歴史の中で、ソフトウエアを効率的に開発したり、安全に開発していくうちに 生み出されてきたものだ。 その概念は今ではRubyやPythonなどScript言語にも取り入れられている。
 このように技術は進化し続けているが、オブジェクト指向はあくまでも分析結果を表現するための道具にすぎず、結果を保証するものではない。万能ではないのだ。 従ってオブジェクト指向分析も誤った現実認識に基づいた分析では、分析できたとは言えない。 道具は正しく使うことが求められる。 また、オブジェクト指向だけで全てを表現できるわけではないことも認識しておく必要がある。 本書をきっかけにもっと深く勉強したいと思った方には最後に参考文献や書籍が紹介されている。

○印象的な言葉
・オブジェクト指向の本は1990年代前半がピーク。ランボー、ブーチ、ヤコブソン、コード、メイヤーなどの大家。
・何をオブジェクトにするのかに正解はない。ただし切り出す観点を限定すれば正解はある程度決まってくる
・オブジェクトはあまり多くの責務を持たず、特定の責務に集中
・オブジェクト間の共通性に注目してクラスを抽出
・クラス指向:オブジェクトを中心としたアプローチのほうが初心者向け。オブジェクト指向に慣れてくるとクラス指向のアプローチがとられる。
・モジュールを機能で分割するのではなく、責務の単位で分割
・オブジェクト指向の場合、システムの構造は動的に決まる。構造を実行時に変更できる。
・あらかじめ予測した変更に対して、それを受け入れられるようにシステムを設計(ホットスポット)
・アスペクト指向:オブジェクト指向の欠点を補う
・ジェネリックプログラミング:総称型を導入。オブジェクト指向と同時に使うことで生産性を向上させる
・「理解する」とは対象と概念を結びつけること
・分析(何を作るか)と設計(どう作るか)の分離。
・オブジェクト指向では分析から実装まで一貫してオブジェクト指向で行なう。工程間にモデルの連続性があり、トレーサビリティが高い。

-目次-
第1章 それはシリコンバレーから始まった ―オブジェクト指向の歴史
第2章 ケーキとDVDソフ ト―オブジェクト指向の概念を理解する
第3章 プログラミング言語進化論 ―オブジェクト指向プログラミングへの道
第4章 抽象化と分割の歴史がもたらしたもの ―オブジェクト指向プログラミングの特徴
第5章 ショートケーキはなぜショートケーキなのか ―オブジェクト指向分析
第6章 よくあるQ&A ―オブジェクト指向への疑問とその解答