カプセル化の有害性、オブジェクト指向は愚かな考え

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/06/18(木) 23:47:36.69ID:l/2SQUll
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。

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

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性」として「カプセル化は絶対にやめろ」としている。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
2020/06/25(木) 12:25:19.77ID:XTsRyKlX
クラス使っても、staticにするとか訳のわからない事を言い出すし、根本的にオブジェクト指向を理解していない人達が愚痴っているだけだよな。

むしろ、何でもstaticにするのはC言語やC++言語から入った初心者なら誰もがやる失敗。
そんな初心者の失敗をいい歳したおっさんが、オブジェクト指向を批判しながらstaticを勧めるから駄目なんだよ。
我々からすれば、俺らの黒歴史時代の経験を何で上から目線で偉そうに語っているんだ?って感じだね。
流石に、上から目線で語る程、俺の黒歴史は酷くなかったぞ。
2020/06/25(木) 12:43:43.74ID:KZb+gCmD
カプセル化が要らない、と言うのなら、

誰もがデータを読み書きできる状態でどうやってアトミック処理を保証するのか

を教えて欲しいな。
もしかしたら大発明かも。
2020/06/25(木) 12:49:36.79ID:Q34w5rfS
>>160
内包されるよりいくらかCool
ただ、そこまでpublicにできるならstaticにしてほしい
実行時にstatesがnoneでないと正しく動かないんですよこのメソッドって
言われても知らねーよそんなのって感じ
じゃあstatesはどうやってnoneにするんだべって
俺に調べさせるのやめてもらっていい?

もっと言えばstaticにすればそんなことないじゃん?
2020/06/25(木) 13:01:46.41ID:9YSX2wtH
>>163
内包したらテストできないだろ?
2020/06/25(木) 13:06:39.24ID:XTsRyKlX
そもそも、クラスって正常に動く前提で使うものであって、なんで、クラスを使う側がクラス内部動作をテストしないといけないのかわからん。
クラスのテストは、クラスを実装する側の責任だろうに。

...というツッコミをそろそろしてもいいかな?
2020/06/25(木) 13:17:56.03ID:p+gLKGcc
>>165
それに類することをすでに>>139で指摘したんだが、自分考えに凝り固まった意固地なおじさんには通じなかったようだ。
2020/06/25(木) 13:23:03.90ID:p+gLKGcc
>>163
そのstatesがnoneでなければならないという仕様は、そのクラスの使い方として外部に明示すべき仕様だろう。そそういう情報が示されていないならドキュメントの不備だし、そういう仕様が公開されていても外部からstatesの値を参照または設定できないのなら設計の不備だろう。
延々と繰り返し指摘しているように、それはオブジェクト指向そのものの問題でなく正しく設計、運用がされていない問題だろう。
2020/06/25(木) 13:29:58.05ID:XTsRyKlX
>>166
あっ、ほんとだ。
2020/06/25(木) 15:28:55.17ID:xmAi/11M
カプセル化の最大のメリットは中で何をしているかどうなっているかは気にせずに
外からは引数を与えると仕様通りの値が戻ってくるというところだよね?
170デフォルトの名無しさん
垢版 |
2020/06/25(木) 16:47:53.33ID:CiEXbKUP
グローバル変数に格納されている値で関数の挙動が変わるより悲惨だぞ。
グローバル変数が見えないんだから。
2020/06/25(木) 16:52:12.11ID:BM3o+zlw
ん?
2020/06/25(木) 17:00:47.93ID:XTsRyKlX
ID変えて振り出しに戻るって奴?
2020/06/25(木) 17:03:53.35ID:p+gLKGcc
ここまで話の通じない奴だと思うと相手するのがバカらしくなってくるね。まさに徒労という言葉がふさわしい。
2020/06/25(木) 19:27:44.23ID:RQlIhWFK
>>39
カプセル化こそが善
カプセル化こそがOOPのうまみ
2020/06/25(木) 19:35:56.42ID:oGWS7APt
全部staticってどうするんだろう
メソッドの引数すごいことになってそう
176デフォルトの名無しさん
垢版 |
2020/06/25(木) 20:15:30.81ID:LQ8CyLE7
オブジェクト指向のあらゆる用語が
ノムリッシュみたいになってると思う

JavaScriptが発展して、クラス名と同じ名前の
ファイル名にしなくていい事が分かったわけじゃん
それどころかクラスすら必要なしでオブジェクトが作れる事が
分かったわけじゃん
クラス名と同じ名前のコンストラクタなん定義しなくても
オブジェクトが作れる事が分かったじゃん

オブジェクトとは詰まるところ連想配列と大して違いが
ないキーと値で構成された入れ物でしかない事がわかった。
この「連想配列と違いがない」というシンプルな真実が
どれだけありがたいことか

クラスを始めとする様々なルールは
ソフトウェア設計上の重要な概念かと思ってたら
単なるJavaの変な言語仕様でしかなかったわけだ。
変数を「フィールド」
関数を「メソッド」
関数を「コンストラクタ」
こう言い換える必要がどこにある?

こんなノムリッシュなバズワードに
今までどれだけ煙にまかれて
シンプルな真実が見えなくなってたことか
2020/06/25(木) 20:22:00.90ID:9YSX2wtH
>>176
3行でまとめて
178デフォルトの名無しさん
垢版 |
2020/06/25(木) 20:24:37.53ID:LQ8CyLE7
それに加えて
「継承」「抽象クラス」「オーバーライド」
「カプセル化」「ポリモーフィズム」
こんな用語は必ずしもやるのが正しいものではないし
やればやるほどシステムを必要以上に複雑にして
邪魔にしかならないものばかり

それなのに
「オブジェクト指向の本質は継承とカプセル化とポリモーフィズムだ。」
なんて馬鹿げた事を言い始めるノムリッシュな奴が出始めて

JavaScriptならオブジェクトの内部に
別のオブジェクトを入れるという一瞬の操作で
終わるものを「委譲」など余計な用語を定義して

わざわざ定義しなくてもいいようなくだらない
小難しそうな用語だらけになって
「お前はooの概念を正しく理解してない」
という偉そうな批判がどれだけ飛び交うことか
179デフォルトの名無しさん
垢版 |
2020/06/25(木) 20:31:34.09ID:LQ8CyLE7
webフレームワークの
MVCの「モデル」ってそんなに重要ものなのか?
「モデル」なんてものがSQLやDBMSを隠蔽して
何がありがたいと言うのか
むしろ隠蔽されて困ることの方が多いんじゃないか?
何故一度テーブル作成時にて定義した
大量の列定義を
またモデル層のフィールド定義で2度もやり直さないといけないのか
要らないだろ。「モデル」なんて

最近は従来軽視されてきたクライアントサイドJavaScriptの
方がよっぽど重要なことが分かってきて
ReactやVueのようなクライアントサイドフレームワークが
重要視されてるわけじゃん

「オブジェクト指向」って結局何がありがたいのよ?
2020/06/25(木) 21:03:02.32ID:9YSX2wtH
1行でまとめて
2020/06/25(木) 21:03:32.44ID:9YSX2wtH
> 「オブジェクト指向」って結局何がありがたいのよ?

多くの人で作業分担し、協力してプログラムを作れる所
2020/06/25(木) 21:03:50.52ID:9YSX2wtH
ReactやVueはオブジェクト指向
2020/06/25(木) 21:03:50.90ID:lu0UaGfG
>>177
Javaなんてクソを
オブジェクト指向の代表として考える
かわいそうな子
2020/06/25(木) 21:04:45.08ID:9YSX2wtH
>>183
Javaはオブジェクト指向を採用した言語の一つだよ
いつから代表になったのさ
お前が代表だと思っていて、代表だと思ってる自分自身を批判してるだけじゃんw
2020/06/25(木) 21:05:53.76ID:lu0UaGfG
>>180
抽象化を理解できないかわいそうな子
2020/06/25(木) 21:09:21.00ID:9YSX2wtH
>>185
お前の文章の話をしてるんだが。
そもそも読んでないのに、抽象化が何の関係があるんだ?
2020/06/25(木) 21:17:15.89ID:lu0UaGfG
>>184
>>177
>クラスを始めとする様々なルールは
>……
>単なるJavaの変な言語仕様でしかなかったわけだ。

で、「いつから代表になったのさ」がなんだって?
数スレも遡れないようじゃ生きていくの大変だろうに……
2020/06/25(木) 21:43:56.18ID:9YSX2wtH
だから読んでないと言ってるw
2020/06/26(金) 02:54:16.76ID:uM2i3sYA
関数化したりクラス化したらプログラムが高速化したんだけどGCが発生するタイミングが細かくなったってことでええんか?
2020/06/26(金) 07:35:03.68ID:eLfJJdHb
オブジェクト指向は整理術
棚なんて要らん棚があるから余計な物も管理する羽目になると床置する人が現実に居るのと同じ
2020/06/26(金) 08:53:43.63ID:crXMwmqp
まああまりに糞な抽象化だともう全部publicでレコードとして扱えやとは思うな。
抽象化を万能なものと思い込みすぎな馬鹿が多すぎるからオブジェクト指向に対する誤解が生まれる。
2020/06/26(金) 09:44:19.22ID:8zz5Zpvs
っていうか抽象化ってどんな仕様のどの部分を一括に扱ってるのか?
ドキュメントがないと最悪
ここの仕様は特殊だからこれとは別にしないとなって話ができない
ドキュメント書かないなら抽象化するな
害悪でしかない
193デフォルトの名無しさん
垢版 |
2020/06/26(金) 09:50:43.03ID:Op8/e6Io
>>190
直置きはダメだが
ほとんどの場合「棚をしまう為の棚」
「それをしまう為の棚、それをしまうための棚…」
ってなってる

で、「ハサミ使いたいんだけどどこにあったっけ?」
って探すのに非常に苦労する。
見つけやすくするための棚だったはずなのに。

それどころか
棚「ハサミは内部で使うから自分で使わなくていいです。
『切る 』という目的だけに集中して、そう命令してください」
と、棚に言われる。
しかし切られた結果を見ると自分が欲しかった結果と微妙に
違うことがよくある。
だから「もう俺が直接切るから、いいからハサミをよこせ」
っていう話になる。


あと抽象化については
「これは抽象的な棚なので中には何も入っていません。
私を参考にした具体的な棚が何処かにあると思うのでそれを
探してください。」となる。

じゃあ「具体的な棚って一体どれだ?なんか長い名前の棚が
やたら沢山あるけどどの棚から探せばいいんだ??」
となる
2020/06/26(金) 09:55:00.00ID:50iMo9Ym
>>193
たとえ話はややこしいだけで何の意味もないから
具体的な事例で言えよ
2020/06/26(金) 09:55:48.09ID:50iMo9Ym
具体的に何のことを言ってるのか
考えなきゃならんようなたとえ話に価値はねーからな
説明が下手すぎる
2020/06/26(金) 10:13:27.50ID:wYfFflLL
>>193
整理が下手なやつの例をあげて、だから整理はすべきでないと言ったって意味がないだろう。
2020/06/26(金) 10:36:41.37ID:klgKDCEw
このスレにstaticおじさん、絶対沸いてるだろ。
2020/06/26(金) 10:41:42.69ID:s43csjES
>>193
だから具体的な問題>>162に答えてくれよ。
複数のプロセス・スレッドが勝手気ままにデータを処理しても問題ない、というならおめでたいわ。
2020/06/26(金) 10:42:57.59ID:8zz5Zpvs
>>198
そんときだけ使えばいいじゃん
それ以外じゃ使うなよ
2020/06/26(金) 10:54:38.35ID:crXMwmqp
>>198
アルゴリズムレイヤーでアクセスを無駄に禁止するようなクラスは有害でしかない。
適切なpublic具合というものがある。
例えばc++のstd::vectorなんかはかなりオープンアクセスなクラスだがあれが適切なんだよ。
でもって馬鹿に適切なアクセス制御なんて無理ってこと。
変に細かくするな。
馬鹿はクラスレベルで制御なんかしないでいいからモジュールレベルでアクセスするapiだけ公開してろってこった。
2020/06/26(金) 10:58:13.55ID:uqHA56uo
適切なpublic具合
2020/06/26(金) 11:23:09.67ID:TcIyIoqu
トレードオフを理解できてないうちはどっちもどっち
物事の一面しか見れてない

>>190>>193の比喩は理解の程度が知れるという意味ではすごく有意義
2020/06/26(金) 11:38:31.41ID:TyDtokvS
適切なpublic具合=ジャイアンルール
2020/06/26(金) 11:48:31.80ID:klgKDCEw
>>200
たぶん、162はクラスユーザーが呼び出した処理を実行している最中に内部処理を呼び出したら破綻するけど、いいのか?って言いたいのだと思う。
適切なアクセス修飾子をつけろは同意だが、彼に言うことではないと思う。
2020/06/26(金) 11:51:10.08ID:klgKDCEw
まぁ、スレッドがどうこうは...private関係あるのかな?って感じですが。
2020/06/26(金) 12:36:59.06ID:s43csjES
>>199
好き勝手にデータに読み書きできるのに、どうやって「その時だけ」を保証するんだよ。

結局カプセル化必須じゃねぇか。
何のアイディアも無しか。アホらしい。
2020/06/26(金) 13:04:36.71ID:8zz5Zpvs
>>206
そういう場所だけそうすればいいじゃん
全部そうなら無能過ぎてプログラム組む前にもっとやることあるんじゃないかなぁ
208デフォルトの名無しさん
垢版 |
2020/06/26(金) 13:19:36.46ID:SlEx0yXd
大昔、Javaやりだしてイキりだしたやつらが、オブジェクト指向もできない
老害とか騒いでいた歴史がある。そんな老害から見ると、gcに難しい事をまかせて、
馬鹿を吊り上げる仕組みなんだよなあ〜と皆言っていたのを思い出した。
今はPythonね。もっさ〜として、ダサすぎ。でも「俺AIの最前線だぜ」とか勘違い。
歴史は繰り返すのだ。
2020/06/26(金) 13:22:51.90ID:TcIyIoqu
atomicityを保証するのを
呼び出し側の責任とするのか呼び出された側の責任とするのかは
pros/cons考えて使い分ければいい話でカプセル化必須とかにはならないよ

使う前にopenして終わったらcloseしてください的なAPIと
open/close含めて全部やってくれるAPIの違いと同じこと
2020/06/26(金) 14:22:11.40ID:d6LVEoDZ
>>208

> イキりだしたやつらが、
> 馬鹿を吊り上げる
> ダサすぎ。

うわぁ。典型的老害だな。
2020/06/26(金) 14:30:22.45ID:uqHA56uo
すげえ、スレタイも日本語になってなくて、さらにまともな議論にすらなってないのに盛り上がってるw
オブジェクト指向じゃないやつのオブジェクト指向型言語のコード見れると思ってきたが、カオスだなw
2020/06/26(金) 17:24:31.99ID:MKv++1da
staticおじさんの詭弁ばかりで議論にすらならないから、もう、staticおじさん隔離スレ作った方がいいかもね。

【隔離】オブジェクト指向アンチスレ
みたいな感じで。
2020/06/26(金) 17:45:37.11ID:pGd8NqU0
>>212
もういっそのこと、こんなんでどうだろうか?
【老害】staticおじさんと戯れるファンの集い【詭弁】
2020/06/26(金) 18:11:48.36ID:QQ2hFNnS
カプセル化はオブジェクト指向に限らずあるんだが
privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足
2020/06/26(金) 18:24:19.05ID:xc/k+9g/
privateとprotectedの使い分けってみんなどうしてる?
俺は昔はpublic以外はよほど理由がない限り全てprivateにしてたんだけど、最近はよほど理由がない限り全てprotectedにするようになったわ。
2020/06/26(金) 18:33:11.88ID:50iMo9Ym
protectedはよくわからんので基本private
必要になったらprotected
必要ないならprivateでいい
変更してはいけないというルールはないんだから
2020/06/26(金) 18:33:48.93ID:eLfJJdHb
オブジェクト指向は素晴らしいだろ
金正恩という概念から好きなだけ金正恩を生み出せるんだぞ
staticじゃ1匹しか生み出せない
その1匹が糖尿で死んだら北朝鮮は成り立たない
2020/06/26(金) 18:36:58.13ID:eLfJJdHb
金与生は金正恩を継承したクラス
もしくは金日成の多態
2020/06/26(金) 18:37:59.75ID:eLfJJdHb
将軍様クラスのプロパティに性別があったとは思わなかったけど
2020/06/26(金) 18:38:24.42ID:50iMo9Ym
つまらんよ
2020/06/26(金) 18:39:33.79ID:eLfJJdHb
北朝鮮人ならえげつない死刑
2020/06/26(金) 18:42:48.62ID:QQ2hFNnS
金正恩というデータから好きなだけ金正恩産み出すのはオブジェクト思考に限らずできるんだが
オブジェクト指向と全く関係ない
勉強不足
2020/06/26(金) 18:59:47.63ID:MKv++1da
>>214
> privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足

それな。
カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。

>>215
基本的にはprivate。自分が定義したメンバ変数やメソッドを継承先がどのように使うのか想像ができないのなら、privateにした方がいいと思っている。
継承先で意図しないメソッドの呼び出しや、変数の使い方をされたら困るからね。
当然、継承先での用途を考えた上でprotectedを使う場合もあるけどね。
2020/06/26(金) 19:08:51.52ID:QQ2hFNnS
いやもうお前らprivateとかprotectedとかいう言葉を使ってカプセル化を語るのやめたほうがいいよ
privateという機能がなくてもカプセル化は実現できるから
百歩譲ってデータ隠蔽だけをカプセル化と呼ぶにしても、privateのように外からのアクセスを不能にする機能がなくてもカプセル化は実現できるし
2020/06/26(金) 19:12:26.17ID:fnCF+h71
>>224
そんな方法あるんだ、どうやってやるの?
2020/06/26(金) 19:34:06.00ID:eLfJJdHb
>>222
オブジェクト指向でしか出来ないことがあるとでもw
2020/06/26(金) 19:47:03.28ID:crXMwmqp
pimpleパターンくらいは知っとけよ。。
てかカプセル化について馬鹿みたいにこだわる奴でまともなインターフェイス設計できる奴見たことねーわ。
リファクタリングもしないで一発で正解にたどり着けるとでも考えてるんだろうな。
2020/06/26(金) 19:48:24.03ID:SG/+b/+N
pimple 覚えた pimple ニキビ 覚えたpimple pimple
2020/06/26(金) 20:33:23.82ID:QQ2hFNnS
オブジェクト思考言語アレルギーの老害は論外として

特定のオブジェクト指向言語を習得している人は無数にいても、
オブジェクト指向そのものを理解してる人は殆どいなそう
230デフォルトの名無しさん
垢版 |
2020/06/26(金) 20:37:52.02ID:Op8/e6Io
>>229
それってオブジェクト指向という概念そのもの
がおかしいものだからですよね?
っていう議論をずっとしてるんですが
誰にでも理解出来て納得出来ることが正しい
ことだと思うんですが
2020/06/26(金) 20:43:25.43ID:ODDHilOW
> オブジェクト指向そのものを理解

どういうこと?
アランケイがどう考えたとか
OOPがどういう成り立ちだとかそういういこと?
2020/06/26(金) 20:54:59.05ID:0CWC8I0Q
アランケイが考えたオブジェクト指向は洗練され完成されたオブジェクト指向なのです。
初号機が最強であるのはどこの世界でも同じことです。
初期版が完成です。改良などありえません。
2020/06/26(金) 21:47:56.68ID:ks+n8Bmz
第一、privateサポートしてない言語なんて普通にあるしな。Javascriptなんてそうだし。
234223
垢版 |
2020/06/26(金) 21:51:49.87ID:ks+n8Bmz
あ、ID変わっちゃった。223です。
2020/06/26(金) 22:03:26.05ID:TcIyIoqu
>>223
>カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。

カプセル化といった時に一般的な定義は2種類あってそれはそのうちの1つで情報隠蔽(Infomation Hiding)とほぼ同じ意味

もう一つはデータとそれを操作する関数/メソッドを一つの単位に束ねることを言う(隠蔽されてるかどうかは気にしない)

人によっては2つを合成した定義でカプセル化という言葉と使ってるので
まともな議論をしたければどういう定義でカプセル化と言ってるのか確認する必要がある
236223
垢版 |
2020/06/26(金) 22:20:46.34ID:ks+n8Bmz
自分が議論したいというよりは...
このスレ主と>>138みたいな謎方向の議論をする人の思うカプセル化について、そりゃ違うだろって言いたいだけ。

215への回答は聞かれたから答えただけで深い意味はない。
2020/06/26(金) 22:21:20.66ID:0CWC8I0Q
>>235
違う違う。情報隠蔽のことをカプセル化と間違っていってる人がいるだけ

カプセル化の定義は必要なものだけをインターフェースとして提供する
必要ないものは隠蔽するってことなんだが

全部必要だから公開しているのに、カプセル化されてない!って言うやつがいるだけ
238デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:33:13.54ID:Pmgb6tek
>>237
それが正しいという一次ソースあるん?
239デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:33:39.59ID:Pmgb6tek
ないんだったらそれあなたの感想ですよね
2020/06/26(金) 22:34:17.18ID:TcIyIoqu
>>237
>カプセル化の定義は必要なものだけをインターフェースとして提供する
>必要ないものは隠蔽するってことなんだが

情報隠蔽と何が違うの?
2020/06/26(金) 22:35:17.42ID:0CWC8I0Q
>>240
情報隠蔽は、情報隠蔽しなければカプセル化じゃないって騒ぐが
必要なものだけを公開するなら、情報隠蔽しなくてもカプセル化
242223
垢版 |
2020/06/26(金) 22:40:01.42ID:ks+n8Bmz
俺は...カプセル化の本質さえ抑えておけば、言葉としての違いは気にしないけどな。

privateにすること=カプセル化だと勘違いしていても、そいつがカプセル化の有り難みを理解できているのなら、深入りしないだけだよ。

言葉の定義にどこまで拘るかは議論の相手次第。

だが、staticおじさん、貴方は駄目だ。
俺のような細かいことを気にしないレベルの人間ですら駄目だわ。
昔からオブジェクト指向を批判し続けて初心者に誤解を与える老害だから見つけ次第、徹底的に叩く。
243デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:42:23.17ID:Pmgb6tek
オブジェクト指向を勉強してる意識高い系のアホが
引数も戻り値も使わず、全部インスタンス変数使ってる例を見て
僕はstaticおじさんになっちゃいそう
2020/06/26(金) 22:49:00.20ID:TcIyIoqu
>>241
必要なものだけを公開するってことは
必要じゃないものは公開しない、つまり隠蔽しているんだから同じじゃない?

“隠蔽”の捉え方が違うのかな
245デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:50:30.87ID:Pmgb6tek
構造化プログラミングをできるようになって
データと関数をオブジェクトとしてまとめるともっと良いかもと
オブジェクト指向を身につけるならいんだけど

オブジェクト指向では名詞を抜き出すんだ
そうやってオブジェクトを分ければ良いプログラムができあがるんだと
オブジェクト指向に幻想抱いてるアホが作ったプログラムは手に負えん
2020/06/26(金) 22:50:54.79ID:0CWC8I0Q
>>244
隠蔽を必須としてる、隠蔽のことだけをカプセル化と言ってるやつがいる
それが間違いということ
2020/06/26(金) 22:51:29.48ID:0CWC8I0Q
>>245
オブジェクト指向に幻想抱いてる天才が作ったプログラムなら手に負えるだろ?
248デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:52:06.30ID:Pmgb6tek
>>247
天才は幻想を抱かない
249デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:52:57.33ID:Pmgb6tek
僕は天才だからわかる
僕のどこが天才なのかは説明できないけどわかって
2020/06/26(金) 22:53:19.24ID:0CWC8I0Q
>>248
どうでもいいよw
プログラムが手に負えるかどうかは、アホかどうかが焦点だろって話
お前が長々と書いてることに意味がない
251デフォルトの名無しさん
垢版 |
2020/06/26(金) 22:54:34.05ID:Pmgb6tek
>>250
焦点はそこじゃない、どこみてんのよ!
構造化プログラミングの実装技術の先にオブジェクト指向があることを
理解してない人間をアホと言ってるんだよ、焦点はそっち
2020/06/26(金) 23:08:18.29ID:0CWC8I0Q
>>251
だからオブジェクト指向自体には問題がないって言ってるんでしょ?
2020/06/26(金) 23:08:49.57ID:0CWC8I0Q
人の話と技術の話の区別ぐらいつけよう。
人をいくらアホだ馬鹿だと叩いても
技術を否定したことにはならない
254デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:09:53.77ID:Pmgb6tek
ListやStack、HTTP Clientといったものはオブジェクト指向と見事に調和するんだけど
それは変えられることがないから、これはこういう機能のものだってのが決まっていて
システムの仕様が変わっても変更されることがない

いっぽうでビジネスドメインにオブジェクト指向を適用しようとすると
仕様がころころ変わるから最初の設計ではうまくいかなくなることが多い
仕様が変わったらオブジェクトの設計もやり直せるならいんだけど
一度システムが動き出したら数万〜数億の人が影響受けるから
なかなか変えられないのが実際のところ
カプセル化されると困るというのはそういう状況の話じゃないかと僕は思いました

ドメインの安定性によってオブジェクト指向の適否は左右されると天才の僕は提言します
255デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:12:02.84ID:Pmgb6tek
>>252
オブジェクト指向に幻想を抱くアホを作り出すオブジェクト指向の功罪は大きい
実装と離れて語られるオブジェクト指向は宗教と言っても良い
2020/06/26(金) 23:18:57.04ID:0CWC8I0Q
>>255
お前がそうであってほしいと願ってるのはなぜ?w
257デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:20:58.30ID:Pmgb6tek
>>256
何いってんだお前
258デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:21:20.47ID:Pmgb6tek
僕が願ってるのは世界平和だけ
259デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:35:54.37ID:n1YsnRgt
カプセル化するなら
一切ソースコードレビューしなくていいんだな
変数やメソッドの命名もインデントも全部
適当にやるからな
文句つけるならテストの結果だけで文句を言って
くれよ、ソースコードには文句言うなよな。
例外をキャッチする必要もないな。
俺が利用するクラスで発生した問題はそのクラス内部の
責任だ。内部事情は意識しなくてもいいんだからな。
おっとロギングも内部事情だからやる必要ないな。
そんな事情は利用側は知りたくもないし結果だけが
欲しいんだもんな。

逆にこれらを押し付けるなら全部publicで問題ないよな。
クラスの内部を知りたいってことだからな。

「↑こいつはカプセル化が何なのかを理解してない。」


カプセル化おじさんがどうせこう言うだろうから先に
言っておいたわ。
2020/06/26(金) 23:45:57.60ID:0CWC8I0Q
>>259
「↑こいつはカプセル化が何なのかを理解してない。」

いや、先に言っておくと言っても、俺も同じこと言うんだが、
それで言われることを予測していたんだろ?
反論までは用意してないの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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