[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/04 02:09 / Filesize : 316 KB / Number-of Response : 1037
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2020/06/18(木) 23:47:36.69 ID:l/2SQUll.net]
カプセル化(英語: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)

185 名前:デフォルトの名無しさん [2020/06/25(木) 20:31:34.09 ID:LQ8CyLE7.net]
webフレームワークの
MVCの「モデル」ってそんなに重要ものなのか?
「モデル」なんてものがSQLやDBMSを隠蔽して
何がありがたいと言うのか
むしろ隠蔽されて困ることの方が多いんじゃないか?
何故一度テーブル作成時にて定義した
大量の列定義を
またモデル層のフィールド定義で2度もやり直さないといけないのか
要らないだろ。「モデル」なんて

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

「オブジェクト指向」って結局何がありがたいのよ?

186 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:03:02.32 ID:9YSX2wtH.net]
1行でまとめて

187 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:03:32.44 ID:9YSX2wtH.net]
> 「オブジェクト指向」って結局何がありがたいのよ?

多くの人で作業分担し、協力してプログラムを作れる所

188 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:03:50.52 ID:9YSX2wtH.net]
ReactやVueはオブジェクト指向

189 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:03:50.90 ID:lu0UaGfG.net]
>>177
Javaなんてクソを
オブジェクト指向の代表として考える
かわいそうな子

190 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:04:45.08 ID:9YSX2wtH.net]
>>183
Javaはオブジェクト指向を採用した言語の一つだよ
いつから代表になったのさ
お前が代表だと思っていて、代表だと思ってる自分自身を批判してるだけじゃんw

191 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:05:53.76 ID:lu0UaGfG.net]
>>180
抽象化を理解できないかわいそうな子

192 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:09:21.00 ID:9YSX2wtH.net]
>>185
お前の文章の話をしてるんだが。
そもそも読んでないのに、抽象化が何の関係があるんだ?

193 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:17:15.89 ID:lu0UaGfG.net]
>>184
>>177
>クラスを始めとする様々なルールは
>……
>単なるJavaの変な言語仕様でしかなかったわけだ。

で、「いつから代表になったのさ」がなんだって?
数スレも遡れないようじゃ生きていくの大変だろうに……



194 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:43:56.18 ID:9YSX2wtH.net]
だから読んでないと言ってるw

195 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 02:54:16.76 ID:uM2i3sYA.net]
関数化したりクラス化したらプログラムが高速化したんだけどGCが発生するタイミングが細かくなったってことでええんか?

196 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 07:35:03 ID:eLfJJdHb.net]
オブジェクト指向は整理術
棚なんて要らん棚があるから余計な物も管理する羽目になると床置する人が現実に居るのと同じ

197 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 08:53:43.63 ID:crXMwmqp.net]
まああまりに糞な抽象化だともう全部publicでレコードとして扱えやとは思うな。
抽象化を万能なものと思い込みすぎな馬鹿が多すぎるからオブジェクト指向に対する誤解が生まれる。

198 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 09:44:19.22 ID:8zz5Zpvs.net]
っていうか抽象化ってどんな仕様のどの部分を一括に扱ってるのか?
ドキュメントがないと最悪
ここの仕様は特殊だからこれとは別にしないとなって話ができない
ドキュメント書かないなら抽象化するな
害悪でしかない

199 名前:デフォルトの名無しさん [2020/06/26(金) 09:50:43.03 ID:Op8/e6Io.net]
>>190
直置きはダメだが
ほとんどの場合「棚をしまう為の棚」
「それをしまう為の棚、それをしまうための棚…」
ってなってる

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

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


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

じゃあ「具体的な棚って一体どれだ?なんか長い名前の棚が
やたら沢山あるけどどの棚から探せばいいんだ??」
となる

200 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 09:55:00.00 ID:50iMo9Ym.net]
>>193
たとえ話はややこしいだけで何の意味もないから
具体的な事例で言えよ

201 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 09:55:48.09 ID:50iMo9Ym.net]
具体的に何のことを言ってるのか
考えなきゃならんようなたとえ話に価値はねーからな
説明が下手すぎる

202 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:13:27.50 ID:wYfFflLL.net]
>>193
整理が下手なやつの例をあげて、だから整理はすべきでないと言ったって意味がないだろう。

203 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:36:41.37 ID:klgKDCEw.net]
このスレにstaticおじさん、絶対沸いてるだろ。



204 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:41:42.69 ID:s43csjES.net]
>>193
だから具体的な問題>>162に答えてくれよ。
複数のプロセス・スレッドが勝手気ままにデータを処理しても問題ない、というならおめでたいわ。

205 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:42:57.59 ID:8zz5Zpvs.net]
>>198
そんときだけ使えばいいじゃん
それ以外じゃ使うなよ

206 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:54:38 ID:crXMwmqp.net]
>>198
アルゴリズムレイヤーでアクセスを無駄に禁止するようなクラスは有害でしかない。
適切なpublic具合というものがある。
例えばc++のstd::vectorなんかはかなりオープンアクセスなクラスだがあれが適切なんだよ。
でもって馬鹿に適切なアクセス制御なんて無理ってこと。
変に細かくするな。
馬鹿はクラスレベルで制御なんかしないでいいからモジュールレベルでアクセスするapiだけ公開してろってこった。

207 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:58:13.55 ID:uqHA56uo.net]
適切なpublic具合

208 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 11:23:09 ID:TcIyIoqu.net]
トレードオフを理解できてないうちはどっちもどっち
物事の一面しか見れてない

>>190や>>193の比喩は理解の程度が知れるという意味ではすごく有意義

209 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 11:38:31.41 ID:TyDtokvS.net]
適切なpublic具合=ジャイアンルール

210 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 11:48:31.80 ID:klgKDCEw.net]
>>200
たぶん、162はクラスユーザーが呼び出した処理を実行している最中に内部処理を呼び出したら破綻するけど、いいのか?って言いたいのだと思う。
適切なアクセス修飾子をつけろは同意だが、彼に言うことではないと思う。

211 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 11:51:10.08 ID:klgKDCEw.net]
まぁ、スレッドがどうこうは...private関係あるのかな?って感じですが。

212 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 12:36:59.06 ID:s43csjES.net]
>>199
好き勝手にデータに読み書きできるのに、どうやって「その時だけ」を保証するんだよ。

結局カプセル化必須じゃねぇか。
何のアイディアも無しか。アホらしい。

213 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 13:04:36 ID:8zz5Zpvs.net]
>>206
そういう場所だけそうすればいいじゃん
全部そうなら無能過ぎてプログラム組む前にもっとやることあるんじゃないかなぁ



214 名前:デフォルトの名無しさん [2020/06/26(金) 13:19:36.46 ID:SlEx0yXd.net]
大昔、Javaやりだしてイキりだしたやつらが、オブジェクト指向もできない
老害とか騒いでいた歴史がある。そんな老害から見ると、gcに難しい事をまかせて、
馬鹿を吊り上げる仕組みなんだよなあ〜と皆言っていたのを思い出した。
今はPythonね。もっさ〜として、ダサすぎ。でも「俺AIの最前線だぜ」とか勘違い。
歴史は繰り返すのだ。

215 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 13:22:51.90 ID:TcIyIoqu.net]
atomicityを保証するのを
呼び出し側の責任とするのか呼び出された側の責任とするのかは
pros/cons考えて使い分ければいい話でカプセル化必須とかにはならないよ

使う前にopenして終わったらcloseしてください的なAPIと
open/close含めて全部やってくれるAPIの違いと同じこと

216 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 14:22:11.40 ID:d6LVEoDZ.net]
>>208

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

うわぁ。典型的老害だな。

217 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 14:30:22.45 ID:uqHA56uo.net]
すげえ、スレタイも日本語になってなくて、さらにまともな議論にすらなってないのに盛り上がってるw
オブジェクト指向じゃないやつのオブジェクト指向型言語のコード見れると思ってきたが、カオスだなw

218 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 17:24:31.99 ID:MKv++1da.net]
staticおじさんの詭弁ばかり

219 名前:ナ議論にすらならないから、もう、staticおじさん隔離スレ作った方がいいかもね。

【隔離】オブジェクト指向アンチスレ
みたいな感じで。
[]
[ここ壊れてます]

220 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 17:45:37.11 ID:pGd8NqU0.net]
>>212
もういっそのこと、こんなんでどうだろうか?
【老害】staticおじさんと戯れるファンの集い【詭弁】

221 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:11:48 ID:QQ2hFNnS.net]
カプセル化はオブジェクト指向に限らずあるんだが
privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足

222 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:24:19.05 ID:xc/k+9g/.net]
privateとprotectedの使い分けってみんなどうしてる?
俺は昔はpublic以外はよほど理由がない限り全てprivateにしてたんだけど、最近はよほど理由がない限り全てprotectedにするようになったわ。

223 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:33:11.88 ID:50iMo9Ym.net]
protectedはよくわからんので基本private
必要になったらprotected
必要ないならprivateでいい
変更してはいけないというルールはないんだから



224 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:33:48.93 ID:eLfJJdHb.net]
オブジェクト指向は素晴らしいだろ
金正恩という概念から好きなだけ金正恩を生み出せるんだぞ
staticじゃ1匹しか生み出せない
その1匹が糖尿で死んだら北朝鮮は成り立たない

225 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:36:58.13 ID:eLfJJdHb.net]
金与生は金正恩を継承したクラス
もしくは金日成の多態

226 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:37:59.75 ID:eLfJJdHb.net]
将軍様クラスのプロパティに性別があったとは思わなかったけど

227 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:38:24.42 ID:50iMo9Ym.net]
つまらんよ

228 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:39:33 ID:eLfJJdHb.net]
北朝鮮人ならえげつない死刑

229 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:42:48 ID:QQ2hFNnS.net]
金正恩というデータから好きなだけ金正恩産み出すのはオブジェクト思考に限らずできるんだが
オブジェクト指向と全く関係ない
勉強不足

230 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 18:59:47 ID:MKv++1da.net]
>>214
> privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足

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

>>215
基本的にはprivate。自分が定義したメンバ変数やメソッドを継承先がどのように使うのか想像ができないのなら、privateにした方がいいと思っている。
継承先で意図しないメソッドの呼び出しや、変数の使い方をされたら困るからね。
当然、継承先での用途を考えた上でprotectedを使う場合もあるけどね。

231 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 19:08:51 ID:QQ2hFNnS.net]
いやもうお前らprivateとかprotectedとかいう言葉を使ってカプセル化を語るのやめたほうがいいよ
privateという機能がなくてもカプセル化は実現できるから
百歩譲ってデータ隠蔽だけをカプセル化と呼ぶにしても、privateのように外からのアクセスを不能にする機能がなくてもカプセル化は実現できるし

232 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 19:12:26 ID:fnCF+h71.net]
>>224
そんな方法あるんだ、どうやってやるの?

233 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 19:34:06.00 ID:eLfJJdHb.net]
>>222
オブジェクト指向でしか出来ないことがあるとでもw



234 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 19:47:03.28 ID:crXMwmqp.net]
pimpleパターンくらいは知っとけよ。。
てかカプセル化について馬鹿みたいにこだわる奴でまともなインターフェイス設計できる奴見たことねーわ。
リファクタリングもしないで一発で正解にたどり着けるとでも考えてるんだろうな。

235 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 19:48:24.03 ID:SG/+b/+N.net]
pimple 覚えた pimple ニキビ 覚えたpimple pimple

236 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 20:33:23.82 ID:QQ2hFNnS.net]
オブジェクト思考言語アレルギーの老害は論外として

特定のオブジェクト指向言語を習得している人は無数にいても、
オブジェクト指向そのものを理解してる人は殆どいなそう

237 名前:デフォルトの名無しさん [2020/06/26(金) 20:37:52.02 ID:Op8/e6Io.net]
>>229
それってオブジェクト指向という概念そのもの
がおかしいものだからですよね?
っていう議論をずっとしてるんですが
誰にでも理解出来て納得出来ることが正しい
ことだと思うんですが

238 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 20:43:25.43 ID:ODDHilOW.net]
> オブジェクト指向そのものを理解

どういうこと?
アランケイがどう考えたとか
OOPがどういう成り立ちだとか

239 名前:そういういこと? []
[ここ壊れてます]

240 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 20:54:59.05 ID:0CWC8I0Q.net]
アランケイが考えたオブジェクト指向は洗練され完成されたオブジェクト指向なのです。
初号機が最強であるのはどこの世界でも同じことです。
初期版が完成です。改良などありえません。

241 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 21:47:56.68 ID:ks+n8Bmz.net]
第一、privateサポートしてない言語なんて普通にあるしな。Javascriptなんてそうだし。

242 名前:223 mailto:sage [2020/06/26(金) 21:51:49.87 ID:ks+n8Bmz.net]
あ、ID変わっちゃった。223です。

243 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:03:26.05 ID:TcIyIoqu.net]
>>223
>カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。

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

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

人によっては2つを合成した定義でカプセル化という言葉と使ってるので
まともな議論をしたければどういう定義でカプセル化と言ってるのか確認する必要がある



244 名前:223 mailto:sage [2020/06/26(金) 22:20:46 ID:ks+n8Bmz.net]
自分が議論したいというよりは...
このスレ主と>>138みたいな謎方向の議論をする人の思うカプセル化について、そりゃ違うだろって言いたいだけ。

215への回答は聞かれたから答えただけで深い意味はない。

245 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:21:20 ID:0CWC8I0Q.net]
>>235
違う違う。情報隠蔽のことをカプセル化と間違っていってる人がいるだけ

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

全部必要だから公開しているのに、カプセル化されてない!って言うやつがいるだけ

246 名前:デフォルトの名無しさん [2020/06/26(金) 22:33:13 ID:Pmgb6tek.net]
>>237
それが正しいという一次ソースあるん?

247 名前:デフォルトの名無しさん [2020/06/26(金) 22:33:39 ID:Pmgb6tek.net]
ないんだったらそれあなたの感想ですよね

248 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:34:17 ID:TcIyIoqu.net]
>>237
>カプセル化の定義は必要なものだけをインターフェースとして提供する
>必要ないものは隠蔽するってことなんだが

情報隠蔽と何が違うの?

249 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:35:17 ID:0CWC8I0Q.net]
>>240
情報隠蔽は、情報隠蔽しなければカプセル化じゃないって騒ぐが
必要なものだけを公開するなら、情報隠蔽しなくてもカプセル化

250 名前:223 mailto:sage [2020/06/26(金) 22:40:01 ID:ks+n8Bmz.net]
俺は...カプセル化の本質さえ抑えておけば、言葉としての違いは気にしないけどな。

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

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

だが、staticおじさん、貴方は駄目だ。
俺のような細かいことを気にしないレベルの人間ですら駄目だわ。
昔からオブジェクト指向を批判し続けて初心者に誤解を与える老害だから見つけ次第、徹底的に叩く。

251 名前:デフォルトの名無しさん [2020/06/26(金) 22:42:23.17 ID:Pmgb6tek.net]
オブジェクト指向を勉強してる意識高い系のアホが
引数も戻り値も使わず、全部インスタンス変数使ってる例を見て
僕はstaticおじさんになっちゃいそう

252 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:49:00.20 ID:TcIyIoqu.net]
>>241
必要なものだけを公開するってことは
必要じゃないものは公開しない、つまり隠蔽しているんだから同じじゃない?

“隠蔽”の捉え方が違うのかな

253 名前:デフォルトの名無しさん [2020/06/26(金) 22:50:30.87 ID:Pmgb6tek.net]
構造化プログラミングをできるようになって
データと関数をオブジェクトとしてまとめるともっと良いかもと
オブジェクト指向を身につけるならいんだけど

オブジェクト指向では名詞を抜き出すんだ
そうやってオブジェクトを分ければ良いプログラムができあがるんだと
オブジェクト指向に幻想抱いてるアホが作ったプログラムは手に負えん



254 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:50:54 ID:0CWC8I0Q.net]
>>244
隠蔽を必須としてる、隠蔽のことだけをカプセル化と言ってるやつがいる
それが間違いということ

255 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:51:29 ID:0CWC8I0Q.net]
>>245
オブジェクト指向に幻想抱いてる天才が作ったプログラムなら手に負えるだろ?

256 名前:デフォルトの名無しさん [2020/06/26(金) 22:52:06 ID:Pmgb6tek.net]
>>247
天才は幻想を抱かない

257 名前:デフォルトの名無しさん [2020/06/26(金) 22:52:57 ID:Pmgb6tek.net]
僕は天才だからわかる
僕のどこが天才なのかは説明できないけどわかって

258 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 22:53:19.24 ID:0CWC8I0Q.net]
>>248
どうでもいいよw
プログラムが手に負えるかどうかは、アホかどうかが焦点だろって話
お前が長々と書いてることに意味がない

259 名前:デフォルトの名無しさん [2020/06/26(金) 22:54:34.05 ID:Pmgb6tek.net]
>>250
焦点はそこじゃない、どこみてんのよ!
構造化プログラミングの実装技術の先にオブジェクト指向があることを
理解してない人間をアホと言ってるんだよ、焦点はそっち

260 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:08:18.29 ID:0CWC8I0Q.net]
>>251
だからオブジェクト指向自体には問題がないって言ってるんでしょ?

261 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:08:49.57 ID:0CWC8I0Q.net]
人の話と技術の話の区別ぐらいつけよう。
人をいくらアホだ馬鹿だと叩いても
技術を否定したことにはならない

262 名前:デフォルトの名無しさん [2020/06/26(金) 23:09:53.77 ID:Pmgb6tek.net]
ListやStack、HTTP Clientといったものはオブジェクト指向と見事に調和するんだけど
それは変えられることがないから、これはこういう機能のものだってのが決まっていて
システムの仕様が変わっても変更されることがない

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

ドメインの安定性によってオブジェクト指向の適否は左右されると天才の僕は提言します

263 名前:デフォルトの名無しさん [2020/06/26(金) 23:12:02.84 ID:Pmgb6tek.net]
>>252
オブジェクト指向に幻想を抱くアホを作り出すオブジェクト指向の功罪は大きい
実装と離れて語られるオブジェクト指向は宗教と言っても良い



264 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:18:57.04 ID:0CWC8I0Q.net]
>>255
お前がそうであってほしいと願ってるのはなぜ?w

265 名前:デフォルトの名無しさん [2020/06/26(金) 23:20:58.30 ID:Pmgb6tek.net]
>>256
何いってんだお前

266 名前:デフォルトの名無しさん [2020/06/26(金) 23:21:20.47 ID:Pmgb6tek.net]
僕が願ってるのは世界平和だけ

267 名前:デフォルトの名無しさん [2020/06/26(金) 23:35:54.37 ID:n1YsnRgt.net]
カプセル化するなら
一切ソースコードレビューしなくていいんだな
変数やメソッドの命名もインデントも全部
適当にやるからな
文句つけるならテストの結果だけで文句を言って
くれよ、ソースコードには文句言うなよな。
例外をキャッチする必要もないな。
俺が利用するクラスで発生した問題はそのクラス内部の
責任だ。内部事情は意識しなくてもいいんだからな。
おっとロギングも内部事情だからやる必要ないな。
そんな事情は利用側は知りたくもないし結果だけが
欲しいんだもんな。

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

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


カプセル化おじさんがどうせこう言うだろうから先に
言っておいたわ。

268 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:45:57 ID:0CWC8I0Q.net]
>>259
「↑こいつはカプセル化が何なのかを理解してない。」

いや、先に言っておくと言っても、俺も同じこと言うんだが、
それで言われることを予測していたんだろ?
反論までは用意してないの?

269 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:50:21 ID:ks+n8Bmz.net]
珍しくこの手のスレでは比較的、リアルな批判がでたかも。

汎用性の無いビジネスドメインをオブジェクト指向を意識しながらクラス化したところで、メリット薄いよね?って話はまぁ、理解できる。
でも、ビジネスドメインを構成するクラスを汎用性の高いクラスだけで構成させることができれば、大分スッキリする。
いや、ほんと、そこがオブジェクト指向信者の腕の見せ所なんだがな。

たぶん、ビジネスドメインの責務分割の仕方を誤って神クラスを作ってしまうパターンにはまってるのかも。

270 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:56:26.67 ID:ks+n8Bmz.net]
でも、まぁ...開発者の立場次第にもよるのかも。
俺みたいに自社開発しているエンジニアだったら、利益を上げるレベルの品質を根拠にいくらでも納期を伸ばしてもらえるので、ド丁寧なオブジェクト指向プログラムを書く余裕があるけど、受託開発になると納期がギリギリに設定されがちだし(偏見?)、そんな最中、丁寧なコードなんて記述できるかって言われると...まぁ、どうなんだろうね。

271 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:58:23 ID:34AfLaws.net]
「状態によって挙動が変わる」ものが何十個も何百個も集まったら凡人には把握しきれない。

ましてや内部の状態が読み取りすらできないとなれば絶望的なことになるのバカでもわかる。

ウェブシステムや業務システムみたいにデータベースという巨大グローバル変数群を構造体にコピーしては書き戻すというのを繰り返すだけだと深い階層化が発生しないから問題は起きないんだろうね。

272 名前:デフォルトの名無しさん [2020/06/26(金) 23:59:12 ID:5Zl1C0wL.net]
>>260
お前が俺の書いたことに反論してみろ
お前が言う真のカプセル化とやらを説明しろ。

273 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:59:54 ID:TcIyIoqu.net]
>>259
前半はコードの品質をどういう観点から担保するかという話
例外やロギングはどういう責務/役割をどこに持たせるかという話
どちらもオブジェクト指向特有のものではない



274 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:00:02 ID:ihk0yOtr.net]
問題が起きやすいのはハードウェアに近い低層と、ライブラリ層と、ビジネスロジック層なんかに分業している分野だろうね。

275 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:05:48.57 ID:n2G2JMaM.net]
>>261
お前の主張の最大のメリットであるスッキリがお前の主観でしかない
そもそも設計書とソースの構造を一致させるための設計技術ではないのかな?

276 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:09:26.27 ID:ihk0yOtr.net]
データベースを使っているようなシステムはまず深い階層化は起きない。
RDBと階層化は相性が悪いからね。
それなのに深い階層化を使っている気分になっている人が多い。

ハードウェア制御絡みの本当に深い階層化を経験している人とは住んでいる世界が違う。

だから話が噛み合わない。

277 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:31:59 ID:npRplKHX.net]
みんな難しく考えすぎw
オブジェクト指向はインテリセンスが効くんで便利
それで納得しろよ これがないとダルいだろ

278 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:33:18 ID:0UrSdNRf.net]
>>267

> お前の主張の最大のメリットであるスッキリがお前の主観でしかない

事実を主観でしかないと批判されましても困るね。
実際、汎用性の高いクラス...それこそ、listやstack、http cliant並みに汎用性の高いクラスだけでプログラムが書かれてたらスッキリするだろ。
代替案があるなら、どうぞ。

> そもそも設計書とソースの構造を一致させるための設計技術ではないのかな?

何の話?

279 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:47:38 ID:eG65KKvD.net]
スッキリって何?コードが短くなるの?
頭悪いから50行以上は読めないんだけど

280 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:51:39 ID:n2G2JMaM.net]
>>270
いや、スッキリの定義は?
俺が見たらねっとりしてることない?

281 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 00:53:32.69 ID:kHv6hhb8.net]
>>263
その深い階層を扱うのはC言語でしょう?
C言語はオブジェクト指向です!

282 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 01: ]
[ここ壊れてます]

283 名前:02:58.36 ID:kHv6hhb8.net mailto: >>261
ドメインが安定してるところはオブジェクトを作って
ゆるふわなところは骨組みメソッド作る感じ?
それなら僕と同じです
[]
[ここ壊れてます]



284 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:03:48.38 ID:0UrSdNRf.net]
いや、普通にOOPのコードだけど...。
逆に、list,stack並みに...で、なぜ伝わらない。
当たり前すぎて伝わらなかったのか、初めて聞いた単語だから伝わらなかったのか。
このスレの連中だと高低差激しすぎてコミュニケーションが難しいな。

285 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:04:44.30 ID:0UrSdNRf.net]
>>274
あっ、はい。そうです。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<316KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef