何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 761
  • 記事 - 18
  • コメント - 37042
  • トラックバック - 222
ニュース
  • IE7以前では、表示がおかしい。div の解釈に問題があるようだ。
    IE8の場合は、「互換」表示を OFF にしてください。
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2011
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

ネタもと:επιστημηさんの、 re: ある程度苦しんだ人には常識だと思いますが

ちょっとがんばって丘を登らないととその先に広がるお花畑は見渡せないのです

3匹の山羊のガラガラドン』という童話をご存じでしょうか。話の内容は今回関係なくて、冒頭の部分。三匹の山羊は、それまでも草のあるところにいたと思われます。それなのになぜ、トロールがいて危険な道を通って、遠くへ行こうとしたのでしょうか。

上のリンク先には「山の向こうの草は、やわらかくておいしくて、食ベたらきっと元気で丈夫(じょうぶ)になれるでしょう。」とあります。この辺、本(訳?)によってまちまちなのですが、とにかく、今いるところよりも良い結果になるだろうから、ということです。

επιστημηさんのいうところの「その先に広がるお花畑」は、今いるところに広がっているお花畑よりもきれいなのでしょうか?

もし、丘の上のお花畑の方が、今いるところよりもいいところでなければ、誰もそこを目指したりしないでしょう。

また、そこへ行く道には障害がないのでしょうか。丘の上のお花畑に、障害を乗り越えるだけの価値がなければ、やはり誰も、そこを目指したりしないでしょう。


では、考えてみましょう。


後から追加された技術は、なぜ、開発されたのでしょうか。

もちろん、今より良くなるように、です。単純ですね。

だとすると、1つ目の障害はクリアしますね。丘の上は、今いるところよりもいいところなのです。たぶん。きっと。

歯切れ悪いですね。そうなんです。言い切れないところがあります。目的があって開発されたものですから、目的がずれたところには、適用しにくいのです。

C 言語と C++ 言語を比べると、C++ 言語の方がオブジェクトを作成する(コンストラクタがコールされる)分、遅くなります。継承したクラスのインスタンスを作成すると、継承元のクラスをインスタンス化する(継承をたどってコンストラクタをコールする)分、遅くなります。

スピードやタイミングがシビアに求められるところでは、よく吟味する必要があります。しかし、デバイス ドライバや組み込み系でない限り、問題にはならないでしょう。

また、オブジェクト指向によって、「生産性」が上がるでしょうか?

私は、必ずしも上がるとは言えないと思っています。前の会社で、初めてオブジェクト指向をやり始めたとき、課長に聞かれました。「オブジェクト指向って、どう?」
私:「今までに比べて、設計をきちんとやらないといけないと思います。設計に時間をかければ、後から変更したり、改造したりするのが容易になります。」
課長:「ふ~ん。それじゃ使えないな。」

その会話の後しばらく(意訳:かなり)は、課長の判断に憤りを感じていたのですが、最近は、そういう判断もありかも、と思うようになりました。

ソフトウェア システムの寿命はハードウェアと同じか、それ以上です。部品化の程度にもよるのですが、定期的に改造案件が入ってこない限り、1度作ったシステムを変更することはありません。バグ対応という話もありますが、1年間の無償保証期間を過ぎれば、バグ対応も有償なので、(略)。

後から、を考えないでいいのなら、オブジェクト指向のメリットは半減するのでは?ということです。しかし、「後から」の方が大きいなら、最初に苦労しておく価値は十分あります。この辺もやはり、「目的」が重要ではないでしょうか。


2つ目の問題。そこへ行く道の障害はどんなモノなのでしょうか。

実は、ここの説明がされているモノがないのかな、と思ったり。1つ目の問題を、「問題」としている例はたくさんあります。しかし、本当にそれが問題になるような場面は、少ないと思います。それより、本当の問題、あるいは個人にとっての問題は、こっちではないでしょうか。

そこへ行くために、何らかの障害があることは分かっています。でも、その障害がどの程度のモノなのか。「当たって砕けろ」の気持ちで当たれるモノなのか。当たって、砕けるのが障害ならいいのですが、自分が砕けたらどうしよう?

「千里の道も一歩から」なのですが、実際にはそう簡単に決断できるモノではないですね。特に企業など、ダメージが大きくなることが予想される場合、慎重になるのも無理はないと思います。

なんてことを考えていると、「一様に責めるのも可哀想だよな」とか、思ったり。。。

しかもこの障害、人によって程度が違うんですね。これほど、説明や解説が難しい問題はありません。

で、いったい、何が「障害」となるんでしょう?

C 言語の時は、ポインタという大きな障害が、明確にありました。じゃぁ、オブジェクト指向は?言語の習得が問題なのか、オブジェクト指向という考え方が問題なのか。その辺からして、あやふやなんじゃないでしょうか。

私の場合、多くのことは何度か繰り返せば分かったのですが、やはり「何をオブジェクトとするか」が、いまだに分かりません。分からないので、説明できないorz


ん~、なんだか、まとめられなくなってきた。この辺でいったん逃げる..・ヾ(。><)シ

投稿日時 : 2006年11月6日 22:11
コメント
  • # re: 頑張って丘を登ると…?
    R・田中一郎
    Posted @ 2006/11/07 9:44
    >また、オブジェクト指向によって、「生産性」が上がるでしょうか?

    オブジェクト指向について「使うは天国、作るは地獄」と言った人がいました。
    でも、作っていて楽しいことは事実で、この方がわかりやすいかな?、と考えながら作り直したりしていると楽しいけれど「生産性」は下がったり・・・

    僕もまとめられなくなってきました。
    この辺りでいったん(rya
  • # re: 頑張って丘を登ると…?
    かずくん
    Posted @ 2006/11/07 12:50
    私の場合のオブジェクト抽出の一例。
    ユースケースフローの1ステップを考える時に、できるかぎり
    「なに(アクタ)が」「なにに対して」「なにをする」。
    とします。

    ここで重要となるのが、「なにに対して」「なにをする」で、オブジェクト抽出の第一段階として、
    「なにに対して」をオブジェクト、「なにをする」をメソッドとします。

    たとえば、利用者は自動販売機にお金を投入する。
    の場合、手始めに「自動販売機」クラスの「お金を投入する」メソッドを抽出します。

    これをすべてのステップで実行し、同じカテゴリにまとめたり、クラスの名称を付け替えたりして、整理します。

    この整理するという部分が、感性に大きく左右され、なかなか思うように行かないのも事実ですね。
  • # re: 頑張って丘を登ると…?
    がる
    Posted @ 2006/11/07 15:17
    がるでふ。
    んと…この発想は、どっちかっていうと「教えるときに」多用する傾向にあります、おいらは。
    んで「この技術はどんな苦労をベースにどんな美味しい餌にありつくために考えられたのか」「そうしてその後どのような経緯を経てきたのか」って部分がもっとも重要なのではないかと。
    そのあたりをちゃんと踏まえると「出来る」と「適してる」との差異が見分けやすくなるです。

    OOについては…生産性は「二回目以降は」上がると思うのですが。
    一回目は落ちますねぇ(笑
    特にフレームワークとか作ってるとしみじみ思います。
    ただ、OOにもいくつかコツとかあって。うまく慣れると「とりあえず見切り発車な設計でガンガンいける」ってのはあるのですが。
    「後から変更したり、改造したりするのが容易」の「後から」のタイムスパンが短くなってる例ですね。
    だから「仕様がなかなか確定しない&確立変動する」ような要件の時にも割合に便利です。

    んで…障害は、オイラの場合「自分が実際にぶち当たったしんどい話」を基準に持ち込むです。
    且つ、あくまで「業務で使う」ので、実用一点張り。
    かくして
    http://www.m-fr.net/study/object/index.html
    みたいな、「学術的にOOやってる人から怒られそうなくらい汚い」物を書くようになります(笑

    でも…クラス切りの話は結構根が深いので。
    どこかでまた、何かかけそうなら書いてみたいなぁとか思ってみたりみなかったり。
  • # re: 頑張って丘を登ると…?
    Jitta
    Posted @ 2006/11/09 21:59
    R・田中一郎さん、かずくんさん、がるさん、コメントありがとうございます。

    > 作っていて楽しいことは事実で
    楽しいですか?いや、私はどの言語でも楽しいので(^-^;

    > この整理するという部分が、感性に大きく左右され、なかなか思うように行かないのも事実
    ええ、そうなんです。
    勤務先の勉強会で、「行うって、名詞やっけ?」とかいう言葉が出てきたときにはぶっ飛びそうになりました。
    でも、UML - Silver だったりする。。。

    > OOについては…生産性は「二回目以降は」上がると思うのですが。
    > 一回目は落ちますねぇ(笑
    はい、私も、そう思います。
    ただ、「一回目」を、どの様に定義しましょう?ということを意識して、「"部品化"という名目で、オブジェクト指向」を書きました。
タイトル
名前
Url
コメント