オブジェクト指向とは何かを理解し、如何に使うかが大事
★★★★☆
今更オブジェクト指向…?という感じだが。
パラパラやったら面白そうだったので、これまでの知識の棚卸しの意を込めて
先輩の机から拝借。
自分が初めてまともにプログラムに取り組んだのはVB.NETだから、
オブジェクト指向じゃないプログラムを知らないわけで、
でもそれを知ってて使ってるのと無意識にやってるのって
多少違うんじゃないかともね。
読んでみた結果…
「オブジェクト指向」に拘ってはいかん!
(今更拘っている人も…ね)
そもそも「現実世界をそのままソフトウェアに表現する技術」という考え方が
発生する事自体が自分には意味不明だが。
確かに、所謂「オブジェクト指向」と呼ばれる言語で始めて出てくる考え方は、既存の言語を使っていた人たちにはわかりにくいかもしれない。
自分が始めてプログラミングを勉強したとき、クラスやインスタンスの概念は中々理解し難かったし、クラスが型であるって概念はようやく落ちてきたというか。
そんなわかりづらいものなぜ。。
でも歴史を振り返って現在を見てみると、「なるほど、だからか。便利だな〜」と
合点が行くもので勉強になる。
うちの会社の一番デキる(とオレが勝手に思ってる)SE(てかプロマネ)曰く、
「オブジェクト指向の考え方は以前からあったし、特別なものでもないし、無理して使うものでもない。実績のあるものをきちんと使うのが一番。」
という考え方が納得がいくと同時に、「オブジェクト指向」として否定的に見ることも無いのではないかと。
要はオブジェクト指向とは何かを理解し、如何に使うかが大事。
やっぱりグローバル変数は便利なものだし、継承やポリモーフィズムは大規模なシステム開発で設計がきちんと出来てれば作る際に楽チンだが、小規模のソフトウェアでは無理して使う必要も無いし(てかポリモーフィズムとか知らんかった。。)、Webアプリのようなとりあえず作ってみるようなものについては、そこまで大きな恩恵は受けないのでは?
仕様変更に弱いしね。
後半は設計の話になってくるが、ここはもう特別オブジェクト指向とか意識しない方がいいのでは?と思った。
まぁ知識として知ってるのはアリだろうけど、どうなんだろ?
開発者の自分には、ドキュメント作りはまだ未知の世界とも言えるが、変にテクニカルにやるより、設計をキチンとして、わかりやすいドキュメント書くのが大事なんじゃないかな〜。。
オブジェクト指向でのプログラムを経験したことある自分からみると、
わかりやすいし良い棚卸し、勉強になった。
良書と言えると思います。
読み始めて気づいたんだけど、これ、「なぜシリーズ」なんだよね。
「なぜシリーズ」のコンセプトは、「10年後も通用する基本を見につけよう」ということらしい。「なぜオブジェクト指向がなぜシリーズ?」と思ったが…。
「オブジェクト指向」は、システム開発の進化における産物で、これからも進化して行く過程にあるもの、であると。
なるほど。
最も分かりやすいオブジェクト指向の解説書
★★★★★
今まで読んで来た中では最も分かりやすいオブジェクト指向の解説書です。
ちまたにあるオブジェクト指向の解説を読んでも、今ひとつ分からないという人にはオススメ。
個人的には、以下が本書の良い点だと感じています。
(1) オブジェクト指向プログラミングとオブジェクト指向分析設計をきちんと分けて考えることを推奨している
(2) プログラグラミング言語の進化の過程で、オブジェクト指向が生まれた背景を説明している
(3) 現在の開発手法のベースにオブジェクト指向の考え方があることを説明している
オブジェクト指向とは
★★★★☆
モノ中心という考え。
ガラクタだらけのおもちゃの世界に「水が一滴」落ちた。
そこから、ガラクタ達は、思い思いの「行動」をする。
そんな世界をイメージした。
実際には、それぞれのプログラムの役割を明確に出来るコーディング技法なのだろう。
シーケンス図も正しく書かれれば、主体が何をして、どこへ結果を返すのかが分かりやすい。
オブジェクト指向プログラミングを学ぶ前に読むのがいいと思う。私もその狙いを持った一人だ。
SEがオブジェクト指向を学ぶ入り口
★★★★★
コンピュータシステム開発に関わる方が
。。特になんとなくPGやSEをやってきた人が。。
オブジェクト指向を学ぶにあたり、
入り口として大変よい有益な本だと思います。
このポイントを絞った説明は、
現在仕事などで使用している言語が、
オブジェクト指向の言語でない場合でも、
応用可能です。
参考文献も王道本が紹介されており、
次に何を取り組むかもわかります。
まずはこの本からお勧めします。
第2章
★☆☆☆☆
わかりやすい本だと思いますが、第2章が腑に落ちません。
私も、完全理解はできていませんし、考え方はいろいろありますので、難しいところですが...
・ポリモルフィズムの説明では、認証(信頼)などの関係設計ができるのでは?
・時間による成長や劣化を取り上げているが、静的設計に動的な要求をしているのでは?
・場所による人は立場の違いに触れているが、場所に連動して立場を変更すればいい話では?
また、評価できるところとしては、
非オブジェクト指向でUMLを使用する方法についての方法が掲載されていました。