■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。
大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。
ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
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)
探検
カプセル化は愚かな考え★3
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/09/17(木) 06:37:21.26ID:rdOa/6ar2020/09/17(木) 06:37:28.60ID:rdOa/6ar
2020/09/17(木) 06:38:11.32ID:rdOa/6ar
2020/09/17(木) 06:38:36.19ID:rdOa/6ar
■仕様変更
それは雲の上で決まったことなので底辺社畜のITドカタにはどうすることもできない。
意見を言おうにも雲の上にいる奴らの顔すら知らない。
それこそが階層化で起きることだ。
オブジェクト指向云々ではない。
それは雲の上で決まったことなので底辺社畜のITドカタにはどうすることもできない。
意見を言おうにも雲の上にいる奴らの顔すら知らない。
それこそが階層化で起きることだ。
オブジェクト指向云々ではない。
5デフォルトの名無しさん
2020/09/17(木) 06:55:37.46ID:k60QR6Dx クソスレ立てるな
6デフォルトの名無しさん
2020/09/17(木) 10:53:48.09ID:ShdDUG77 関数型OSは、日本が主導したいものですな。
2020/09/17(木) 11:15:42.88ID:Ebl/PrBy
主導以前にそんなOSはどこの国からも実用化されません。
今のところ私の予言は的中しています。
今のところ私の予言は的中しています。
8デフォルトの名無しさん
2020/09/18(金) 13:38:30.43ID:l0yocru2 BSD系は基本的にそんな感じでしょ。
>>1のカプセル化は机上では素晴らしいが実際には云々というのも元祖BSDの開発者たちだし。
>>1のカプセル化は机上では素晴らしいが実際には云々というのも元祖BSDの開発者たちだし。
2020/09/18(金) 13:39:56.81ID:l0yocru2
BSD系OSを積むiPhone
その主力であるobjective-cもswiftもカプセル化なんてないからね
その主力であるobjective-cもswiftもカプセル化なんてないからね
2020/09/18(金) 16:03:39.49ID:6chszCpL
カプセル化という言葉を理解せずにカプセル化を語りたがるスレ主w
クソスレだがNGするのに役立ってる
クソスレだがNGするのに役立ってる
2020/09/19(土) 20:40:29.18ID:NknEv8eE
publicでいいからな
2020/09/19(土) 20:41:28.06ID:NknEv8eE
関数型が流行ったのもカプセル化の問題点をなんとかしようとした結果だろうしね
2020/09/19(土) 20:54:42.74ID:djZ0gifd
オブジェクト指向が間違って広まったのが悲劇の始まりだよね
2020/09/19(土) 20:55:48.52ID:okNEuTuK
カプセル化の問題点をなんとかしようとした結果じゃなくて
「ある種の問題」ではコードをシンプルに書けるからなだけだよw
だから関数型を使うと言っても全体を関数型言語で書くわけじゃなくて
「ある種の問題」に限って部分的に取り入れてる
「ある種の問題」ではコードをシンプルに書けるからなだけだよw
だから関数型を使うと言っても全体を関数型言語で書くわけじゃなくて
「ある種の問題」に限って部分的に取り入れてる
15デフォルトの名無しさん
2020/09/19(土) 20:56:03.13ID:gpcd5FRI 見えない内部状態で関数の挙動が変わるとか
常識的に考えて頭おかしいからな
常識的に考えて頭おかしいからな
16デフォルトの名無しさん
2020/09/19(土) 20:57:12.54ID:gpcd5FRI ひとりで書いてる時は問題ないんだけどね。
2020/09/19(土) 20:57:27.89ID:gpcd5FRI
零細企業で書いてる時も問題ない
2020/09/19(土) 20:58:40.17ID:gpcd5FRI
ひとつのシステムに複数の会社が絡むときにヤバくなる。
「あの会社が作った」と手を出せない。
「あの会社が作った」と手を出せない。
2020/09/19(土) 20:59:20.05ID:MKCi9adZ
状態は1個の構造体にまとめるべきだよね
20デフォルトの名無しさん
2020/09/20(日) 10:07:39.93ID:u7gAJbKe >>12
関数型言語は並列・並行処理を簡単に書けるってので、オブジェクト指向プログラミングでの並列・並行処理に限界を感じてたゲーム業界とかが注目してたね。
コアの数が増え続ければ今C++なのが関数型言語に置き換わるかもとかnvのおっさんが話してたのも今は懐かしい・・・。
当時は理論先行で思ったより簡単じゃ無かったんだけど、ライブラリも整備されて理論に実態が追い付いてきたんだけど、もう注目されないかも?
見限られるのが早過ぎたんや・・・。
関数型言語は並列・並行処理を簡単に書けるってので、オブジェクト指向プログラミングでの並列・並行処理に限界を感じてたゲーム業界とかが注目してたね。
コアの数が増え続ければ今C++なのが関数型言語に置き換わるかもとかnvのおっさんが話してたのも今は懐かしい・・・。
当時は理論先行で思ったより簡単じゃ無かったんだけど、ライブラリも整備されて理論に実態が追い付いてきたんだけど、もう注目されないかも?
見限られるのが早過ぎたんや・・・。
2020/09/21(月) 09:34:25.96ID:tan4kSln
nodejsみたいな関数型は理解に苦しむ人が多かったけど、
pythonの大流行で「カプセル化禁止のオブジェクト指向」が一般人にも広まった。
pythonの大流行で「カプセル化禁止のオブジェクト指向」が一般人にも広まった。
2020/09/21(月) 10:36:14.65ID:13UcesYH
カプセル化禁止のオブジェクト指向は
Python以外のどこで使われてるというの?
Python以外のどこで使われてるというの?
2020/09/21(月) 10:39:59.83ID:13UcesYH
pythonの大流行で「カプセル化の代わりにネームマングリングを使うオブジェクト指向」が一般人にも広まった。
と言うべきでは?
https://qiita.com/mounntainn/items/e3fb1a5757c9cf7ded63
> pythonにはprivate変数はありません。
> しかしprivate変数に近いことは実現できます。
> PEP8上のコーディング規約としては
> 「_」1つのprefixをclass内のみで利用する変数とされています。
> しかし、この変数はインスタンス化したオブジェクトからのアクセス時には
> 物理的な機構はなくカプセル化としての役目は果たせません。
_を付ける方法はカプセル化にはならない
> 「__」2つのprefixをつけた場合、
> ネームマングリング機構が働きます。
> 該当の変数名は「_class名」のprefixがついた変数名へと置換されます。
__をつけるとネームマングリングによって変数名が変わるので
よりよい擬似的なカプセル化の方法になる
と言うべきでは?
https://qiita.com/mounntainn/items/e3fb1a5757c9cf7ded63
> pythonにはprivate変数はありません。
> しかしprivate変数に近いことは実現できます。
> PEP8上のコーディング規約としては
> 「_」1つのprefixをclass内のみで利用する変数とされています。
> しかし、この変数はインスタンス化したオブジェクトからのアクセス時には
> 物理的な機構はなくカプセル化としての役目は果たせません。
_を付ける方法はカプセル化にはならない
> 「__」2つのprefixをつけた場合、
> ネームマングリング機構が働きます。
> 該当の変数名は「_class名」のprefixがついた変数名へと置換されます。
__をつけるとネームマングリングによって変数名が変わるので
よりよい擬似的なカプセル化の方法になる
2020/09/21(月) 10:59:25.78ID:apXLM6YN
>カプセル化禁止
そもそもメンバーの可視性制御ができなきゃカプセル化してないというわけでもないと思うが。
そもそもメンバーの可視性制御ができなきゃカプセル化してないというわけでもないと思うが。
25デフォルトの名無しさん
2020/09/21(月) 13:24:59.53ID:tan4kSln2020/09/21(月) 14:06:16.49ID:Yec037cY
オブジェクト指向における「カプセル化」は情報隠蔽のことじゃないんだよ
データとそれを扱うメソッドをオブジェクトという単位にまとめることがカプセル化
前者の意味で使ってるとしても可視性の制御は必須ではない
データとそれを扱うメソッドをオブジェクトという単位にまとめることがカプセル化
前者の意味で使ってるとしても可視性の制御は必須ではない
2020/09/21(月) 14:08:03.22ID:Yec037cY
Pythonのオブジェクト指向言語機能はショボいので本格的にOOやるやつは少数派
Objective-Cは可視性の制御可能
Cでもできるけどね
Objective-Cは可視性の制御可能
Cでもできるけどね
2020/09/21(月) 16:30:05.44ID:13UcesYH
カプセル化はPythonのようにネームマングリングを使う方法がオブジェクト指向として一般的!
2020/09/21(月) 16:52:34.51ID:frM+OBSN
30デフォルトの名無しさん
2020/09/21(月) 16:53:08.49ID:tan4kSln >>26
privateは何のためにあるの?
privateは何のためにあるの?
2020/09/21(月) 16:53:56.49ID:13UcesYH
32デフォルトの名無しさん
2020/09/21(月) 16:54:44.02ID:za73uCrq■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】J1昇格PO決勝戦 千葉、来季のJ1昇格が決定 17年越しの悲願叶える…オリジナル10が05年以来のJ1にそろう [久太郎★]
- 南京で「大虐殺」追悼式典 中国、高市政権をけん制 (共同通信) [少考さん★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★5 [ぐれ★]
- 【日銀】0.75%に利上げへ 来週の決定会合で、30年ぶり水準 賃金改善の継続見込む [ぐれ★]
- 京都のホテル大幅値下げ 訪日中国人客、年1000万人目前で急ブレーキ ★3 [蚤の市★]
- 緊急入院のゆたぼん「人身事故は嘘」はデマ 「滑稽ですね」救急車写真で証明、法的措置も検討 [少考さん★]
- >>5で貼られたスレにみんなで凸するスレ
- オタクの間で空前のファムファタルブーム到来!!!!! [924418631]
- 小野田紀美「外国人帰れ!って言って石を投げられるのは毎日のように。もう殴る蹴るは当たり前でした。それで喧嘩強いんですよ、私。」 [856698234]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪★3🏡
- 日本人、気づきはじめる「庶民の生活が苦しいのは金持ちが節税したりして金溜め込んでるから。大企業の内部留保もどうにかしろ」 [434776867]
- トランプ大統領、エプスタンイン邸宅で美女に囲まれご満悦の写真見つかる コンドームの山も [907981868]
