過去の桐井戸端BBS (桐談義・その他) |
908 | イベントドリブンって何? | 桐愛好家 | 1998/12/26-08:52 |
ところで、 いましきりに言われている、「イベントドリブン」って何ですか? |
|||
909 | Re: | グッチデザイア | 1998/12/26-09:39 |
記事番号908へのコメント >いましきりに言われている、「イベントドリブン」って何ですか? 私もついていけなくなりかかってるんですが、早い話がWindows95なんかの操作です。 ボタンがあってそれをクリック(これがイベント)すると、何かが起こる(これがドリブン)。 古い人間には「プログラムの全貌はどうやって把握したらいいんじゃ?」とパニックに陥りかねませんが、 頭の切り替えが肝要のようです。 確かにできないことじゃないような・・・? 私は、従来のプログラミングを思い切り「細切れ」にしてしまうという感覚で理解しようとしています。 でも、どこが始まりでどこで終わるんだというのが見えないのは「不安」! |
|||
917 | Re: | ikjun | 1998/12/26-20:44 |
記事番号909へのコメント >ボタンがあってそれをクリック(これがイベント)すると、何かが起こる(これがドリブン)。 最初は難しく考える必要はないと思います。ボタンにプログラムを張り付ける。 これが、イベントドリブン!(他にもあるけど、まずは・・・・) >古い人間には「プログラムの全貌はどうやって把握したらいいんじゃ?」 ボタンに張り付いているプログラムはそれぞれ独立してますので、全体を把握する必要性はありません。 そのボタンをクリックしない限り、そのボタンと張り付いているプログラムは無いと同じことなんですから? >私は、従来のプログラミングを思い切り「細切れ」にしてしまうという感覚で それは結果です。イベントドリブン又はオブジェクト指向の目的はプログラムの独立性を高めることです。 >でも、どこが始まりでどこで終わるんだというのが見えないのは「不安」! そのイベントの中で、始まり終わります。 イベントドリブン又はオブジェクト指向というのは、結局プログラムの肥大化に対応して出てきた考えです。 昔、N88BASICなどでプログラムした経験のある人なら、解ると思うけど、かなり大雑把に言って、プログラムが2倍に長くなると、その作成とメンテナンスに4倍かかるようになります。 4倍に長くなると、16倍に!ほぼ2乗でコストがかかります。 ちょっと考えればわかる話ですが、このままだとある程度以上の長さのプログラムは作成不能に陥ります。 それを解決する方法として、構造化言語が考えられました。 簡単に言うとこれはプログラムの構造を制限し、変数にローカル、パブリックの区別が出来るようにして、無秩序なプログラムの作成に制限を加えることによって、プログラムの全体の見通しをよくするように試みられました。 (一括処理でも構造化は出来る。) しかし、さらにプログラムの肥大化が進むと、これでも開発が難しくなりました。 そこで、プログラムの完全な独立性が必要になったのです。 そのために必要になった考え方がオブジェクト指向です。 どういうことかというと、例えばあなたがラーメンを食べたいとします。 あなたはラーメン屋に電話をして、出前を頼みます。 この場合だと、あなたというオブジェクトは「ラーメン屋に電話をして、出前を頼む」というプログラムを実行するだけでいいですね? あとは電話を受けたラーメン屋が処理するだけです。 この後、ラーメン屋というオブジェクトはなにをするかというと、「麺を茹でる」 「スープを作る。」「ドンブリの中にスープをいれる。」「麺を入れる。」・・・・ などというプログラムを実行していくわけです。 このとき、あなたはそれらの一切を考える必要性はありません。 ラーメン屋のオヤジが出前の兄ちゃんを叱って麺を茹ですぎて、もう一度やり直しても、出前の自転車が途中でパンクしても、そんなことはあなたには関係ありません。 あなたは、一定時間内にラーメンが出前され、おいしいラーメンが食べられればいいのです。 このようなことをブラックボックス化といいます。 ブラックボックス化というと悪いことのようですが、ここでは非常にいいことです。 ラーメンを食べるのに、いちいちラーメン屋のオヤジと出前の兄ちゃんの人間関係を心配したり、自転車がちゃんと整備されているかどうか、気にしなければならないとしたら、どれだけわずらわしいか? また、このラーメン屋も麺を製造販売している業者に電話して麺の注文をします。 このとき、そこの業者の労使関係をラーメン屋のオヤジは心配しません。 麺の業者も、粉の業者に注文します。そのとき、粉の業者の社長が離婚寸前であっても・・・・・粉の業者も農家に・・・・・そのとき農家の一人息子がぐれていようと・・・・・農家も肥料を・・・・・・肥料業者が株で大損して・・・・・ とこんな具合にそれぞれに独立したオブジェクトが連携しています。 このオブジェクト指向の典型的な例が、イベントドリブンなのです。 以上が、わたしのオブジェクト指向及びイベントドリブンに対する理解です。 間違っていたら申し訳ない。(わかりやすくするために、正確さに欠けるのは事実) |
|||
918 | Re: | ALM | 1998/12/26-22:16 |
記事番号917へのコメント このたとえはたいへん面白く的をえてるような気がします。 うーん確かにそのとりと僕は思うけどたとえが面白い! たとえがラーメン屋で農家まで出てくるとは 僕は農家なので面白かったです。 |
|||
921 | Re: | グッチデザイア | 1998/12/26-23:03 |
記事番号917へのコメント ikjunさんへ 貴重で、私にしてみれば「新鮮な」ご教授ありがとうございました。 今、思い切り悩んでるところです。 私はずっとユーザーサイドの人間で、会社にシステム関係の教育を受けさせてもらったのは、新人だったころのBASIC3日間コースで「グラフを書けるようになってこい」だけです。 だから、思い切り「どしろーと」。 ikjunさん、幅田さんと、知らない人が見たら あらぬ誤解を受けそうな投稿には参ってしまった(知らない人は知らないでおいて下さい)。 「イベントドリブン」って、理屈ではわかります。 バッチプログラムと等価のものができるはずだ(この発想がもういけないのかな?)。 こんなところでしょうか? 従来方式だったら、機能自体が冗長な記述でもとにかくあればよかったが、イベントドリブンだと、シャープに必要なモノだけがあるという構造に変わってる! 「質より量」できました(なんて変なたとえだ)ので、悩んでいるおじさんでした。 |
|||
924 | Re: | ikjun | 1998/12/27-00:37 |
記事番号921へのコメント > 貴重で、私にしてみれば「新鮮な」ご教授ありがとうございました。今、思い切り >悩んでるところです。 桐V8がでれば、自然にわかることですから、今から悩むこともないのですが? > 私はずっとユーザーサイドの人間で、会社にシステム関係の教育を受けさせてもら >ったのは、新人だったころのBASIC3日間コースで「グラフを書けるようになっ >てこい」だけです。 わたしは、会社からシステム関係の教育を受けたことはまったくありません。 前のコメントの内容はだいぶ前にアスキーに書いてあったものです。 (そのときはそば屋での例え話でした。同じにするのはイヤだったので、ラーメン屋にした。) > だから、思い切り「どしろーと」。ikjunさん、幅田さんと、知らない人が見たら >あらぬ誤解を受けそうな投稿には参ってしまった(知らない人は知らないでおいて下 >さい)。 いま、現在も桐V7でオブジェクトという言葉はよく出てきます。 今後はオブジェクト指向は桐ユーザーといえども避けられそうもありません。 桐のユーザーは、オブジェクト指向という考えに慣れていない方が多いと思います。 それであえてああいうコメントをしました。 > 「イベントドリブン」って、理屈ではわかります。バッチプログラムと等価のもの >ができるはずだ(この発想がもういけないのかな?)。 イベントドリブンとかオブジェクト指向とかは、プログラムというより、考え方です。 バッチプログラムとはかなり遠いと思います。(バッチプログラムの意味がよくわかりませんが? DOSのバッチ?それとも対話型プログラムの反対?) > こんなところでしょうか? 従来方式だったら、機能自体が冗長な記述でもとにか >くあればよかったが、イベントドリブンだと、シャープに必要なモノだけがあるとい >う構造に変わってる! シャープな記述と、冗長な記述のどちらがいいかというのはイベントドリブンとは関係ないと思います。 CはシャープでCOBOLは冗長・どちらがいいとは言い切れないです。 無口な人と饒舌な人とどちらがいいかというようなものでしょう。 イベントドリブンのプログラムが、冗長なことも十分あり得ると思います。 結果として非常に長いプログラムになることもあり得る。 > 「質より量」できました(なんて変なたとえだ)ので、悩んでいるおじさんでした。 わたしも似たようなものです。アクセスに寄り道したので、その辺だけはちょっと知っているというだけです。 簡単にいうとオブジェクト指向とは、独立したオブジェクト同士のやりとりでシステムをつくる考え方。 (独立しているというところがミソ) イベントドリブンとはフォームのオブジェクトにプログラムを張り付けること! めちゃくちゃ、アバウトですが、こう考えればわかりやすいかなあ? |