オブジェクト指向ってクソかよPart5
■ このスレッドは過去ログ倉庫に格納されています
無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
前前前前スレ
オブジェクト指向ってクソじゃね?
https://mevius.5ch.net/test/read.cgi/tech/1535085129/
前前前スレ
オブジェクト指向ってクソじゃねぇよ? Part2
https://mevius.5ch.net/test/read.cgi/tech/1539872441/
前前スレ
オブジェクト指向ってクソじゃねぇかよPart3
https://mevius.5ch.net/test/read.cgi/tech/1542884872/
前スレ
オブジェクト指向ってクソじゃねぇかよPart4
https://mevius.5ch.net/test/read.cgi/tech/1556462315/ >>232
そんなもの昔からあるパラダイムで十分実現可能だし
Cなどでそう実装されている >>235
それを発展させて汎用化したものがオブジェクト指向。
関数があるだけでは、それらを組み合わせる時の問題に対処できない。 >>234
分からないんじゃしょうがないだろ
分からないからこそオブジェクト指向の沼にはまってんだろ >>237
> Cなどでそう実装されている
C言語でオブジェクト指向が実装されてるからなんだっていうのか?
オブジェクト指向とオブジェクト指向言語の違いぐらい理解しろよ。 >>239
お前がオブジェクト指向の沼にハマってるだけだろw
それともまた、「お前の考える想像上の人物」の話でもすんのか?w スコープダイナミック!www
ギャバンダイナミック!wwwww >>239
ええ!?
わからないのにあれだけ長々オブジェクト指向の批判してたの!? >>240
C言語を使ってオブジェクト指向のようなコードは(回りくどくなるが)記述しよとすればできるが、
C言語にはオブジェクト指向の機能は実装されていない。
他の言語も同様。
基地外だったか… >>243
やはりオブジェクト指向は一子相伝・・・ >>244
オブジェクト指向の機能が実装されて無くても、
オブジェクト指向は出来るんだよ。 オブジェクト指向の批判として捉えようとしたからダメだったのかな...。
うーん、もう一度読み直してみます。 > >>239
> ええ!?
> わからないのにあれだけ長々オブジェクト指向の批判してたの!?
>>234
> 何を言ってるのかわからないけど、
分からないといったのはお前さんID:BlSgSv0Gだよ >>248
いやもう、オレんとこにきた新人の派遣さんだったら
ホワイトボードに書いて教育してあげんだがな… >>249
いや、理解してないのは お ま え。
オブジェクト指向のコードまともに書いたことねぇだろ。 まあ、オブジェクト指向は難しいからな
俺が気に入らない奴は全員わかってないことにしてぶっ叩いてやる >>250
うちも新人の派遣さんに、オブジェクト指向の教育をしてるよw 当たり前だが、新人でない社員は、全員オブジェクト指向を理解しているw >>254
オブジェクト指向の教育をしてるから、
殆どのフレームワークの設計を理解できるよw
ほぼすべてのフレームワークはオブジェクト指向だからね。 お前もお前もお前も全員
オブジェクト指向について素人臭くって見てらんない
唯一俺だけが理解してるし
俺以外のはオブジェクト指向じゃないからね
いいね 嘘だろ、w
少なくともお前は理解している気になっている新興宗教宣教師のスパゲティー製造機だろw
白状しろw >>254
いや、お前の新人も可哀想だわ。
staticおじさんの子供を製造しているとか恐ろしいな。 >>256
うそこけ、numpyとか山のようにあるだろ
馬脚をあらわしたなw 少なくともオブジェクト指向が世の中の多くを締めてるんだから
それを教えないのは愚の骨頂だよね。
オブジェクト指向を知らなければ、オブジェクト指向を批判することも出来ない。
(デファクトスタンダードの)オブジェクト指向がわかりませんっていう人間が出来てしまう。 なんか、加速やべえ。
オブジェクト指向がクソだと思う人は使わない。
オブジェクト指向にメリットが見いだせる人は使う。
もう、それでいいと思うよ。 >>262
では、オブジェクト指向を無視してよかった事例、どうぞ。 https://docs.scipy.org/doc/numpy-1.13.0/user/whatisnumpy.html
> NumPy fully supports an object-oriented approach,
NumPyを使うときも困るだろうなw >>262
使っているよ。
役に立つところにところではね。害のあるところでは使わない。
Java案件は使わざるを得ないかな注意して使うけど、周りかだどんどん汚いものが入ってくる >>264
なんで俺にオブジェクト指向を無視してよかった事例を聞くの?
オブジェクト指向を批判する人は、オブジェクト指向を理解してないとダメだが、
オブジェクト指向を理解したからと言って、オブジェクト指向を批判する必要はないしw >>265
中で使っているんだよ。それをアプリレイヤでは演算子で使う。
なのでOOP的な書き方とは一線を画している >>268
急に「NumPyはオブジェクト指向を中で使われてる。」と
オブジェクト指向は使われてることをアピールしてどうしたの?w NumPyのIFは手続きと演算子でOOPSが隠されているからさ。 >>270
でもNumPyの内部に踏み込むと
オブジェクト指向なんでしょう?w
オブジェクト指向教えないと、使えない人間になっちゃうよ? >>268
突っ込みどころ
1.それってオブジェクト指向をクソだと言えないのでは?
2.むしろアプリ層ほど、オブジェクト指向って重要だと思うのですが(フレームワーク的に)。
2.は何の開発をしているのかにもよるだろうけど。 「NumPy グラフ描画ライブラリ」でググると
一番目に出てくるのがmatplotlib
https://ja.wikipedia.org/wiki/Matplotlib
> Matplotlibは、プログラミング言語Pythonおよびその科学計算用ライブラリ
> NumPyのためのグラフ描画ライブラリである。
> オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。
なので、どちらにしろオブジェクト指向は必須なんだわ
オブジェクト指向が嫌いなら嫌いでいいが、オブジェクト指向を教えないのは愚の骨頂 >>272
ここに書いているだろ。
>>266
> >>262
> 使っているよ。
> 役に立つところにところではね。害のあるところでは使わない。
> Java案件は使わざるを得ないかな注意して使うけど、周りかだどんどん汚いものが入ってくる
その上で問題があり害のある使われ方がしていると
いっているんだが。
前スレではどういう場合に使うか書いたんだけれど、また長々書くのは嫌だわ なんで言語の問題じゃなくて、
「俺の周りの人間がクズなんだ」って話にすり替えるんだろうかw
類は友を呼ぶって言葉知ってる?
周りがクズなら、お前もクズだっていってるようなもんなんだよ。 >>273
matplotlibが必要があってOOPSにしたか、あるいはなんでも良かったのかは不明だから
使っているから、必要があると決め付ける。
こういうのをミスリーディングという。
>> 219 でも気になったけど
誰も言っていないのに
>例えて言うのなら
>お前「エアバッグは自動車事故を完璧に防ぐものだ」
>お前「でもエアバッグでは自動車事故は完璧に防げない」
>お前「だからエアバッグはだめなんだ」
>このセリフを一人で言ってるだけ。
と妄想して決め付ける、揚げ足取りのをミスリーディングが多くて
まじめに議論する相手としてふさわしくないな >>276
> 使っているから、必要があると決め付ける。
使ってるんだから、matplotlib使うコード書くときは必要じゃん?
オブジェクト指向が必要なフレームワークをたくさん上げればいいの?
NumPyだけで仕事できるわけじゃあるまいし
あんたが、何を言いたいのかわからん。 >>275
また決め付けた
>「俺の周りの人間がクズなんだ」って話にすり替えるんだろうかw
>類は友を呼ぶって言葉知ってる?
>周りがクズなら、お前もクズだっていってるようなもんなんだよ。
オレがそんなこと書いてないのに、答える必要はなさそうだな
どうもお前さんとは話がかみ合わないな >>276
あと、日本語が理解できてないよ。
誰も言ってないって、
「俺が例えとしてだした」んだから
誰も言ってないので当たり前じゃん。
なんで俺が言った(例えによる)説明を
他の人が言ってるはずだ。って思っちゃったのさ?w >>277
日本語苦手?
matplotlib は必要があってOOPS IFを採用したかは不明だと書いているんだよ >>278
> オレがそんなこと書いてないのに
↓書いてるじゃんw
> 周りかだどんどん汚いものが入ってくる >>279
誰も言ってないことを 人が言ったことのように書くなよ >>280
> matplotlib は必要があってOOPS IFを採用したかは不明だと書いているんだよ
え?なに?その理屈でいいなら、
NumPyは必要があってOOPSを採用してないかは不明だといえばいいの?w >>281
やっぱ日本語苦手そうだな
周りとは周辺の既存コードとかインスタンスや依存からだよ。 >>278
まずあなたは>>171のメリット説明で軽く流してましたが、あなたはOOPのメリットを理解しているのですか? >>282
人が言ったことだと思ったのは
お前のミスであって、
俺は最初から、自分の意見しか言ってない >>284
つまり、お前がコードを書くと、
周りから汚いコードを入れてしまうってこと?w >>288
今、お前が勘違いしてるって言ったばかりだよね? >>287
興味本意で聞きますが、OOPのメリットって何だと思いますか? >>291
上のほうにも書いたんだがな。なんでそんな初歩的なことをなども聞くか。
教えてクンにもほどがある。だからオレオレオブジェクト指向論者はいちゃなんだ
クラスまたはインスタンスに、メソッドがスコープ付けられていること
これは
うまく使えばメリットがあるはずの
新しいことだったんだよ。 >>292
正々堂々と間違いを語られても(苦笑)
さっき俺がオブジェクト指向は関数を組み合わせる時の
(複雑性の)問題を解決するものだって言ったよね?
お前「メリットは、クラスまたはインスタンスに、メソッドがスコープ付けられていること」
お前「だがクラスまたはインスタンスに、メソッドがスコープ付けられていることに、メリットはない」
自分で間違ったことを言って、
自分の意見を否定してるwwww >>296
お前「メリットは、クラスまたはインスタンスに、メソッドがスコープ付けられていること
これは事実である。」
と言ったってこと? 100パーセント中の100パーセントオブジェクト指向!!! >>291興味本位へお答えしますが
>>292 で「うまく使えばメリットがある『はず』」って書いてあるでしょ。
そうじゃねぇ場合も出てきたってことなのよ。 >>292
スコープなんてやけに言語仕様に依存しそうな話が出てきましたね。
ためしに聞きますけど、ポリモーフィズムってご存じですか?先程、然り気無くポリモーフィズムの例を書いたのですが、何が言いたいのかわからんと仰ってましたよね? >>299
そうじゃねぇ"場合"も出てきた = そう(メリット)がある場合ももちろんある
こういう主張ってことでいいですか? 本当のオブジェクト指向がどうたらいうの鬱陶しい
そんなもん共通見解も定義もありゃしない >>300
多態はなにやっているんだかぱっと見てわからなくなるから
上のほうでも書いたけど min max abs くらいにして
なるべく使わないほうが良いというのが最近の定説だと思うけど、
あの例は
…
の部分で内やってんだか分からんけど
共通関数かしたいのかな?くらいしかよみとれなかったがそれがなにか > 多態はなにやっているんだかぱっと見てわからなくなるから
お前の能力不足の話?
それともお前の周りが書いたコードの話? >>202
>たとえば委譲した動的階層化データ構造の中の、ある局面で一見みえないメンバがどこか遠くで 定義され参照され更新され、、、
こういった状況に陥らないようにするのがカプセル化 多態は使わないほうが良いというのが定説
というのはどこで語られてるの?
いや、マジでないでしょ?w
あるなら言ってみてよwww
(個人ブログは定説とは言いません) >>306
ぶっちゃけたこと言います。
あなた、オブジェクト指向理解してねーですよね? >>309
また変なのが湧いてきたけど、
アクセサとかmethod使ったらアウトでしょ > アクセサとかmethod使ったらアウトでしょ
それは、あなたの希望ですよねw >>312
>> 171
の
>(3)ポリモーフィズムが可能
>Storage s = new Usb();
>...
>s = new SDCard();
>
>SDカード・USBの違いを区別することなくアクセス可能。
>s.read(ファイル);
これのどこがポリモーフィズムのせつめいなの?
「違いを区別することなくアクセス可能」とかかれりゃ
同じ名前のmethodがあるのかな?
newして使いまわしてなにやりたいんだかわからん
くらいしか思い付かないぜ
だからながしたんだが >>316
あなた...Java案件をこなすときはって言ってましたよね...?
Javaプログラマーですよね? オブジェクト指向って大まかにでも一言で説明できないような難解なものなの? >>318
Usb()とSDCard()はStorageのファクトリーだって言いたいの? >>316
オブジェクト指向を勉強したほうが良くないか?w
ポリモーフィズムでその例を見せられたら、
ああ、SDCard型でもUSB(メモリ)型でも
どちらでも同じように扱える例だなって気づくでしょ?
それに気づいた上で、何かしらの意見を言うならわかるけど、
それに気づかないレベルって、単にオブジェクト指向を知らないだけだよ。 多態のデメリット
・メソッド呼び出し部分見てもどれが呼び出されてるのかわからない。
呼び出し先の処理は実際に実行するまでどれになるか不明。
・マシン語に展開したとき、処理が安全だといいづらい
必要もないのに処理の分岐先がデータと一緒に送られてきて危なっかしい。
動的に処理が決定されるというのは静的言語のメリットを殺してる面がある。
必要もなくすべてのメソッドが多態可能とか悪夢 >>150 で思いっきり社員のことを批判されてましたが、正直、あなたの実力が凄く怪しいです。
>>319
このスレ、オブジェクト指向を学ぶ人にとって毒でしかないので、Qiitaとかで検索することをオススメします。 >>320
お前が今言った「ファクトリー」はどういうものか言ってみ。
質問の意図は、お前が自身がお前の言った言葉を
理解してるかを確認するためね。 >>322
> ・メソッド呼び出し部分見てもどれが呼び出されてるのかわからない。
> 呼び出し先の処理は実際に実行するまでどれになるか不明。
実行するまで決まらないもの(例えばユーザーの設定によって決まるもの)を
実行する前にわかることってあると思うの? >>324
フォローありがとう。
たぶん、私の想像しているファクトリーと違うこと言いそう...。 >>325
なんのために「お前が今言った」って書いたと思ってんのさw
ググって見つかる「ファクトリー」と
お前が言った「ファクトリー」は違うとしか思えないから、
「お前定義のファクトリー」を聞いたんだが。
お前定義のファクトリーはお前にしかわからん。
んで、お前定義のファクトリーはどういうものさ? 俺のオブジェクト指向しかオブジェクト指向と認められていないよ >>326
IF文で分岐すれば少なくともその部分の処理は特定できる
多態したら実際の呼び出し先がライブラリ中に無数にある継承クラスのどれになるか
全部データから辿って判断しなきゃいけなくなるだろ
悪夢だ インスタンスの生成と処理を別のクラスで行うパターンのファクトリーとして書いたが。 > IF文で分岐すれば少なくともその部分の処理は特定できる
それだと、コードの中に全ての対応するモジュール名が記述されることになる。
それだと、外部プロジェクトで拡張するプラグインの仕組みが作れない >>331
このコードを見てそう思った?
インスタンスの生成はどのクラスで、
処理はどのクラスだと思った?
コードちゃんと読んでる? >>322
ポリモーフィズムには動的なものだけじゃなく静的なものもあるよ
それはトレードオフの判断であって動的だから悪いってことではない >>332
だからって何もかも多態可能にする必要ないだろ! ■ このスレッドは過去ログ倉庫に格納されています