オブジェクト指向ってクソかよPart5

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/10/08(火) 15:46:57.38ID:YglSDU9b
無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。


カプセル化(英語: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/
2019/10/12(土) 11:08:34.26ID:6fabclhr
>>104
それな。間違ってるって言うだけなら
何も知らなくても出来る。
2019/10/12(土) 11:17:25.67ID:Sr/UvC0O
てっきり、いきなり現れた奴がブーメラン発言したのかと思った。
直前に>>95みたいなのもいたし。

名無しさんのままだと、誰が何を言ったのかわからん...。
大体、察したが。
2019/10/12(土) 11:55:42.30ID:PKccBz0E
相変わらずオブジェクト戦士はバカばっかりだな
2019/10/12(土) 12:02:36.13ID:68Eagdnq
おじさんってだけで拒否反応や反抗心から若者の意見を理解しない老害扱いするけど、
若者がおじさんの主張に耳を傾けてないのは結局おじさんと同じことしてるよね

おじさんの局所的な経験則やノウハウにも局所解としての妥当性を認めていいんじゃないかな?
銀の弾丸はないんだし

自分は関数型言語は型理論を触った程度の理解をしつつ、
オブジェクト指向推進派だったけど、長いことやってると
確かにオブジェクト指向に疑問を感じるときがある

例えば、複数のオブジェクトで協調動作させようとすると、
クラス内にカプセル化できなくなって、〜コントローラや〜マネージャーとか
どちらかというと抽象的なオブジェクトで溢れかえる設計ってとてもよく見るし自分も書く

C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
オブジェクト指向っていうより関数型的な感じがする
109デフォルトの名無しさん
垢版 |
2019/10/12(土) 12:09:11.67ID:vBnCHMzu
曰く、銀の弾丸はない
でも、金の睾丸は?
2019/10/12(土) 12:24:36.42ID:6fabclhr
>>108
コントローラーやマネージャーがが
クラス内の内部構造に直接アクセスするってどういう事?
2019/10/12(土) 12:50:30.72ID:7TGqmTiW
>>104
>だけど、それは間違いだーっていうだけで
>何が正しいのかの自分の意見を言わないのは老害でしかない

いい歳したおっさんが二元論でしか物事を考えられない
答えを教えてくれないから「自分の意見を言わない」といって批判する
こういう考え方が老害そのもの


>>108
カプセル化おじさんとブロンズ君のやり取り見れば主張に耳を傾けてないのはどちらか明らか
中身の良し悪しは別にしてブロンズ君はカプセル化おじさんの意見に耳を傾けた上で論拠を持って適切に反論してる
かたやカプセル化おじさんは…
2019/10/12(土) 12:51:06.93ID:6fabclhr
>>111
だからそんな話じゃなくて
オブジェクト指向関連の話をしろよ
自覚ないのが一番たちが悪い
2019/10/12(土) 13:25:11.09ID:PKccBz0E
オブジェクト指向にメリットなんかねー時点で議論など無駄
2019/10/12(土) 13:36:07.11ID:68Eagdnq
>>110
オブジェクトの内部構造に関係ない協調動作に関する処理を
どこに配置するべきかって話

専用のコントローラや専用のマネージャークラスが頻繁に作られるけど、
別のアプローチ(C#のstaticクラスのstaticメソッドとか)が可能なこともあるし、
別のパラダイムも検討する価値あるんじゃないかなと思うようになった

他の例をあげるなら、特殊な数値クラスを作ったとして二項演算子などの
演算子を数値クラス内にカプセル化するべきかって話も
協調動作の問題と重なってる部分があると思う
(ここまで行くと言語側に手を加えるレベルの話になるけど)
2019/10/12(土) 13:50:47.60ID:hC2MVz5n
オブジェクト指向が人の間に広まっていくうちに
どうしてだんだん変なやり方に変わってゆき
非科学的で都市伝説みたいな方法論になってしまったのか
よく分かる流れだな
2019/10/12(土) 14:12:10.68ID:6fabclhr
複雑なものをシンプルに扱えるようにしましょうという
人間の心の話なのになんで科学がでてくるの?
2019/10/12(土) 14:26:06.65ID:Y/6Ne90r
>>108

> C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
> オブジェクト指向っていうより関数型的な感じがする

オブジェクト指向に関数型を適用してはいけないなんてルールは無いと思う。
そんなこと言い出したらOOPする際はラムダ式使うなって話になりそう。

あと、Mathクラスの解釈だが...
自分はMtahクラスみたいにstatic化するべきクラスでも、最初は非staticで設計する。
つまり、こうなる。
Math m = new Math();
int x = m.abs(引数);

でも、これだとstaticおじさんの言うとおり、オブジェクト指向ってしっくりこないんです状態。
※元ネタのstaticおじさんは具体例は挙げなかったが。

そこで、オブジェクト指向プログラマーは気を効かせ、static化する。
int x = Math.abs(引数);

つまり、static化は省略できるものは省略しよう...という、オブジェクト指向プログラマーの気遣い。
そういう解釈でいいと思うよ。

まぁ、どうしても「そんなのオブジェクト指向じゃねえ!」と言うのならオブジェクト指向の型を破ると解釈してもいいけどね。
このスレ的にはOOPの解釈を曖昧にするのは駄目な気もするが、個人的には扱いやすいクラスさえ作れれば何でもいいや。
2019/10/12(土) 14:35:40.11ID:6fabclhr
はぁ?absをオブジェクト指向にするなら
Number n = new Integer(-123)
n.abs() やろ
2019/10/12(土) 14:40:25.05ID:Y/6Ne90r
>>118
ソウダネー。
2019/10/12(土) 14:44:19.05ID:6fabclhr
>>119
そうだよ。Rubyとか勉強してみな
2019/10/12(土) 14:44:35.81ID:hC2MVz5n
>>116
そういいながら、逆にシンプルなものを複雑にして
迷信じみたことを技術の世界に持ち込むから
2019/10/12(土) 14:49:19.34ID:6fabclhr
そうあってほしいと>>121が考えてるだけ
2019/10/12(土) 14:50:23.73ID:Y/6Ne90r
>>120
(うわっ、こいつ面倒くせ)
そんなにMathが気にくわないのなら、俺じゃなくてOracleやMicrosoftに連絡すれば?
別にabsの実装について話がしたかったわけではないし。
2019/10/12(土) 14:50:31.28ID:hC2MVz5n
今まさにオブジェクト指向によってもたらされている混乱から目をそむけないほうがいいよ
125デフォルトの名無しさん
垢版 |
2019/10/12(土) 20:22:58.57ID:BYtPECuz
>>85
>オブジェクト指向の定義はさておき、

ところで「チンボがシコシコする」という日本語表現は、文法的に正しいのか?

チンボ「を」シコシコするのではなくて、チンボ「が」シコシコする。この場合、「チンボ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンボ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンボがシコシコする」はダメな理由を、50字以内で述べろ!
2019/10/12(土) 20:28:17.23ID:1JRUpTA+
>>125
それは興味深い考察ですね
ちんぽがシコシコするはダメなのですか?
127デフォルトの名無しさん
垢版 |
2019/10/12(土) 20:31:23.42ID:BYtPECuz
つまりオブジェクト指向とは、俺の股間に付いているモノなのである!

                                             
 .              ,                   ャ  ィE5!..             
 ..           ,,.e;〆            .、   w===|====!.     π .e、x&             
 ..          ^~ !      ``=    π     ,, カ. _    _ ̄オ⌒|! `ヘ                  
 .         fラ⌒ ̄l「~~~^.        ,.タ.     .ル .ll ~\_   〃 〃.  ^..                  
 .             .オ..      ,...__,xf~.      ^  f!  、               
 .            '^´         ̄ ̄..                                         
          ..                   l|..       r=キ'⌒..           
 .         `!、        ~~~~~~⌒...    l}                        
           ⌒heィ~.     .+s_、_e.     .^+--w=f   `ヲse、._ _、...     ′     

チンポは独立した生き物であり、本人の意思とは無関係に、自らの意思で勃起してシコシコする!
2019/10/12(土) 20:35:24.78ID:1JRUpTA+
質問に答えてください!
2019/10/12(土) 22:42:46.45ID:RvFyS8G3
人類の歴史を作ってきたのはおじさんだからな
おじさんの言うことを聞いていればだいたい間違いはないが、重大な間違いを犯すのもまたおじさん
130デフォルトの名無しさん
垢版 |
2019/10/12(土) 22:45:21.43ID:BYtPECuz
>>128
だからオブジェクト指向は俺の股間に付いているのだ!
2019/10/13(日) 03:57:42.23ID:3vnN9KRU
だからそれは、糞だってば おじぃちゃん
2019/10/13(日) 09:50:19.58ID:kfwaB+Y7
カプセル化って
中に有るものを見たり使ったり出来ないようにしないと意味が無い
getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
それではグローバル変数となんら変わりは無い

ただそれをどうやればいいのか?
と聞かれるとセオリーや具体的な手法が存在していない

それがオブジェクト指向プログラミングが糞と言われてしまう原因になってる
現状では属人的に出来る人だけが使えるようになってしまっている
2019/10/13(日) 10:07:37.44ID:0tGtu6dL
>>132 の発言を自分がちゃんと理解しているか怪しいのだが...

> getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
> それではグローバル変数となんら変わりは無い

んん?具体例がほしいな。
こういうこと?

class test{
private:
int x;
public:
int getX(){
return x;
}
void setX(int a){
x = a;
}


これってあんまり意味ねーよね?って話?
2019/10/13(日) 10:40:41.09ID:OhlF8Q6H
>>132
まーた間違ってる。

グローバル変数がなぜ悪かというと、プロジェクト全体から
読み書きできてしまうのでどこで参照してるかわからないから。
つまりスコープの範囲が広すぎるという問題。パブリックであることと何の関係もない。

それにカプセル化は、隠さなくて良いものまで隠せと言ってるわけじゃない。
隠すもの(内部構造)と隠さななくて良いもの(インターフェース)を
きっちりワケましょう、それによってメンテナンス性が上がりますという概念

すべて隠さなくていいオブジェクトだって存在する。それはそうするのが正しいので
カプセル化を破壊してることにはならない。隠すべき内部構造がないと言うだけ。
なんで隠してなければ、カプセル化破壊だと思うんだろうか?

getter,setterってまたJavaの話をしてるんだろうけど、
それはJavaという言語にカプセル化を実現するための機能が不足してるから
規約でカバーしてるだけ。他のオブジェクト指向言語であれば
お前の言うgetter,setterが無い言語もある。

お前がオブジェクト指向を理解してない=お前が糞なのであって
それをオブジェクト指向のせいにするな。
あと知識が狭すぎる。Javaしか知らないんだろ。
2019/10/13(日) 10:50:13.80ID:OAJhlsQO
俺も昔はグローバル変数についてそういう認識だったけど

そもそもスコープがどうであれ
ドキュメントに何もねぇ変数を把握する事自体
やってらんねぇよクソッタレって認識に変わった

本質はドキュメントに書いてないことが問題であって
スコープが仕様を形成するものであってはならない
2019/10/13(日) 10:57:17.16ID:OhlF8Q6H
>>135
イミフ。有名なオープンソースのコードを見て良いコードとは
コメントが書かれてないコードだと知ったほうが良いよ。
そんな物無くてもメンテナンスしやすいような構造になってる。
あとスコープが仕様を形成するなんて話は誰もしてない。
2019/10/13(日) 10:57:38.28ID:OhlF8Q6H
× コメントが書かれてない
○ コメントが重要なところにしか書かれてない
2019/10/13(日) 10:59:10.44ID:0tGtu6dL
コメントに頼らなくてもある程度理解できるコードと言いたいのでは?

コメントはあったらあったで助かるよ。
2019/10/13(日) 11:01:53.95ID:OAJhlsQO
>>136
バカじゃん
テメーが考えたコメントをソースに書いてんのか?

コメントってのは設計書の文言をコピペしてこそ意味があるんだよ
ソースにあるコメントで設計書を検索してヒットしない成果物いりませぇん
2019/10/13(日) 11:15:03.63ID:HooVs/ny
設計書に書いてあるなら、どこそこの設計書見れでいいじゃん
コピペ作業に金払わされてるとか、経営者が可哀想でならん
2019/10/13(日) 11:15:55.03ID:HooVs/ny
どこそこの設計書見れって書いてないから、
設計書を"検索"するはめになるわけで(苦笑)
142デフォルトの名無しさん
垢版 |
2019/10/13(日) 11:25:05.37ID:k83gxGBE
>>134
>グローバル変数がなぜ悪かというと、

チンポは独立した生き物であり、自我でコントロール出来るわけてはないからな!
2019/10/13(日) 11:46:53.61ID:OAJhlsQO
>>141
自己流で書いたコメントはそれすらできないからね
2019/10/13(日) 11:54:13.80ID:HooVs/ny
>>143
あの、もしかして、お前が言ってるほうが
「自己流」のやり方だって気づいてないですか?

ぐぐって調べてみてください。
誰もそんなことしてないですよ。
2019/10/13(日) 11:55:34.36ID:0tGtu6dL
なんか、凄まじい話の脱線風景を見てしまった...。
なんで>>135からコメントの書き方バトルに発展するのか...。
146デフォルトの名無しさん
垢版 |
2019/10/13(日) 11:58:21.06ID:MhpUZXHP
やっぱオブジェクト指向ってクソだなw
2019/10/13(日) 11:58:46.69ID:OAJhlsQO
>>144
はぁ?
だからデスマになるんでしょ?
テメーの気持ち悪い親切心で書いたコメントなんかいるかよ
気持ち悪いから早く死ね
重要なのはそのコードが設計書のどこの部分かってことだけだ
2019/10/13(日) 12:00:10.60ID:0tGtu6dL
>>146
具体的理由を述べてどうぞ。
呟くだけならTwitterでどうぞ。
2019/10/13(日) 12:46:04.52ID:3vnN9KRU
スレでさんざ書いてきたことだし
うえの議論のずれっぷり見ても十分理由だろう
2019/10/13(日) 12:55:49.57ID:3vnN9KRU
弊社にもいたよ、独特のオブジェクト指向論を持ち、
変な理屈こねて、これぞオブジェクト指向だと自説を押し付けたり
他人を批判したりして、チームの仕事を停滞させ
そのくせ、プログラムの開発をしてもらうとロクなコードが書けず、進捗が遅くて、
継承とメソッド呼び出しスパゲティーでバグだらけ
直る見込みがないので悪いけど間接部に移動してもらった。
2019/10/13(日) 12:57:06.58ID:0tGtu6dL
いや、自分はさっきから議論がズレすぎてなんでOOPがクソ扱いされるのか未だに理解できないのだが。

台風が来た(わかる)→台風で死者が出た(わかる)→首相が悪い(は?)

並みに飛躍しすぎて意味不明なのだが。
どさくさに紛れてOOPをクソと結論付けるのはやめろよー。
2019/10/13(日) 13:00:05.28ID:0tGtu6dL
>>150
うん、それはお気の毒に。
まぁ、そういう人はいるよね。このスレにも。
でも、それを根拠にOOPをクソ扱いするのは違うと思うんだ。
そもそも、そいつ自体がOOP理解しているか怪しいし。
2019/10/13(日) 13:00:24.46ID:3vnN9KRU
いままでのレス読んで理解できないのは
読解力や個人の能力の問題。
それこそしらんがな
2019/10/13(日) 13:12:03.31ID:3vnN9KRU
>>152
そだな、そういう痛々しい人の問題は別にしても

オブジェクトにどのような害があり、それを使ってソフトウエアのアーキテクチャ・構造の表現がしにくくて
大規模で複雑なシステムの構築上、人間が理解しにくいものが出来てしまうか
さんざ書いてきたが、読んでねーか、まともなあたまをもってねーか、、、

痛々しい人の問題はその上にかぶって存在し、オブジェクトの
局所的な一見便利そうで利点に見えるが
ある程度の規模の構造上 逆に欠点となる方法の押し売りなんだよ

オブジェクトとはなにか、どういうやり方こそオブジェクトとして正しいか
意見の応酬などは論点じゃないんだけれど、
そういう論点好きは、痛々しい人とほぼ同類
2019/10/13(日) 13:22:03.21ID:JXLMY7ke
コメントとコードであっても二重管理になって
同期が取れなくてトラブルのもとになるというのに
設計書とコメントとコードの三重管理とか気が狂いそうw
2019/10/13(日) 13:24:19.42ID:0tGtu6dL
>>153
今までのってどこの部分?
安価つけてほしいね。

ついでに、あなたは本当にOOPを理解している上で批判しているのかい?
聞いた話では他の人が書いた自称OOPコードを見てクソだと思ったのでしょ?

是非、そのクソだと思う部分を教えてほしいね。
>>133みたいにコード書いてもいいんだよ?133はスルーされちゃったけど。
2019/10/13(日) 13:25:10.20ID:3vnN9KRU
たとえば、

カプセル化とは何かの解釈の幅によらず、

カプセル化によるスコープやアクセスの管理は、ぱっと見とても有効に見えるが
実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
規模に応じ急激に複雑さをまして
(レキシカなスコープ、エクステント管理に対し)
人間が管理把握しにくくなる因子であることは、
一定の理解を得られているはずだが
2019/10/13(日) 13:26:15.07ID:5t9LL7mJ
そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから
他人を叩きのめすのに使えばいいんだよ

仕組みはどうあれ俺が気に入らないのでテメーは死刑だ
2019/10/13(日) 13:26:18.10ID:3vnN9KRU
>>156
「OOPを理解している上」
そうやってすぐ
OOPの解釈議論に論点をずらそうとする…
痛々しいなあ
2019/10/13(日) 13:27:38.97ID:3vnN9KRU
>>158
科学的技術的な話ではないので
ある意味そういうことだとおもうよ。
2019/10/13(日) 13:33:44.13ID:0tGtu6dL
>>159
これが先に目についたのでこっちから答えるが、当然だろ。
スレタイは オブジェクト指向はクソかよ だ。

オブジェクト指向をまったく理解してないのにクソ呼ばわりはないだろ。
その大前提を崩すと、お前が非難しているのはOOPじゃなくてstaticおじさんの可能性すらあるんだよ?

痛々しい以前に論外過ぎるだろ。
正確な定義は理解していなかったとしても、自分ではこれがオブジェクト指向だという考えくらい持てよ。
2019/10/13(日) 13:40:37.70ID:3vnN9KRU
まったく理解せず色々言うのはよくないが、
オブジェクト指向をまったく理解してないやつなんて
そもそもいるのかよw

それにOOP解釈によらずCでも頑張ってOOP的な書き方をしても
>>157
のような問題はでるんだぜ
細かく派生した、場合によって人さまざまなOOPの解釈の違いによらない
欠点があるといってんだが、読み取れないのか。。。
2019/10/13(日) 13:42:49.52ID:5t9LL7mJ
オブジェクト指向のメリットを定義してよ

って言うといつも逃げ出すじゃん
2019/10/13(日) 13:43:44.18ID:3vnN9KRU
方法論にずれちゃうんだよね
良くて局所的なメリット論
2019/10/13(日) 13:43:50.79ID:bBavR94N
>>158
> そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから

どのような数字を上げれば良いのですか?
オブジェクト指向以外で、数字を上げたメリット説明してるものを
参考として教えて下さい。
2019/10/13(日) 13:44:20.01ID:bBavR94N
>>163
管理しやすくなるってメリット言っても
数字言えって言って逃げてるじゃんw
2019/10/13(日) 13:45:47.26ID:3vnN9KRU
小さいプログラムだったらな。
2019/10/13(日) 13:46:22.87ID:5t9LL7mJ
>>166
だってそれお前の感想止まりじゃん
169デフォルトの名無しさん
垢版 |
2019/10/13(日) 13:47:20.41ID:k83gxGBE
だからオブジェクト指向は俺の股間に付いているってことなのさ!
2019/10/13(日) 13:48:14.16ID:3vnN9KRU
>>169
そうか、それでOOPはクソなんだ。
納得
2019/10/13(日) 14:01:26.96ID:0tGtu6dL
>>163
逃げた覚えはないけどな。

まぁ、いいや。俺の意見だが。
思い付くメリットを列挙するとこんな感じだ。
(1)責務分割を行うため各コードの役割が明確になる。
→共同開発時、作業分担がしやすくなる。
→不具合が発生したとき、どこが悪いのか明確になる
(2)必要な数だけオブジェクトを複製できる。
→例えば...組み込み開発だが、USBオブジェクトがあったとして、USBポートを一つから四つに増やしたいとき
Usb usb[] = new Usb()[4];
といった記述で増やせる。
(3)ポリモーフィズムが可能
Storage s = new Usb();
...
s = new SDCard();

SDカード・USBの違いを区別することなくアクセス可能。
s.read(ファイル);

他にもメリットは腐る程あるが、そこは自分で調べてくれ。てか、質問スレでどうぞ。
2019/10/13(日) 14:03:55.40ID:0tGtu6dL
>>166
数字?なんだそりゃ。
非OOPの品質が1ならOOPの品質は10

これでいい?納得した?しねーだろうなぁ(投げやり)


スマホ入力つらい...PCもってくるか...
2019/10/13(日) 14:08:17.56ID:3vnN9KRU
>>171
(1)はstaticの利点でもあるな
(2)はOOPの話じゃないだろ
(3)は何が言いたくて何が利点だかよく分からないけど、
 関数の共通化できますってことか?OOPにかぎらんだろ

長文乙だが、読んでて気がついたは
あんたが書いている程度の規模のプログラムだと
何のパラダイムでも大して管理は変わらないと思う
何でこのレベルのひとが「OOPを理解している上で」とかえらそうなことを言うのかの方が疑問
2019/10/13(日) 14:09:33.40ID:3vnN9KRU
>>172
いいよ持ってこなんで。
話を聞くだけこっちの時間の無駄
2019/10/13(日) 14:11:43.73ID:0tGtu6dL
>>173
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなる因子であることは、
> 一定の理解を得られているはずだが

こんな意味不明な発言をする人に言われたくねーです。
2019/10/13(日) 14:15:29.59ID:3vnN9KRU
>>175
これ分からないんだったら単に不勉強だと思う。
ここ数年間のソフトウエア工学の進歩を眺めてりゃ分かる程度のこと。
まぁ、多くのITエンジニアがやは不勉強なんだが。
不勉強で理解できないのは自然なことだ、しょうがない
177デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:20:32.14ID:r98+wKYs
>>173
> 人間が管理把握しにくくなる因子であることは、
> 一定の理解を得られているはずだが

ちんぽは本人ですら管理できない独立した生き物だが?
2019/10/13(日) 14:22:28.82ID:3vnN9KRU
>>177
そのうち、年取ると小便にしか使わなくなって
逆の意味で言うことを聞かなくなるから
心配要らないよ
2019/10/13(日) 14:24:26.49ID:0tGtu6dL
>>176
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなるあることは、
> 一定の理解を得られているはずだが

なんでカプセル化がこの問題に繋がるのか説明してくれる?
コード書いてほしいな。或いはもう少し具体的に説明してくれないかな?
飛躍しすぎてわけがわからん。
2019/10/13(日) 14:28:09.59ID:3vnN9KRU
>>179
過去スレでもさんざ書いたんだが
自分が不勉強なくせに、5chにでまた長々かけってか、、、
子供電話相談室じゃねんだが。。。

まずプログラミングの基礎である
レキシカなスコープ、エクステントは
分かるよね?
2019/10/13(日) 14:28:12.58ID:zjKLJs6/
は?
全くわかんね
書いてあることがどうとかってより
まず、

どうなるとオブジェクト指向なの?
182デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:29:28.54ID:MhpUZXHP
歴史家なスコープww
2019/10/13(日) 14:29:31.33ID:3vnN9KRU
あとオブジェクト指向のもたらした依存の複雑化する問題は
理解しているよね?
2019/10/13(日) 14:31:24.11ID:3vnN9KRU
>>182
ごめんごめん、受けた?
○ レキシカルなスコープ
2019/10/13(日) 14:31:33.43ID:0tGtu6dL
知ってる。そんなレベルの話ではなく、なぜ、そこに問題がでると思っているのかの話。
レキシカなスコープという時点で何かを感じるが。
2019/10/13(日) 14:34:25.96ID:3vnN9KRU
>>185
ダイナミックスコープがまずいのは分かるだろ?
いわゆる旧MS BASICのような。

では大規模ソフトでレキシカルスコープがなぜ大事か分かる?
ここ40年くらいの間に普及したんだけれど。
2019/10/13(日) 14:34:33.36ID:0tGtu6dL
>>183
これが抽象的過ぎてわからん。
なんで、毎回曖昧な表現使うかな...。
2019/10/13(日) 14:38:29.75ID:0tGtu6dL
>>186
あっ...ここでもうわからんわ。
ダイナミックスコープがまずい?
2019/10/13(日) 14:39:06.61ID:3vnN9KRU
カプセルかってのは何やんのよ。
細かい解釈の違いは、頼むから横においておいてよ。

1) 型クラス
2) メンバのアクセス制限修飾
こきらまでは旧来のCもできましたよと。いいよね。
3) アクセスmethodを設け、calssまたはインスタンススコープを持たす
そして「動的な」が好きな人は
4) 動的インスタンスの生成・消滅
 ⇒エクステントはレキシカルとは結びつかず独自に管理せなあかん
2019/10/13(日) 14:39:31.69ID:bBavR94N
>>168
> だってそれお前の感想止まりじゃん

俺の感想じゃなくて世界の感想だってw
2019/10/13(日) 14:41:40.12ID:zjKLJs6/
>>190
なにかそういうデータあるんですか?
2019/10/13(日) 14:43:21.45ID:3vnN9KRU
>>188
スコープダイナミックって言うことは、外から見える変数ばっかりで
プログラムがちょっと大きくなっただけで、局面局面で意識・管理せにゃならん
変数や状態が増大しくみ合わさって入り組んで見えたり、
あるいは実行時に呼ばれる順が変わると変数の内容が変わったり
管理不能になる

昔はそういう言語しかなかった
CやShemeがlexical scoprやextentを導入して革命がおきた
2019/10/13(日) 14:43:42.54ID:bBavR94N
>>191
なんなら、関数型と手続き型と比較してみますか?
データ出してみてください。
194デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:45:01.83ID:0tGtu6dL
C#とnode.js使いだけど、ダウンロードできるオープンソースでオブジェクト指向じゃないコードを落とした経験がまったくない。
たぶん、業種によるんだろうな。
オブジェクト指向と無縁の業種とは無縁だから具体的に何かは知らないけど。
2019/10/13(日) 14:46:16.66ID:zjKLJs6/
>>193
え?俺らが初検証?
2019/10/13(日) 14:47:45.65ID:bBavR94N
>>195
そりゃそうでしょw
2019/10/13(日) 14:48:20.57ID:bBavR94N
そうでしょっていうのは、お前が関数型と手続き型の
データを持ってくるってことね。
自分で検証しなくていいのよ。お前がやりましょうってこと。
2019/10/13(日) 14:57:39.71ID:zjKLJs6/
困ったな
俺はメンバ変数全部publicだし

お前らの組み方だと組むときになって

アレ?このメンバ変数privateだ!


オラ、びっくらこいたーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー!!!!!!!!
設計を根本から見直さなきゃ!


ってシーンがないとダメなんだろ
俺、そういうことねーし
2019/10/13(日) 14:59:44.04ID:3vnN9KRU
>>194 あたりまえやんけ、そんなこと。

そえはさておき >>189 がカプセル化の概要であるとして、
どのような弱点をもたらすか

1つはスコープの問題
メンバにアクセス修飾制限するのは一見いいことのように見える。

複合体型に基づくclassやインスタンスのメンバごとのスコープは
フレームワーク的な中間レイヤの局所では一貫して明確に決めやすいけど
上位の複合的な機能のアプリレイヤに近づくと、型も色々持ち込んだ複合的な
ものになるわけだし、動的に生成したインスタンスを動的なエクステントで使いまわす
ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
結局多くのメンバをアクセサを用意するはめに陥る。
これは、グローバルなscope、動的ななextentを持つ(名前階層を持った)
多数の変数でプログラムを組むことと同じ複雑さをもたらすでしょ。

そのなかでエクステントの管理もやっていくと、、、(弱点2)
どMかよ>

では >>183 と組み合わさって、さらにどのような弱点をもたらすか…
2019/10/13(日) 15:07:21.54ID:sVfp7HP1
なぜ変数やメソッド(メンバ関数)をprivateにするか?

少なからずの場合それらが試行的もしくは暫定的。
例えばシグネーチャがまだ流動的な場合とか。
自分も含めて勝手に使って欲しくない、少なくとも使われる箇所を完璧に把握しておきたいような場合。
201デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:08:27.27ID:k83gxGBE
>>187
>これが抽象的過ぎてわからん。
>なんで、毎回曖昧な表現使うかな...。

928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
2019/10/13(日) 15:17:55.04ID:3vnN9KRU
オブジェクト指向のもたらした依存爆発へのカプセル化の関与

多態はmin, max、abs くらいに制限しまずは捨てましょう。

継承はソースの合成レベルで大いなる依存を持ちむので、
特にアプリレイヤでの活用はホント色々問題あるんだけれど、

カプセル化はというと、
1つはdynamic なextentが好まれる点ね。

どっかで作られるインスタンス・メンバが、見通しやすいnest したlexicalなscopeを離れて
浮遊し、どっかで参照、更新されると。。。。
動的にだぞ?お前がやっているような小さいプログラムは何とでもなるかもしれないけどさ、
どうやって追っかけんだよ

二つ目はデータ構造間の依存、三つ目はデータ構造に対するメンバとmethodの依存
たとえば委譲した動的階層化データ構造の中の、ある局面で一見みえないメンバがどこか遠くで
定義され参照され更新され、、、、orz

あるいは複合型クラスのインスタンスとメンバを多階層の継承と組み合わせた場合、、、、、
まぁ言わずもがな経験者は分かるだろう
管理不能なスパゲティ−の出来上がりだわな

こうやってカプセル化した動的な型構造は依存を中継するハブ見たいな役割を果たしてしまうんだよ
このたわけめ
ここまで1から10まで説明させるとは、金取るぞホントに
2019/10/13(日) 15:19:50.19ID:OAJhlsQO
これがネットのどこにも落ちてない口伝でのみ伝えられるという奥義(゚A゚;)ゴクリ


( ゚д゚)ホントニハヤットンノカイ?
2019/10/13(日) 15:23:23.57ID:3vnN9KRU
入門者とえせ講師を中心に日本中で絶賛大流行中だぜ。
もう新興宗教かめ威信か、比科学的もいいところ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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