X



オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:32:09.36ID:ifygL6bT
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
0396デフォルトの名無しさん
垢版 |
2018/09/28(金) 23:49:37.69ID:/ke/2lv3
普通はそれってオブジェクト指向エクササイズっていうんだけど
同じ表現だから同じひとなんじゃないかな
0397デフォルトの名無しさん
垢版 |
2018/09/29(土) 01:23:56.63ID:NuLdKSCl
そいやオブジェクト指向てデザパタとかメジャーなのに肝心のこっちは影が薄いな
0399デフォルトの名無しさん
垢版 |
2018/09/29(土) 02:12:47.80ID:IuTgmxg/
バカでも作れる処理は
入力の構造体と出力の構造体を関数に渡す程度で済む処理
0400デフォルトの名無しさん
垢版 |
2018/09/29(土) 09:11:35.70ID:nymKFaQh
>>398
IDEと組み合わせるには相性がよかったのかもね
あと典型的なGUIのパーツであるとか
インスペクトしたときズラズラっと出るのが気持ち良いような物に対しては
0401デフォルトの名無しさん
垢版 |
2018/09/30(日) 01:13:02.43ID:2u8tHsEV
age
0403デフォルトの名無しさん
垢版 |
2018/10/02(火) 01:05:20.08ID:A7JQSPUH
考察が浅い
0405デフォルトの名無しさん
垢版 |
2018/10/02(火) 07:20:53.80ID:JB7ad13/
>>403
確かに浅いな
オブジェクト指向のメリットは全くわからなかった
解説してる内容もそもそもクラスを使う側が構造を知ってないと使えない例で書かれてて笑う
0406デフォルトの名無しさん
垢版 |
2018/10/02(火) 07:35:05.76ID:ju0/OZW1
キータって参考になる記事あんまりないんだよな。ある程度の知識もっているのが前提になってるし
プログラミング関連で検索すると常に上位でヒットするのが嫌だわ
0407デフォルトの名無しさん
垢版 |
2018/10/02(火) 09:44:25.77ID:3qG7W8x7
>>402
こういう嘘歴史書いて悦に入っちゃう自称識者のほうがゴリラみたいな底辺コンサルよりずっと始末が悪い
0410デフォルトの名無しさん
垢版 |
2018/10/02(火) 12:34:43.67ID:AvMzrL7k
ゴリラコンサルの所業

朝礼で歌を歌わせる、挨拶の練習
○○(会社の名前)イズムの継承と言ってブラック労働を肯定する
定期的に変なセミナーに通わされる
0412デフォルトの名無しさん
垢版 |
2018/10/02(火) 18:20:49.67ID:/RdnJML/
qiita.comは動機が不明
なぜ頼まれもしないのに不確かな二次情報を書き散らすのか
なぜ頼まれもしないのにノイズをせっせとネットに増やすのか
あれってお金でももらって記事を書いてるのか?

stackoverflow.comは単純
質問者がいて、答えてあげたい人が要る
質問にも回答にも評価がされるようになっており
有益な情報が共有できるようにつくられてる
質問者、回答者、閲覧者の動機がよくわかる
0416デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:50:57.77ID:eaArETqj
教えたがりのクズのくせに答えたあげたいとか言っちゃう気持ち悪さw
0417デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:56:41.61ID:YaWzkSZx
>>412
書いたことあるけど、昔はもうちょっと面白い場だった。
こんなの面白かったよ、とか試してみた、とか。
今は何かというとポエムやら言う奴が出てきたり、本気でレベル低い人も何番煎じかわからん記事書いたりして、収拾ついてない。
コミュニティとしては死んでいってると思う。
0418デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:59:28.60ID:Weccy6g3
>>412は便所の落書きのアホさ加減が光る書き込み
0419デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:06:51.71ID:eaArETqj
昔は良かったボクちゃんw
0420デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:24:30.19ID:JlZ/oy05
qiitaはメモ帳として結構便利
家で調べて纏めて仕事ですぐ使えるようにする
githubにテンプレートを置いとくと尚良
0422デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:30:00.28ID:clFFurIb
俺は結構便利だと思ってるけどな
新しいことのとっかかりにしたり
頭の中にない情報を得るのに使ってるわ

まあゴミ記事も多いけど
0424デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:38:05.56ID:eaArETqj
そもそもなんでqiita検索しとんねんwアホやろw
0425デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:43:51.32ID:YrRJAaFS
ほんの少しだけいい記事もある。

今オブジェクト指向に関するポエムが乱立してるのはアホみたいだがな。
0426デフォルトの名無しさん
垢版 |
2018/10/02(火) 21:14:37.02ID:R8M7QKDK
qiitaみたいなしょうもない個人の日記帳読んでるヤツいるの
0427デフォルトの名無しさん
垢版 |
2018/10/02(火) 21:27:51.22ID:WxkRXB6W
個人の日記帳として読んでる
0428デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:21:33.48ID:HWestuUb
5chみたいな便所落書き読んでる奴いるの?
0429デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:35:01.96ID:/RdnJML/
便所の落書きはむしろ健全なんだよ
書くほうも読むほうももうそれは分かってるから

>>417
> 何番煎じかわからん記事

ほんとそれ
検索結果を汚すのはもうやめて…
つべの歌ってみたレベルで悲しい
0430デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:35:39.44ID:BVvmn2A/
そんなことは自己紹介板に書きなよ
0431デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:37:06.75ID:BVvmn2A/
>>430>>428
0432デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:49:52.65ID:m0qWbxoK
何か上から目線だけどどこのサイトでもいいから
自分で正しいこと書けばいいんじゃないの?

それで次に言うのは
「ゴミポエムだらけでオレの記事が正しく評価されない」
0434デフォルトの名無しさん
垢版 |
2018/10/02(火) 23:00:45.18ID:1/02bXao
>>432
結果として自分のブログに戻ったよ、俺は。
まあゴミに埋もれる程度ならその程度の評価だと思うし。
0435デフォルトの名無しさん
垢版 |
2018/10/02(火) 23:02:07.94ID:/RdnJML/
> 自分で正しいこと書けばいいんじゃないの?

何で分かってくれないの…
自分で正しいと思ったことを「書かないで」と言ってる

歌ってみた?歌わんでいい
書いてみた?書かんでいい
0437デフォルトの名無しさん
垢版 |
2018/10/02(火) 23:26:49.40ID:R8M7QKDK
オレのレスは有益
0442デフォルトの名無しさん
垢版 |
2018/10/03(水) 00:59:18.00ID:75/JdiDV
オブジェクト指向とは何で
何が良くて
何が悪くて
そしてどうしたらよかったのかとか
纏められるといいんだけれどもねえ
0443デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:01:35.24ID:75/JdiDV
目的指向というよりも
手段指向というか方法論指向で始終しちゃって
明後日の方向に愚民を導いて
混乱をもたらしたのは
なんともむなしい
0444デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:03:16.82ID:75/JdiDV
日本の失われた20年とちょうど時期が重なる
日本のITの暗黒時代
0445デフォルトの名無しさん
垢版 |
2018/10/03(水) 01:03:23.91ID:Uljc2mte
>>441
手強いよ
さらに誰に金もらってるのか
特定の言語や商品の悪評を流すことを目的としてるから
0447デフォルトの名無しさん
垢版 |
2018/10/03(水) 10:56:50.79ID:gykQQ827
邪魔する奴の中に
単純に自分を有利にしておきたいから他人が自分の居るレベルまでこれ無い様に邪魔をする
という奴も居るからな
相対的な位置で報酬は決まるから他人を蹴落とす
というのを息をするようにやる奴がかなり居る
全体が進展するより停滞させて自分だけ有利にしようとする下劣な奴が結構居る
教育を変える必要が有るのに今のままでいい
とか言ってる奴もそういう連中
0451デフォルトの名無しさん
垢版 |
2018/10/03(水) 19:23:56.48ID:ksSGRyva
まさか日本語版とかいうゴミ見てるんじゃないだろうな…まさかな…
0454デフォルトの名無しさん
垢版 |
2018/10/03(水) 20:03:14.53ID:OyXOgA+h
>>444
その時期に書かれたコードでOOPを正しく実践してるものなんて見たこと無い
OOPが悪いのではなくOOPじゃなかったから悪いということになるな
0456デフォルトの名無しさん
垢版 |
2018/10/03(水) 20:50:59.00ID:L7SsoV0I
海外でHelp me, Stackoverflow. You’re my only hope.って書かれたTシャツ着たやつ見るくらい
0457デフォルトの名無しさん
垢版 |
2018/10/03(水) 22:09:14.84ID:2Mgu08sP
>>454
今なら正しくOOPを実践してるコードばかりなの?
そもそも正しいOOPってどんなものなの?
第一デザパタは前の方がさかんに取りざたされていたじゃない。

振り返って今だからこそ分かるんじゃじゃないの?
世に流布していたOOPはくそコードを量産した元になったと。
0458デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:08:05.48ID:G0/tEBDY
我々はね、間違うのよ
だいたいのことを間違うの

OOPだから糞コードになったんじゃなくて
OOP関係なく、糞コードにしかならないの
その一点についてすら自覚が無いの
0459デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:16:15.49ID:p3pJJViF
main関数から始まるc++はオブジェクト指向か?
(オブジェクト指向をちっとも理解してないものの意見です)
0460デフォルトの名無しさん
垢版 |
2018/10/03(水) 23:39:24.91ID:YTuGf5mm
>>459
C++はオブジェクト指向(をサポートした)言語だよ
Cと違って継承や多態の機能が標準であるでしょ?
今からふり返ると中途半端な部分もあるけど

ただそのC++を使って書いたコードが
オブジェクト指向らしく書けているかは別の話
OOPとOOA(D)の違い
0461デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:22:43.55ID:e2lTbi2R
>>458
OOPの弊害について議論して来たのに
「OOP関係なく、糞コードにしかならない」と言われると、
OOPは糞コードの元となる害なかった無関係だと暗にほのめかしているようで
論点をすり替えてずるくごまかされたような印象を受けるよ
0462デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:28:26.90ID:bhAz8In7
OOPが原因で糞コードになるんなら
どうすればいいか一目瞭然じゃん
よかったな世界が平和になって
0463デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:32:28.79ID:e2lTbi2R
本当はいいものとなる筈だったのに、
ボタンを掛け違えたのか、変な使い方が一人歩きして普及しちゃったというか
なんというか、、、

最近は継承を廃止したり
他のパラダイムも併せた言語がどんどん出てきて
より良い解はいっぱい出て来るでしょう
0465デフォルトの名無しさん
垢版 |
2018/10/04(木) 00:53:04.18ID:e2lTbi2R
んなもん使い方しだいにきまっとろうが
基本的に依存が込み入る元なので
十分静的に設計し尽くしてよほど律して使用するならともかく
変なテクニックを披露するため乱用したら害だろうな
悲惨だわ
0467デフォルトの名無しさん
垢版 |
2018/10/04(木) 21:04:04.79ID:lUzJxSj8
関数型の弊害の話をしたら必然的にオブジェクト指向の弊害の話になると思うの
0468デフォルトの名無しさん
垢版 |
2018/10/04(木) 21:07:13.85ID:vhCji18k
弊害ちゃう元からおまえの頭が悪いだけや
0469デフォルトの名無しさん
垢版 |
2018/10/05(金) 01:42:06.04ID:GLbBoG3S
これがオブジェクト指向を吹聴していた者たちの反論か…
科学的工学的有効性のかけらも無い
0475デフォルトの名無しさん
垢版 |
2018/10/05(金) 11:10:54.95ID:HilDODP3
クソとか言っている人間の方がよっぽど
>科学的工学的有効性のかけらも無い
と思うけど
0477デフォルトの名無しさん
垢版 |
2018/10/05(金) 14:35:10.66ID:kQel6lTj
べつにオブジェクト指向の概念は関数で実装しなくてもいいんだよ?
メッセージでもいいしな。
0478デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:01:51.18ID:LmyRE988
OcamlやF#のようにオブジェクト指向と関数型パラダイムを合わせて持つ言語もあるが、
内容は覚えていないけど本質的・理論的にはこの二つのパラダイムは相反するものだと聞いている。
確かに局所的、ミクロに上手くかかれた関数型の呼び出しは
型クラスのような複合構造の使う余地はもはや無く、自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
相反するのもうなずける話だと思っている。
OcamlやF#は詳しくないがどのレイヤでオブジェクト指向と関数型を使うかが分かれるんじゃないかな
numpyで関数の返り値が気がつくと内部クラスのオブジェクトになってた、みたいな。
0479デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:23:54.73ID:wNGV+/Yb
>自然なスコープで
各記憶クラスのインスタンスにアクセスを表現できるから
この辺が気になる
オブジェクト指向プログラミングの場合は
クラス内に操作対象(変数)を封じ込めてクラス外からアクセス出来ないようにして
グローバル変数が各所からアクセスされることで無限のアクセスパターンになるというのを避けている
というのが肝なんだと自分は思ってるんだけど
関数プログラミングは難しくてさっぱり且つ入門もまともにやった事ないんだけど
状態なんかを副作用?とか呼んでなるだけ外に出す
という方法で対処する
みたいだそうなんだけど?
その辺どうなんだろうか?
少し上の方にその話になりそうな流れが有って少し期待してたんだけど
違う方向に流れたようで残念だったんだけど
0480デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:49:03.56ID:LmyRE988
>>479
俺の書ける範囲で述べると、
身近な局所変数>一層外側のブロックの内部変数>。。。>大外側の大域変数
というスコープ階層は知ってるよね?

これに加えて関数呼び出しの階層
特に相似的階層構造の再帰で自然に繰り返しの表現(最終的には末尾再帰を
最適化で単純なloopに変換したコードが生成されるのだけれども)

この論理的(≠物理的)関数呼び出し階層構造では、
各階層における引数リストと返り値リストの相似的階層構造が
型クラスとその継承や委譲による階層構造のようなランダムで管理しにくいネットワーク構造としなくても
管理しやすい入れ子のスコープおよびエクステントの階層構造としてメモリ上に構築し自然に
アクセスできるイメージ

これで伝わるかな…
0481デフォルトの名無しさん
垢版 |
2018/10/06(土) 00:59:33.53ID:LmyRE988
>>480
lexical scope・extentと
関数呼び出し階層のネスト・木構造
で複雑なデータ構造の関連性が自然に細分化できる
同時に処理の細分化も速やかにできる
勉強している人にはこれで伝わると思う

型クラスとかアクセサでカプセルかとか継承とか全いらない
0482デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:01:28.94ID:qfHN3zvO
関数型というかHaskellのええ所は>>260でいうパーツの切り分けが強制的になる所もあるよな
全てパターンマッチのワンライナーで関数が細かくブツ切りで出来るから後の編集しやすい
0483デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:02:29.25ID:LmyRE988
ただまぁ万能ではなく、
別の弱点(副作用のアル処理の扱い、学習コスト含む)
もあるので俺はfunctionalマンセーではないけれど
0484デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:31:10.16ID:LmyRE988
多態性についても文句あんだよねおれは。
あんあもの動的言語ではそもそも意識する必要も無い空気みたいなもの
それを変に応用して話をややこしくして…
まあ別途機会があれば書くかもしれないけれど。
かかないかおもしれない。

あどオブジェクト指向とその変な一時的流行で迷惑したのは
非科学的で誤ったオブジェクト指向論を信条として、それを宗教のように吹いてまわり
周りに強制し、反論すれば非難。でも自分ではたいしたソリューションのためのソフト開発できない
みたいな工程論・方法論者が跋扈して
開発者を煩わせたこと
0485デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:38:18.52ID:9tCZRFgp
書籍も全部一色だったし
MSが金出してただろうししゃーない
雑誌社も何の根拠もないのにオブジェクト指向マンセーだったよね
本当に技術を見定める能力があればそれが詐欺であると気づいたんだろうな
多くの人間はそうでは無かった
0486デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:41:57.53ID:LmyRE988
本当に有効な機能だけ自律して使えば有効な面もあったかもしれないけど
人間てそんなに器用じゃないし
群衆や社会問題って
チコちゃんの言う氷河期からそんなものだったのかもしれない
0487デフォルトの名無しさん
垢版 |
2018/10/06(土) 01:43:22.02ID:LmyRE988
今でもオブジェクト指向からDNNやAiにステージを移して
同じようなことが続いている
0488デフォルトの名無しさん
垢版 |
2018/10/06(土) 02:03:28.62ID:LmyRE988
でもまnumpyやtensorflow,kerasなどのFWソースをたまに眺めると
よくまあここまで練り上げたなと感心するくらい上手にクラスベースOOPをつかって
ソフトウエアの構造を表現している。そしてすごいスピードでreviseする。
べらぼうな才能と手間と時間をかけてクラスベースOOPでソフトウエアを表現しようとしている
あれは(個人的に好きではないけど)見事だとうなってしまう。
優秀な者が活躍して、採用したパラダイムが茨の道に密だとしてある水準まで力強く構築しようとしていると思う。

翻って上のレスで揚げたような日の本のオブジェクト方法論指向論者は
なんと
プアーなことか

同じOOPでも同列にみなしてはいけないんだろうな
0489デフォルトの名無しさん
垢版 |
2018/10/06(土) 02:13:25.41ID:LmyRE988
ちなみにpythonの言語仕様自体は
涙なくして語れないほどのクソだと俺は思っている

なんか文句あるか?
               ___
               /     \
             / ─    ─ \
            /  (●)  (●) \
              |     (__人__)     | <かかってこいよ
           ,.゙-‐- 、  `⌒´   ,/    おらー
        ┌、. /     ヽ ー‐  <.
         ヽ.X、- 、   ,ノi      ハ
      ⊂>'">┐ヽノ〃     / ヘ
       入 ´// ノ        } ,..,.._',.-ァ
      /   `ー''"´      ,'  c〈〈〈っ<
     /          __,,..ノ ,ノヽー'"ノ
      {          ´    /  ``¨´
    /´¨`'''‐、._        ,'\
     ∨´     `ヽ、     ノ   ゙ヽ
      ∨      ヽ _,,..-'"    `ヽ
     ∨       〈-=、.__       }
      ヽ、     }   ``7‐-.  /
          ヽ     リ    /′  ノ
          /′  , {     /   /
        {     !   ,ノ  ,/′
          !    /  /   `‐-、
        !   ,/   ゙ー''' ー---'
          ',  /
        {   }
           ゙Y `ヽ、
            ゙ー--‐'
0490デフォルトの名無しさん
垢版 |
2018/10/06(土) 07:19:55.96ID:hM5EPMW3
pythonにprivate変数はありません。
pythonにswitch文はありません。
pythonのクラス関数はselfを第一引数に
命名規則は決められたものを守りましょう
インデントはスペース4つ
括弧の書き方でsetになったりdictになったりします
一列の文字数は79文字以内

(一部言語仕様でないのも書いてるけど)利点でもあり欠点でもあるな
0491デフォルトの名無しさん
垢版 |
2018/10/06(土) 07:35:40.78ID:vpFDdLxA
>>181

まとめると:
  Python のオブジェクト指向はクソ
0492デフォルトの名無しさん
垢版 |
2018/10/06(土) 11:22:52.91ID:LmyRE988
>>490
一番クソなのは初期の段階でブロックとlexical scopeを配慮して言語設計しなかったこと
今でも引きずっている
0494デフォルトの名無しさん
垢版 |
2018/10/06(土) 13:08:17.37ID:LmyRE988
>>493
飲んで2chにポエム書くことくらい大目に見なよ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況