まあ、ひろゆき自体最低限のプログラミングしかできないし才能ないって言ってたから仕方ないなでもひとつ言えるのは現役のプロが口頭で説明しても全く知らない状態の人には一切理解できない図を使ったら誰でも理解できると思うオブジェクト指向プログラミングは極端な話2つプログラムを書いてお互いが確認しあってバグを無くそう!みたいな考え方としか俺は口頭だと説明できん
「~する関数」として作っておけば後々便利だよね志向、と理解してます! 「オブジェクト」というのは「~する人(専門職)」で、たとえばアマゾンだったら、「ATM支払いを選択された場合、許容するか、ダメで前画面に戻すか、次の画面で注意だすか」を判断する担当の専門職が居る、イメージです。その人自体を修正するか、別を修正するかという話になるので理論上業務は進みやすい。だがクラスIDがどうこうはやめてほしい笑
広義的に言うならコンピューターと人間は考え方が違うのでその考え方を合わせる為様々な工夫がプログラミング系ではあるけど(その意味では言語と言うのもそこに含まれる)、その様々な工夫の中で実態のない数字の塊のコードをあるほど物体(オブジェクト)のような動きをさせる為に整える作業全般をオブジェクト指向と言う。 こうするとコンピューターも正しくコードを理解出来て、開発者も流れを理解出来て作業物を進められるこのようにプログラミングの際に結果だけ出すのを目的するのでは無く作る過程に物体みたいに見えるような様々な工夫を挟みましょうってのが「オブジェクト(物体)指向」。物体ではないモノをまるで物体のように整えて物体レベルに寄せる。だから物体を指向する。物体指向である。 つまりかつて機械言語がプログラミング言語として人間に近づいたみたいにプログラマーの作業方式でもちょっとでもリアルさをだそうとする事仮想であるプログラムを作業レベルでもちょっとでもリアルに寄せて進め人間に優しく作る工夫だが、 実際は目的を忘れてルールに縛られ全然融通が利かない本末転倒のコードが生まれる原因にもなるんだよね・・・目的は人間に優しいコードを書いて生産性と開発効率を上げ、仲間が見ても直ぐ分かり協業が捗らせる為やっている事ですよ?
プログラミングってネットじゃ専門家やオタが多い地雷分野でいつもの調子で知ったかやってやらかしてしまいましたなぁ(笑)何知ったかしてもお追従されるからちょっと調子乗っちゃってたかな?案外専門に関しては皆厳しくて自分も笑った。以前プログラミングじゃないけどオレが詳しい分野でこの人が語ってて「適当言ってんなぁ…」って呆れたけどこの人プログラミングに限らず全分野にこれだから。5chみたいな匿名だから出来る知ったかを顔出してやってんだからこの人そういう意味じゃすごいけど。だから今後はこの人の話一切相手しちゃダメよ~全部適当だから(笑)
昔からオブジェクト指向の話になると絶対「オブジェクト指向警察」みたいなのが湧いてきて、素人向けの説明で例えとかだしても「それは違う」「それだと◯◯のことに触れてない」だとか言われてどうやってもケチつけられるイメージだわw
うーん。この説明はオブジェクト指向じゃなくてブラックボックス化やライブラリ化の話だな。ソースを追いかけなくても、どういう機能かさえわかれば使える、って話だよな。オブジェクト指向の説明になってないよ。あと、クソなクラスライブラリ(Visual C++のMFCみたいなの)だと、結局、ソースを追いかけないと、どう使っていいやらわからんとか、継承クラスを作ろうとしたら、クラスのソースを追いかけないと使えないとか、まぁいろいろ問題があったんだよな。
オブジェクト指向は「これ通りに実装すればオブジェクト指向だね」っていう絶対的な基準がない(と思う)ので、ひろゆきさんが仰ってる説明に対して合ってる間違ってると言うのは少しズレているような気がします。 その上で私はひろゆきさんの説明はかなり自分の認識と近くて的を得た解説だなと思いました。私の理解ではオブジェクト指向を「責務を適切に分割することで大規模開発において管理がしやすくなる手法」と思っています。なぜオブジェクト指向に基づいて設計することが「大規模開発において管理がしやすくなる」のかと言えば、各オブジェクト(class)に適切な責務のみを実装することで、そのオブジェクトを用いて実装する際に具体的な処理を気にすることなく呼び出すことができるからです。いくら優秀な人間でも一度に把握できる内容は限られているので、規模が大きいソフトウェアの実装をすべて完璧に把握しながら実装をするなんてのは不可能。それぞれの具体的な実装を各オブジェクトに責務として課すことによって(あくまでも理想ですが)エンジニアはその具体的な実装を把握しなくてもコードが書けるようになります。これがオブジェクト指向の美味しいところだと思っているので、ひろゆきさんの説明は近いな〜と思った次第です。 まぁ、実際はそんな簡単じゃないんですけどね。
ある目的のために必要な関数や変数をグループ化した機能群をクラス 機能群で扱われるデータのメモリを確保されたらオブジェクトとなるそのオブジェクトを使って目的を果たすことをオブジェクト指向という ひげおやじの能力やステータスが書かれているものが、ひげおやじクラスあなたがひげおやじを作成した時点ひげおやじはオブジェクト化となる。ひげおやじオブジェクトにうんこ食べるという関数があってうんこをあげると喜ぶというデータが返ってくるあなたはひげおやじオブジェクトの喜びを得るという目的があって、ひげおやじオブジェクトを使って目的を果たす行為をオブジェクト指向というオブジェクト指向のいいところは一人のひげおやじがいれば、いつでもひげおやじを作成できて、うんこをあげて喜びが欲しい人がどこにいても喜びをもらえるということあとは、ひげおやじが何でうんこで喜びを得るのかをあなたが知ることをできないようにしたりできるHigeoyazi *higeoyaziobject //ひげおやじへのポインタ(ひげおやじの住所)higeoyaziobject = new higeoyazi //ひげおやじオブジェクト作成higeoyaziobject->set_unko(うんこ); //うんこをあげる(ひげおやじはうんこ取得)higeoyaziobject->unko_taberu(); // ひげおやじオブジェクトうんこを食べる(ひげおやじよろこぶ)yorokobi = higeoyaziobject->get_unko_no_yorokobi(); //よろこびもらう delete higeoyaziobject // ひげおやじオブジェクトを削除
オブジェクト指向の一番大事な部分を説明してるだけだからこれでいいと思う。基本的には構造体に特に状態を操作するための関数を生やして内部を隠蔽しているのはそう。多態とかそれ以外にもあるけど、たいていのアプリケーションのFW層より上の部分は単に名前空間+実装隠蔽の役割しか持たせてない場合が多い。メッセージパッシング云々はそういう思想じゃないオブジェクト指向言語が多い気がする。
まあ、ひろゆき自体最低限のプログラミングしかできないし才能ないって言ってたから仕方ないな
でもひとつ言えるのは現役のプロが口頭で説明しても全く知らない状態の人には一切理解できない
図を使ったら誰でも理解できると思う
オブジェクト指向プログラミングは極端な話2つプログラムを書いてお互いが確認しあってバグを無くそう!みたいな考え方としか俺は口頭だと説明できん
「~する関数」として作っておけば後々便利だよね志向、と理解してます! 「オブジェクト」というのは「~する人(専門職)」で、たとえばアマゾンだったら、「ATM支払いを選択された場合、許容するか、ダメで前画面に戻すか、次の画面で注意だすか」を判断する担当の専門職が居る、イメージです。その人自体を修正するか、別を修正するかという話になるので理論上業務は進みやすい。だがクラスIDがどうこうはやめてほしい笑
プログラムをオブジェクト(オブジェクトは、機能とステータスをもつ)という単位で扱って、それが相互に作用しあうのがオブジェクト指向プログラミング。
ていう説明が個人的にはわかりやすい。
このコメント欄色々書いてるけど、まぁわからん人向けなんだから、簡単な説明でよくないか?笑
継承とかインスタンスとかとか、知りたい人が勉強すればいいんだし…笑
広義的に言うならコンピューターと人間は考え方が違うのでその考え方を合わせる為様々な工夫がプログラミング系ではあるけど(その意味では言語と言うのもそこに含まれる)、
その様々な工夫の中で実態のない数字の塊のコードをあるほど物体(オブジェクト)のような動きをさせる為に整える作業全般をオブジェクト指向と言う。
こうするとコンピューターも正しくコードを理解出来て、開発者も流れを理解出来て作業物を進められる
このようにプログラミングの際に結果だけ出すのを目的するのでは無く作る過程に物体みたいに見えるような様々な工夫を挟みましょうってのが「オブジェクト(物体)指向」。
物体ではないモノをまるで物体のように整えて物体レベルに寄せる。だから物体を指向する。物体指向である。
つまりかつて機械言語がプログラミング言語として人間に近づいたみたいにプログラマーの作業方式でもちょっとでもリアルさをだそうとする事
仮想であるプログラムを作業レベルでもちょっとでもリアルに寄せて進め人間に優しく作る工夫だが、
実際は目的を忘れてルールに縛られ全然融通が利かない本末転倒のコードが生まれる原因にもなるんだよね・・・
目的は人間に優しいコードを書いて生産性と開発効率を上げ、仲間が見ても直ぐ分かり協業が捗らせる為やっている事ですよ?
プログラミングってネットじゃ専門家やオタが多い地雷分野でいつもの調子で知ったかやってやらかしてしまいましたなぁ(笑)
何知ったかしてもお追従されるからちょっと調子乗っちゃってたかな?案外専門に関しては皆厳しくて自分も笑った。
以前プログラミングじゃないけどオレが詳しい分野でこの人が語ってて「適当言ってんなぁ…」って呆れたけど
この人プログラミングに限らず全分野にこれだから。5chみたいな匿名だから出来る知ったかを顔出してやってんだからこの人そういう意味じゃすごいけど。だから今後はこの人の話一切相手しちゃダメよ~全部適当だから(笑)
昔からオブジェクト指向の話になると絶対「オブジェクト指向警察」みたいなのが湧いてきて、
素人向けの説明で例えとかだしても「それは違う」「それだと◯◯のことに触れてない」だとか言われてどうやってもケチつけられるイメージだわw
うーん。この説明はオブジェクト指向じゃなくてブラックボックス化やライブラリ化の話だな。ソースを追いかけなくても、どういう機能かさえわかれば使える、って話だよな。オブジェクト指向の説明になってないよ。あと、クソなクラスライブラリ(Visual C++のMFCみたいなの)だと、結局、ソースを追いかけないと、どう使っていいやらわからんとか、継承クラスを作ろうとしたら、クラスのソースを追いかけないと使えないとか、まぁいろいろ問題があったんだよな。
スパチャで質問するようなことじゃないw
なんか違う..
ひろゆきの説明は”冷蔵庫というのは氷を作ることができます!”って言ってる感じで、それは冷蔵庫の概念の一つだけど、冷蔵庫の説明ではない
とりあえずカプセル化と正しい命名をすることだけ覚えておけばいいよ
そこの理解が深まれば芋づる式に多態性とか理解できるようになると思う
オブジェクト指向は「これ通りに実装すればオブジェクト指向だね」っていう絶対的な基準がない(と思う)ので、ひろゆきさんが仰ってる説明に対して合ってる間違ってると言うのは少しズレているような気がします。
その上で私はひろゆきさんの説明はかなり自分の認識と近くて的を得た解説だなと思いました。
私の理解ではオブジェクト指向を「責務を適切に分割することで大規模開発において管理がしやすくなる手法」と思っています。なぜオブジェクト指向に基づいて設計することが「大規模開発において管理がしやすくなる」のかと言えば、各オブジェクト(class)に適切な責務のみを実装することで、そのオブジェクトを用いて実装する際に具体的な処理を気にすることなく呼び出すことができるからです。
いくら優秀な人間でも一度に把握できる内容は限られているので、規模が大きいソフトウェアの実装をすべて完璧に把握しながら実装をするなんてのは不可能。それぞれの具体的な実装を各オブジェクトに責務として課すことによって(あくまでも理想ですが)エンジニアはその具体的な実装を把握しなくてもコードが書けるようになります。これがオブジェクト指向の美味しいところだと思っているので、ひろゆきさんの説明は近いな〜と思った次第です。
まぁ、実際はそんな簡単じゃないんですけどね。
(注意) ひろゆきは酒を飲んでいます!
オブジェクト指向って、そこは他社さんなんで自分の担当外ですって言うための決まりじゃ?
ある目的のために必要な関数や変数をグループ化した機能群をクラス
機能群で扱われるデータのメモリを確保されたらオブジェクトとなる
そのオブジェクトを使って目的を果たすことをオブジェクト指向という
ひげおやじの能力やステータスが書かれているものが、ひげおやじクラス
あなたがひげおやじを作成した時点ひげおやじはオブジェクト化となる。
ひげおやじオブジェクトにうんこ食べるという関数があってうんこをあげると喜ぶというデータが返ってくる
あなたはひげおやじオブジェクトの喜びを得るという目的があって、ひげおやじオブジェクトを使って目的を果たす行為をオブジェクト指向という
オブジェクト指向のいいところは一人のひげおやじがいれば、いつでもひげおやじを作成できて、うんこをあげて喜びが欲しい人がどこにいても喜びをもらえるということ
あとは、ひげおやじが何でうんこで喜びを得るのかをあなたが知ることをできないようにしたりできる
Higeoyazi *higeoyaziobject //ひげおやじへのポインタ(ひげおやじの住所)
higeoyaziobject = new higeoyazi //ひげおやじオブジェクト作成
higeoyaziobject->set_unko(うんこ); //うんこをあげる(ひげおやじはうんこ取得)
higeoyaziobject->unko_taberu(); // ひげおやじオブジェクトうんこを食べる(ひげおやじよろこぶ)
yorokobi = higeoyaziobject->get_unko_no_yorokobi(); //よろこびもらう
delete higeoyaziobject // ひげおやじオブジェクトを削除
最初の話、クラスではなく関数(メソッド)では?
そもそもオブジェクト指向の説明に一番重要なのはクラスではない
関数じゃん
オブジェクト指向の一番大事な部分を説明してるだけだからこれでいいと思う。基本的には構造体に特に状態を操作するための関数を生やして内部を隠蔽しているのはそう。多態とかそれ以外にもあるけど、たいていのアプリケーションのFW層より上の部分は単に名前空間+実装隠蔽の役割しか持たせてない場合が多い。メッセージパッシング云々はそういう思想じゃないオブジェクト指向言語が多い気がする。
オブジェクト指向自体、定義が曖昧で広いので、ひろゆき氏の説明は間違ってはないと思う。
ただ本当に概念の話しのみしかしてないので、実際に設計できるのかは謎!!
こんな感じで分かってないのなら、写像が分からないのも仕方ないな
荒らしの@たたむくん、君のせいで元コメント削除されたじゃないか。
続きはここに書きなさい。
今まで知らない分野の話をしてて理解できないことはあったけど、今回についてはマジで何言ってるんだこの人