無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。
カプセル化(英語: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/
オブジェクト指向ってクソかよPart5
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/10/08(火) 15:46:57.38ID:YglSDU9b133デフォルトの名無しさん
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;
}
}
これってあんまり意味ねーよね?って話?
> getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
> それではグローバル変数となんら変わりは無い
んん?具体例がほしいな。
こういうこと?
class test{
private:
int x;
public:
int getX(){
return x;
}
void setX(int a){
x = a;
}
}
これってあんまり意味ねーよね?って話?
134デフォルトの名無しさん
2019/10/13(日) 10:40:41.09ID:OhlF8Q6H >>132
まーた間違ってる。
グローバル変数がなぜ悪かというと、プロジェクト全体から
読み書きできてしまうのでどこで参照してるかわからないから。
つまりスコープの範囲が広すぎるという問題。パブリックであることと何の関係もない。
それにカプセル化は、隠さなくて良いものまで隠せと言ってるわけじゃない。
隠すもの(内部構造)と隠さななくて良いもの(インターフェース)を
きっちりワケましょう、それによってメンテナンス性が上がりますという概念
すべて隠さなくていいオブジェクトだって存在する。それはそうするのが正しいので
カプセル化を破壊してることにはならない。隠すべき内部構造がないと言うだけ。
なんで隠してなければ、カプセル化破壊だと思うんだろうか?
getter,setterってまたJavaの話をしてるんだろうけど、
それはJavaという言語にカプセル化を実現するための機能が不足してるから
規約でカバーしてるだけ。他のオブジェクト指向言語であれば
お前の言うgetter,setterが無い言語もある。
お前がオブジェクト指向を理解してない=お前が糞なのであって
それをオブジェクト指向のせいにするな。
あと知識が狭すぎる。Javaしか知らないんだろ。
まーた間違ってる。
グローバル変数がなぜ悪かというと、プロジェクト全体から
読み書きできてしまうのでどこで参照してるかわからないから。
つまりスコープの範囲が広すぎるという問題。パブリックであることと何の関係もない。
それにカプセル化は、隠さなくて良いものまで隠せと言ってるわけじゃない。
隠すもの(内部構造)と隠さななくて良いもの(インターフェース)を
きっちりワケましょう、それによってメンテナンス性が上がりますという概念
すべて隠さなくていいオブジェクトだって存在する。それはそうするのが正しいので
カプセル化を破壊してることにはならない。隠すべき内部構造がないと言うだけ。
なんで隠してなければ、カプセル化破壊だと思うんだろうか?
getter,setterってまたJavaの話をしてるんだろうけど、
それはJavaという言語にカプセル化を実現するための機能が不足してるから
規約でカバーしてるだけ。他のオブジェクト指向言語であれば
お前の言うgetter,setterが無い言語もある。
お前がオブジェクト指向を理解してない=お前が糞なのであって
それをオブジェクト指向のせいにするな。
あと知識が狭すぎる。Javaしか知らないんだろ。
135デフォルトの名無しさん
2019/10/13(日) 10:50:13.80ID:OAJhlsQO 俺も昔はグローバル変数についてそういう認識だったけど
そもそもスコープがどうであれ
ドキュメントに何もねぇ変数を把握する事自体
やってらんねぇよクソッタレって認識に変わった
本質はドキュメントに書いてないことが問題であって
スコープが仕様を形成するものであってはならない
そもそもスコープがどうであれ
ドキュメントに何もねぇ変数を把握する事自体
やってらんねぇよクソッタレって認識に変わった
本質はドキュメントに書いてないことが問題であって
スコープが仕様を形成するものであってはならない
136デフォルトの名無しさん
2019/10/13(日) 10:57:17.16ID:OhlF8Q6H >>135
イミフ。有名なオープンソースのコードを見て良いコードとは
コメントが書かれてないコードだと知ったほうが良いよ。
そんな物無くてもメンテナンスしやすいような構造になってる。
あとスコープが仕様を形成するなんて話は誰もしてない。
イミフ。有名なオープンソースのコードを見て良いコードとは
コメントが書かれてないコードだと知ったほうが良いよ。
そんな物無くてもメンテナンスしやすいような構造になってる。
あとスコープが仕様を形成するなんて話は誰もしてない。
137デフォルトの名無しさん
2019/10/13(日) 10:57:38.28ID:OhlF8Q6H × コメントが書かれてない
○ コメントが重要なところにしか書かれてない
○ コメントが重要なところにしか書かれてない
138デフォルトの名無しさん
2019/10/13(日) 10:59:10.44ID:0tGtu6dL コメントに頼らなくてもある程度理解できるコードと言いたいのでは?
コメントはあったらあったで助かるよ。
コメントはあったらあったで助かるよ。
139デフォルトの名無しさん
2019/10/13(日) 11:01:53.95ID:OAJhlsQO >>136
バカじゃん
テメーが考えたコメントをソースに書いてんのか?
コメントってのは設計書の文言をコピペしてこそ意味があるんだよ
ソースにあるコメントで設計書を検索してヒットしない成果物いりませぇん
バカじゃん
テメーが考えたコメントをソースに書いてんのか?
コメントってのは設計書の文言をコピペしてこそ意味があるんだよ
ソースにあるコメントで設計書を検索してヒットしない成果物いりませぇん
140デフォルトの名無しさん
2019/10/13(日) 11:15:03.63ID:HooVs/ny 設計書に書いてあるなら、どこそこの設計書見れでいいじゃん
コピペ作業に金払わされてるとか、経営者が可哀想でならん
コピペ作業に金払わされてるとか、経営者が可哀想でならん
141デフォルトの名無しさん
2019/10/13(日) 11:15:55.03ID:HooVs/ny どこそこの設計書見れって書いてないから、
設計書を"検索"するはめになるわけで(苦笑)
設計書を"検索"するはめになるわけで(苦笑)
142デフォルトの名無しさん
2019/10/13(日) 11:25:05.37ID:k83gxGBE143デフォルトの名無しさん
2019/10/13(日) 11:46:53.61ID:OAJhlsQO >>141
自己流で書いたコメントはそれすらできないからね
自己流で書いたコメントはそれすらできないからね
144デフォルトの名無しさん
2019/10/13(日) 11:54:13.80ID:HooVs/ny145デフォルトの名無しさん
2019/10/13(日) 11:55:34.36ID:0tGtu6dL なんか、凄まじい話の脱線風景を見てしまった...。
なんで>>135からコメントの書き方バトルに発展するのか...。
なんで>>135からコメントの書き方バトルに発展するのか...。
146デフォルトの名無しさん
2019/10/13(日) 11:58:21.06ID:MhpUZXHP やっぱオブジェクト指向ってクソだなw
147デフォルトの名無しさん
2019/10/13(日) 11:58:46.69ID:OAJhlsQO148デフォルトの名無しさん
2019/10/13(日) 12:00:10.60ID:0tGtu6dL149デフォルトの名無しさん
2019/10/13(日) 12:46:04.52ID:3vnN9KRU スレでさんざ書いてきたことだし
うえの議論のずれっぷり見ても十分理由だろう
うえの議論のずれっぷり見ても十分理由だろう
150デフォルトの名無しさん
2019/10/13(日) 12:55:49.57ID:3vnN9KRU 弊社にもいたよ、独特のオブジェクト指向論を持ち、
変な理屈こねて、これぞオブジェクト指向だと自説を押し付けたり
他人を批判したりして、チームの仕事を停滞させ
そのくせ、プログラムの開発をしてもらうとロクなコードが書けず、進捗が遅くて、
継承とメソッド呼び出しスパゲティーでバグだらけ
直る見込みがないので悪いけど間接部に移動してもらった。
変な理屈こねて、これぞオブジェクト指向だと自説を押し付けたり
他人を批判したりして、チームの仕事を停滞させ
そのくせ、プログラムの開発をしてもらうとロクなコードが書けず、進捗が遅くて、
継承とメソッド呼び出しスパゲティーでバグだらけ
直る見込みがないので悪いけど間接部に移動してもらった。
151デフォルトの名無しさん
2019/10/13(日) 12:57:06.58ID:0tGtu6dL いや、自分はさっきから議論がズレすぎてなんでOOPがクソ扱いされるのか未だに理解できないのだが。
台風が来た(わかる)→台風で死者が出た(わかる)→首相が悪い(は?)
並みに飛躍しすぎて意味不明なのだが。
どさくさに紛れてOOPをクソと結論付けるのはやめろよー。
台風が来た(わかる)→台風で死者が出た(わかる)→首相が悪い(は?)
並みに飛躍しすぎて意味不明なのだが。
どさくさに紛れてOOPをクソと結論付けるのはやめろよー。
152デフォルトの名無しさん
2019/10/13(日) 13:00:05.28ID:0tGtu6dL153デフォルトの名無しさん
2019/10/13(日) 13:00:24.46ID:3vnN9KRU いままでのレス読んで理解できないのは
読解力や個人の能力の問題。
それこそしらんがな
読解力や個人の能力の問題。
それこそしらんがな
154デフォルトの名無しさん
2019/10/13(日) 13:12:03.31ID:3vnN9KRU >>152
そだな、そういう痛々しい人の問題は別にしても
オブジェクトにどのような害があり、それを使ってソフトウエアのアーキテクチャ・構造の表現がしにくくて
大規模で複雑なシステムの構築上、人間が理解しにくいものが出来てしまうか
さんざ書いてきたが、読んでねーか、まともなあたまをもってねーか、、、
痛々しい人の問題はその上にかぶって存在し、オブジェクトの
局所的な一見便利そうで利点に見えるが
ある程度の規模の構造上 逆に欠点となる方法の押し売りなんだよ
オブジェクトとはなにか、どういうやり方こそオブジェクトとして正しいか
意見の応酬などは論点じゃないんだけれど、
そういう論点好きは、痛々しい人とほぼ同類
そだな、そういう痛々しい人の問題は別にしても
オブジェクトにどのような害があり、それを使ってソフトウエアのアーキテクチャ・構造の表現がしにくくて
大規模で複雑なシステムの構築上、人間が理解しにくいものが出来てしまうか
さんざ書いてきたが、読んでねーか、まともなあたまをもってねーか、、、
痛々しい人の問題はその上にかぶって存在し、オブジェクトの
局所的な一見便利そうで利点に見えるが
ある程度の規模の構造上 逆に欠点となる方法の押し売りなんだよ
オブジェクトとはなにか、どういうやり方こそオブジェクトとして正しいか
意見の応酬などは論点じゃないんだけれど、
そういう論点好きは、痛々しい人とほぼ同類
155デフォルトの名無しさん
2019/10/13(日) 13:22:03.21ID:JXLMY7ke コメントとコードであっても二重管理になって
同期が取れなくてトラブルのもとになるというのに
設計書とコメントとコードの三重管理とか気が狂いそうw
同期が取れなくてトラブルのもとになるというのに
設計書とコメントとコードの三重管理とか気が狂いそうw
156デフォルトの名無しさん
2019/10/13(日) 13:24:19.42ID:0tGtu6dL157デフォルトの名無しさん
2019/10/13(日) 13:25:10.20ID:3vnN9KRU たとえば、
カプセル化とは何かの解釈の幅によらず、
カプセル化によるスコープやアクセスの管理は、ぱっと見とても有効に見えるが
実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
規模に応じ急激に複雑さをまして
(レキシカなスコープ、エクステント管理に対し)
人間が管理把握しにくくなる因子であることは、
一定の理解を得られているはずだが
カプセル化とは何かの解釈の幅によらず、
カプセル化によるスコープやアクセスの管理は、ぱっと見とても有効に見えるが
実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
規模に応じ急激に複雑さをまして
(レキシカなスコープ、エクステント管理に対し)
人間が管理把握しにくくなる因子であることは、
一定の理解を得られているはずだが
158デフォルトの名無しさん
2019/10/13(日) 13:26:15.07ID:5t9LL7mJ そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから
他人を叩きのめすのに使えばいいんだよ
仕組みはどうあれ俺が気に入らないのでテメーは死刑だ
他人を叩きのめすのに使えばいいんだよ
仕組みはどうあれ俺が気に入らないのでテメーは死刑だ
159デフォルトの名無しさん
2019/10/13(日) 13:26:18.10ID:3vnN9KRU160デフォルトの名無しさん
2019/10/13(日) 13:27:38.97ID:3vnN9KRU161デフォルトの名無しさん
2019/10/13(日) 13:33:44.13ID:0tGtu6dL >>159
これが先に目についたのでこっちから答えるが、当然だろ。
スレタイは オブジェクト指向はクソかよ だ。
オブジェクト指向をまったく理解してないのにクソ呼ばわりはないだろ。
その大前提を崩すと、お前が非難しているのはOOPじゃなくてstaticおじさんの可能性すらあるんだよ?
痛々しい以前に論外過ぎるだろ。
正確な定義は理解していなかったとしても、自分ではこれがオブジェクト指向だという考えくらい持てよ。
これが先に目についたのでこっちから答えるが、当然だろ。
スレタイは オブジェクト指向はクソかよ だ。
オブジェクト指向をまったく理解してないのにクソ呼ばわりはないだろ。
その大前提を崩すと、お前が非難しているのはOOPじゃなくてstaticおじさんの可能性すらあるんだよ?
痛々しい以前に論外過ぎるだろ。
正確な定義は理解していなかったとしても、自分ではこれがオブジェクト指向だという考えくらい持てよ。
162デフォルトの名無しさん
2019/10/13(日) 13:40:37.70ID:3vnN9KRU まったく理解せず色々言うのはよくないが、
オブジェクト指向をまったく理解してないやつなんて
そもそもいるのかよw
それにOOP解釈によらずCでも頑張ってOOP的な書き方をしても
>>157
のような問題はでるんだぜ
細かく派生した、場合によって人さまざまなOOPの解釈の違いによらない
欠点があるといってんだが、読み取れないのか。。。
オブジェクト指向をまったく理解してないやつなんて
そもそもいるのかよw
それにOOP解釈によらずCでも頑張ってOOP的な書き方をしても
>>157
のような問題はでるんだぜ
細かく派生した、場合によって人さまざまなOOPの解釈の違いによらない
欠点があるといってんだが、読み取れないのか。。。
163デフォルトの名無しさん
2019/10/13(日) 13:42:49.52ID:5t9LL7mJ オブジェクト指向のメリットを定義してよ
って言うといつも逃げ出すじゃん
って言うといつも逃げ出すじゃん
164デフォルトの名無しさん
2019/10/13(日) 13:43:44.18ID:3vnN9KRU 方法論にずれちゃうんだよね
良くて局所的なメリット論
良くて局所的なメリット論
165デフォルトの名無しさん
2019/10/13(日) 13:43:50.79ID:bBavR94N >>158
> そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから
どのような数字を上げれば良いのですか?
オブジェクト指向以外で、数字を上げたメリット説明してるものを
参考として教えて下さい。
> そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから
どのような数字を上げれば良いのですか?
オブジェクト指向以外で、数字を上げたメリット説明してるものを
参考として教えて下さい。
166デフォルトの名無しさん
2019/10/13(日) 13:44:20.01ID:bBavR94N167デフォルトの名無しさん
2019/10/13(日) 13:45:47.26ID:3vnN9KRU 小さいプログラムだったらな。
168デフォルトの名無しさん
2019/10/13(日) 13:46:22.87ID:5t9LL7mJ >>166
だってそれお前の感想止まりじゃん
だってそれお前の感想止まりじゃん
169デフォルトの名無しさん
2019/10/13(日) 13:47:20.41ID:k83gxGBE だからオブジェクト指向は俺の股間に付いているってことなのさ!
170デフォルトの名無しさん
2019/10/13(日) 13:48:14.16ID:3vnN9KRU171デフォルトの名無しさん
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(ファイル);
他にもメリットは腐る程あるが、そこは自分で調べてくれ。てか、質問スレでどうぞ。
逃げた覚えはないけどな。
まぁ、いいや。俺の意見だが。
思い付くメリットを列挙するとこんな感じだ。
(1)責務分割を行うため各コードの役割が明確になる。
→共同開発時、作業分担がしやすくなる。
→不具合が発生したとき、どこが悪いのか明確になる
(2)必要な数だけオブジェクトを複製できる。
→例えば...組み込み開発だが、USBオブジェクトがあったとして、USBポートを一つから四つに増やしたいとき
Usb usb[] = new Usb()[4];
といった記述で増やせる。
(3)ポリモーフィズムが可能
Storage s = new Usb();
...
s = new SDCard();
SDカード・USBの違いを区別することなくアクセス可能。
s.read(ファイル);
他にもメリットは腐る程あるが、そこは自分で調べてくれ。てか、質問スレでどうぞ。
172デフォルトの名無しさん
2019/10/13(日) 14:03:55.40ID:0tGtu6dL173デフォルトの名無しさん
2019/10/13(日) 14:08:17.56ID:3vnN9KRU >>171
(1)はstaticの利点でもあるな
(2)はOOPの話じゃないだろ
(3)は何が言いたくて何が利点だかよく分からないけど、
関数の共通化できますってことか?OOPにかぎらんだろ
長文乙だが、読んでて気がついたは
あんたが書いている程度の規模のプログラムだと
何のパラダイムでも大して管理は変わらないと思う
何でこのレベルのひとが「OOPを理解している上で」とかえらそうなことを言うのかの方が疑問
(1)はstaticの利点でもあるな
(2)はOOPの話じゃないだろ
(3)は何が言いたくて何が利点だかよく分からないけど、
関数の共通化できますってことか?OOPにかぎらんだろ
長文乙だが、読んでて気がついたは
あんたが書いている程度の規模のプログラムだと
何のパラダイムでも大して管理は変わらないと思う
何でこのレベルのひとが「OOPを理解している上で」とかえらそうなことを言うのかの方が疑問
174デフォルトの名無しさん
2019/10/13(日) 14:09:33.40ID:3vnN9KRU175デフォルトの名無しさん
2019/10/13(日) 14:11:43.73ID:0tGtu6dL >>173
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなる因子であることは、
> 一定の理解を得られているはずだが
こんな意味不明な発言をする人に言われたくねーです。
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなる因子であることは、
> 一定の理解を得られているはずだが
こんな意味不明な発言をする人に言われたくねーです。
176デフォルトの名無しさん
2019/10/13(日) 14:15:29.59ID:3vnN9KRU >>175
これ分からないんだったら単に不勉強だと思う。
ここ数年間のソフトウエア工学の進歩を眺めてりゃ分かる程度のこと。
まぁ、多くのITエンジニアがやは不勉強なんだが。
不勉強で理解できないのは自然なことだ、しょうがない
これ分からないんだったら単に不勉強だと思う。
ここ数年間のソフトウエア工学の進歩を眺めてりゃ分かる程度のこと。
まぁ、多くのITエンジニアがやは不勉強なんだが。
不勉強で理解できないのは自然なことだ、しょうがない
177デフォルトの名無しさん
2019/10/13(日) 14:20:32.14ID:r98+wKYs178デフォルトの名無しさん
2019/10/13(日) 14:22:28.82ID:3vnN9KRU179デフォルトの名無しさん
2019/10/13(日) 14:24:26.49ID:0tGtu6dL >>176
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなるあることは、
> 一定の理解を得られているはずだが
なんでカプセル化がこの問題に繋がるのか説明してくれる?
コード書いてほしいな。或いはもう少し具体的に説明してくれないかな?
飛躍しすぎてわけがわからん。
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなるあることは、
> 一定の理解を得られているはずだが
なんでカプセル化がこの問題に繋がるのか説明してくれる?
コード書いてほしいな。或いはもう少し具体的に説明してくれないかな?
飛躍しすぎてわけがわからん。
180デフォルトの名無しさん
2019/10/13(日) 14:28:09.59ID:3vnN9KRU >>179
過去スレでもさんざ書いたんだが
自分が不勉強なくせに、5chにでまた長々かけってか、、、
子供電話相談室じゃねんだが。。。
まずプログラミングの基礎である
レキシカなスコープ、エクステントは
分かるよね?
過去スレでもさんざ書いたんだが
自分が不勉強なくせに、5chにでまた長々かけってか、、、
子供電話相談室じゃねんだが。。。
まずプログラミングの基礎である
レキシカなスコープ、エクステントは
分かるよね?
181デフォルトの名無しさん
2019/10/13(日) 14:28:12.58ID:zjKLJs6/ は?
全くわかんね
書いてあることがどうとかってより
まず、
どうなるとオブジェクト指向なの?
全くわかんね
書いてあることがどうとかってより
まず、
どうなるとオブジェクト指向なの?
182デフォルトの名無しさん
2019/10/13(日) 14:29:28.54ID:MhpUZXHP 歴史家なスコープww
183デフォルトの名無しさん
2019/10/13(日) 14:29:31.33ID:3vnN9KRU あとオブジェクト指向のもたらした依存の複雑化する問題は
理解しているよね?
理解しているよね?
184デフォルトの名無しさん
2019/10/13(日) 14:31:24.11ID:3vnN9KRU185デフォルトの名無しさん
2019/10/13(日) 14:31:33.43ID:0tGtu6dL 知ってる。そんなレベルの話ではなく、なぜ、そこに問題がでると思っているのかの話。
レキシカなスコープという時点で何かを感じるが。
レキシカなスコープという時点で何かを感じるが。
186デフォルトの名無しさん
2019/10/13(日) 14:34:25.96ID:3vnN9KRU187デフォルトの名無しさん
2019/10/13(日) 14:34:33.36ID:0tGtu6dL188デフォルトの名無しさん
2019/10/13(日) 14:38:29.75ID:0tGtu6dL189デフォルトの名無しさん
2019/10/13(日) 14:39:06.61ID:3vnN9KRU カプセルかってのは何やんのよ。
細かい解釈の違いは、頼むから横においておいてよ。
1) 型クラス
2) メンバのアクセス制限修飾
こきらまでは旧来のCもできましたよと。いいよね。
3) アクセスmethodを設け、calssまたはインスタンススコープを持たす
そして「動的な」が好きな人は
4) 動的インスタンスの生成・消滅
⇒エクステントはレキシカルとは結びつかず独自に管理せなあかん
細かい解釈の違いは、頼むから横においておいてよ。
1) 型クラス
2) メンバのアクセス制限修飾
こきらまでは旧来のCもできましたよと。いいよね。
3) アクセスmethodを設け、calssまたはインスタンススコープを持たす
そして「動的な」が好きな人は
4) 動的インスタンスの生成・消滅
⇒エクステントはレキシカルとは結びつかず独自に管理せなあかん
190デフォルトの名無しさん
2019/10/13(日) 14:39:31.69ID:bBavR94N191デフォルトの名無しさん
2019/10/13(日) 14:41:40.12ID:zjKLJs6/ >>190
なにかそういうデータあるんですか?
なにかそういうデータあるんですか?
192子供電話相談室対応中
2019/10/13(日) 14:43:21.45ID:3vnN9KRU >>188
スコープダイナミックって言うことは、外から見える変数ばっかりで
プログラムがちょっと大きくなっただけで、局面局面で意識・管理せにゃならん
変数や状態が増大しくみ合わさって入り組んで見えたり、
あるいは実行時に呼ばれる順が変わると変数の内容が変わったり
管理不能になる
昔はそういう言語しかなかった
CやShemeがlexical scoprやextentを導入して革命がおきた
スコープダイナミックって言うことは、外から見える変数ばっかりで
プログラムがちょっと大きくなっただけで、局面局面で意識・管理せにゃならん
変数や状態が増大しくみ合わさって入り組んで見えたり、
あるいは実行時に呼ばれる順が変わると変数の内容が変わったり
管理不能になる
昔はそういう言語しかなかった
CやShemeがlexical scoprやextentを導入して革命がおきた
193デフォルトの名無しさん
2019/10/13(日) 14:43:42.54ID:bBavR94N194デフォルトの名無しさん
2019/10/13(日) 14:45:01.83ID:0tGtu6dL C#とnode.js使いだけど、ダウンロードできるオープンソースでオブジェクト指向じゃないコードを落とした経験がまったくない。
たぶん、業種によるんだろうな。
オブジェクト指向と無縁の業種とは無縁だから具体的に何かは知らないけど。
たぶん、業種によるんだろうな。
オブジェクト指向と無縁の業種とは無縁だから具体的に何かは知らないけど。
195デフォルトの名無しさん
2019/10/13(日) 14:46:16.66ID:zjKLJs6/ >>193
え?俺らが初検証?
え?俺らが初検証?
196デフォルトの名無しさん
2019/10/13(日) 14:47:45.65ID:bBavR94N >>195
そりゃそうでしょw
そりゃそうでしょw
197デフォルトの名無しさん
2019/10/13(日) 14:48:20.57ID:bBavR94N そうでしょっていうのは、お前が関数型と手続き型の
データを持ってくるってことね。
自分で検証しなくていいのよ。お前がやりましょうってこと。
データを持ってくるってことね。
自分で検証しなくていいのよ。お前がやりましょうってこと。
198デフォルトの名無しさん
2019/10/13(日) 14:57:39.71ID:zjKLJs6/ 困ったな
俺はメンバ変数全部publicだし
お前らの組み方だと組むときになって
アレ?このメンバ変数privateだ!
オラ、びっくらこいたーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー!!!!!!!!
設計を根本から見直さなきゃ!
ってシーンがないとダメなんだろ
俺、そういうことねーし
俺はメンバ変数全部publicだし
お前らの組み方だと組むときになって
アレ?このメンバ変数privateだ!
オラ、びっくらこいたーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー!!!!!!!!
設計を根本から見直さなきゃ!
ってシーンがないとダメなんだろ
俺、そういうことねーし
199デフォルトの名無しさん
2019/10/13(日) 14:59:44.04ID:3vnN9KRU >>194 あたりまえやんけ、そんなこと。
そえはさておき >>189 がカプセル化の概要であるとして、
どのような弱点をもたらすか
1つはスコープの問題
メンバにアクセス修飾制限するのは一見いいことのように見える。
複合体型に基づくclassやインスタンスのメンバごとのスコープは
フレームワーク的な中間レイヤの局所では一貫して明確に決めやすいけど
上位の複合的な機能のアプリレイヤに近づくと、型も色々持ち込んだ複合的な
ものになるわけだし、動的に生成したインスタンスを動的なエクステントで使いまわす
ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
結局多くのメンバをアクセサを用意するはめに陥る。
これは、グローバルなscope、動的ななextentを持つ(名前階層を持った)
多数の変数でプログラムを組むことと同じ複雑さをもたらすでしょ。
そのなかでエクステントの管理もやっていくと、、、(弱点2)
どMかよ>
では >>183 と組み合わさって、さらにどのような弱点をもたらすか…
そえはさておき >>189 がカプセル化の概要であるとして、
どのような弱点をもたらすか
1つはスコープの問題
メンバにアクセス修飾制限するのは一見いいことのように見える。
複合体型に基づくclassやインスタンスのメンバごとのスコープは
フレームワーク的な中間レイヤの局所では一貫して明確に決めやすいけど
上位の複合的な機能のアプリレイヤに近づくと、型も色々持ち込んだ複合的な
ものになるわけだし、動的に生成したインスタンスを動的なエクステントで使いまわす
ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
結局多くのメンバをアクセサを用意するはめに陥る。
これは、グローバルなscope、動的ななextentを持つ(名前階層を持った)
多数の変数でプログラムを組むことと同じ複雑さをもたらすでしょ。
そのなかでエクステントの管理もやっていくと、、、(弱点2)
どMかよ>
では >>183 と組み合わさって、さらにどのような弱点をもたらすか…
200デフォルトの名無しさん
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
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
>これが抽象的過ぎてわからん。
>なんで、毎回曖昧な表現使うかな...。
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く
202デフォルトの名無しさん
2019/10/13(日) 15:17:55.04ID:3vnN9KRU オブジェクト指向のもたらした依存爆発へのカプセル化の関与
多態はmin, max、abs くらいに制限しまずは捨てましょう。
継承はソースの合成レベルで大いなる依存を持ちむので、
特にアプリレイヤでの活用はホント色々問題あるんだけれど、
カプセル化はというと、
1つはdynamic なextentが好まれる点ね。
どっかで作られるインスタンス・メンバが、見通しやすいnest したlexicalなscopeを離れて
浮遊し、どっかで参照、更新されると。。。。
動的にだぞ?お前がやっているような小さいプログラムは何とでもなるかもしれないけどさ、
どうやって追っかけんだよ
二つ目はデータ構造間の依存、三つ目はデータ構造に対するメンバとmethodの依存
たとえば委譲した動的階層化データ構造の中の、ある局面で一見みえないメンバがどこか遠くで
定義され参照され更新され、、、、orz
あるいは複合型クラスのインスタンスとメンバを多階層の継承と組み合わせた場合、、、、、
まぁ言わずもがな経験者は分かるだろう
管理不能なスパゲティ−の出来上がりだわな
こうやってカプセル化した動的な型構造は依存を中継するハブ見たいな役割を果たしてしまうんだよ
このたわけめ
ここまで1から10まで説明させるとは、金取るぞホントに
多態はmin, max、abs くらいに制限しまずは捨てましょう。
継承はソースの合成レベルで大いなる依存を持ちむので、
特にアプリレイヤでの活用はホント色々問題あるんだけれど、
カプセル化はというと、
1つはdynamic なextentが好まれる点ね。
どっかで作られるインスタンス・メンバが、見通しやすいnest したlexicalなscopeを離れて
浮遊し、どっかで参照、更新されると。。。。
動的にだぞ?お前がやっているような小さいプログラムは何とでもなるかもしれないけどさ、
どうやって追っかけんだよ
二つ目はデータ構造間の依存、三つ目はデータ構造に対するメンバとmethodの依存
たとえば委譲した動的階層化データ構造の中の、ある局面で一見みえないメンバがどこか遠くで
定義され参照され更新され、、、、orz
あるいは複合型クラスのインスタンスとメンバを多階層の継承と組み合わせた場合、、、、、
まぁ言わずもがな経験者は分かるだろう
管理不能なスパゲティ−の出来上がりだわな
こうやってカプセル化した動的な型構造は依存を中継するハブ見たいな役割を果たしてしまうんだよ
このたわけめ
ここまで1から10まで説明させるとは、金取るぞホントに
203デフォルトの名無しさん
2019/10/13(日) 15:19:50.19ID:OAJhlsQO これがネットのどこにも落ちてない口伝でのみ伝えられるという奥義(゚A゚;)ゴクリ
( ゚д゚)ホントニハヤットンノカイ?
( ゚д゚)ホントニハヤットンノカイ?
204デフォルトの名無しさん
2019/10/13(日) 15:23:23.57ID:3vnN9KRU 入門者とえせ講師を中心に日本中で絶賛大流行中だぜ。
もう新興宗教かめ威信か、比科学的もいいところ
もう新興宗教かめ威信か、比科学的もいいところ
205デフォルトの名無しさん
2019/10/13(日) 15:23:27.38ID:AoZShAI6 ここでルー大柴が一言
↓
↓
206デフォルトの名無しさん
2019/10/13(日) 15:24:41.56ID:bBavR94N >>199
> ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
> 結局多くのメンバをアクセサを用意するはめに陥る。
なんでアクセサを用意したらダメなんて思ってんの?
それが外部から触るなら、インターフェース化(≒仕様化)するってだけでしょ
> ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
> 結局多くのメンバをアクセサを用意するはめに陥る。
なんでアクセサを用意したらダメなんて思ってんの?
それが外部から触るなら、インターフェース化(≒仕様化)するってだけでしょ
207デフォルトの名無しさん
2019/10/13(日) 15:25:44.76ID:bBavR94N208デフォルトの名無しさん
2019/10/13(日) 15:26:22.12ID:bBavR94N209デフォルトの名無しさん
2019/10/13(日) 15:26:23.31ID:0tGtu6dL なんだろう、OOPってこんなに難しい話ではないと思ったのだが...
着目点が違うのだろうか。
OOPに関係のない概念まで出てきているような...。
誰か、理解、できた、人、いる?
いや、static/lexical scope、dynamic scope、extent、依存、複合型クラス、インスタンス
これらの用語が全然スッと頭に入ってこないのはなぜだろう。
着目点が違うのだろうか。
OOPに関係のない概念まで出てきているような...。
誰か、理解、できた、人、いる?
いや、static/lexical scope、dynamic scope、extent、依存、複合型クラス、インスタンス
これらの用語が全然スッと頭に入ってこないのはなぜだろう。
210デフォルトの名無しさん
2019/10/13(日) 15:26:34.66ID:OAJhlsQO 新興宗教じゃん
メリットもねーし
メリットもねーし
211デフォルトの名無しさん
2019/10/13(日) 15:26:45.70ID:bBavR94N212デフォルトの名無しさん
2019/10/13(日) 15:27:41.18ID:bBavR94N213デフォルトの名無しさん
2019/10/13(日) 15:29:50.44ID:3vnN9KRU >>206
せっかく内側に入れて隠そうとしたものが、
実は外からアクセスする必要にあるものでしたテヘペロというのは
設計のミスだったり複合型化すべきではないものだったりするじゃない。
それにプログラムが実行中にある局面から見える変数や環境、
あるいは関数は数が多くなっ足り独自のextentを持っていると
急激に人間には複雑に見えてくるでしょ
だからアクセサを多数用意するのh簡単だけどそうした段階で、その後の管理苦労はもう目にみえているわけ
本とここは子供相談室かよ
せっかく内側に入れて隠そうとしたものが、
実は外からアクセスする必要にあるものでしたテヘペロというのは
設計のミスだったり複合型化すべきではないものだったりするじゃない。
それにプログラムが実行中にある局面から見える変数や環境、
あるいは関数は数が多くなっ足り独自のextentを持っていると
急激に人間には複雑に見えてくるでしょ
だからアクセサを多数用意するのh簡単だけどそうした段階で、その後の管理苦労はもう目にみえているわけ
本とここは子供相談室かよ
214デフォルトの名無しさん
2019/10/13(日) 15:30:01.27ID:OAJhlsQO 機能一覧
→各機能の処理一覧
→それに対応する関数一覧
を作ってた昔のほうがシンプルだよ
これ以上シンプルなモノがないのに
余計なことしてわざわざ難しくしてる
→各機能の処理一覧
→それに対応する関数一覧
を作ってた昔のほうがシンプルだよ
これ以上シンプルなモノがないのに
余計なことしてわざわざ難しくしてる
215デフォルトの名無しさん
2019/10/13(日) 15:31:09.74ID:3vnN9KRU216デフォルトの名無しさん
2019/10/13(日) 15:32:08.25ID:3vnN9KRU >>209
不勉強
不勉強
217デフォルトの名無しさん
2019/10/13(日) 15:34:33.75ID:bBavR94N >>213
> せっかく内側に入れて隠そうとしたものが、
> 実は外からアクセスする必要にあるものでしたテヘペロというのは
> 設計のミスだったり複合型化すべきではないものだったりするじゃない。
お前の設計のミスでオブジェクト指向の問題じゃない
> せっかく内側に入れて隠そうとしたものが、
> 実は外からアクセスする必要にあるものでしたテヘペロというのは
> 設計のミスだったり複合型化すべきではないものだったりするじゃない。
お前の設計のミスでオブジェクト指向の問題じゃない
218デフォルトの名無しさん
2019/10/13(日) 15:35:57.99ID:3vnN9KRU219デフォルトの名無しさん
2019/10/13(日) 15:36:35.73ID:bBavR94N >>213
だから具体的なコードを書けと。
あと複雑さをゼロにするものだって思ってないか?
お前がオブジェクト指向に過剰に期待して、
オブジェクト指向はダメだって言ってるだけ。
例えて言うのなら
お前「エアバッグは自動車事故を完璧に防ぐものだ」
お前「でもエアバッグでは自動車事故は完璧に防げない」
お前「だからエアバッグはだめなんだ」
このセリフを一人で言ってるだけ。
だから具体的なコードを書けと。
あと複雑さをゼロにするものだって思ってないか?
お前がオブジェクト指向に過剰に期待して、
オブジェクト指向はダメだって言ってるだけ。
例えて言うのなら
お前「エアバッグは自動車事故を完璧に防ぐものだ」
お前「でもエアバッグでは自動車事故は完璧に防げない」
お前「だからエアバッグはだめなんだ」
このセリフを一人で言ってるだけ。
220デフォルトの名無しさん
2019/10/13(日) 15:36:46.78ID:3vnN9KRU221デフォルトの名無しさん
2019/10/13(日) 15:37:16.46ID:0tGtu6dL えっ、私だけ不勉強なの?
どなたか、解説をしていただけないだろうか。
カプセル化がstatic scopeとextent管理に問題を及ぼす解説らしいのですが...。
どなたか、解説をしていただけないだろうか。
カプセル化がstatic scopeとextent管理に問題を及ぼす解説らしいのですが...。
222デフォルトの名無しさん
2019/10/13(日) 15:37:19.69ID:bBavR94N223デフォルトの名無しさん
2019/10/13(日) 15:38:22.49ID:3vnN9KRU224デフォルトの名無しさん
2019/10/13(日) 15:38:49.28ID:bBavR94N225デフォルトの名無しさん
2019/10/13(日) 15:39:09.70ID:OAJhlsQO226デフォルトの名無しさん
2019/10/13(日) 15:39:23.34ID:bBavR94N227デフォルトの名無しさん
2019/10/13(日) 15:39:35.55ID:3vnN9KRU228デフォルトの名無しさん
2019/10/13(日) 15:40:19.88ID:OAJhlsQO229デフォルトの名無しさん
2019/10/13(日) 15:40:22.51ID:bBavR94N >>227
また何も言い返してないよね?w
また何も言い返してないよね?w
230デフォルトの名無しさん
2019/10/13(日) 15:41:06.74ID:3vnN9KRU231デフォルトの名無しさん
2019/10/13(日) 15:42:33.39ID:OAJhlsQO エアバッグの性能を厳密に測定しないとわからないよね
232デフォルトの名無しさん
2019/10/13(日) 15:43:54.29ID:bBavR94N >>228
じゃあ、その関数一覧でさ、
アルゴリズムが、例えば
AES暗号を使ったモジュール
TDES暗号を使ったモジュール
2TDES暗号を使ったモジュール
3TDES暗号を使ったモジュール
みたいに複数あって、
それらを交換可能にするときはどうするのさ?
てんでバラバラの関数一覧があるだけではダメってのがわかるだろ?
それらの関数一覧に対する共通の仕様(=インターフェース)が
定義されれてないとダメ。
それに関する問題を解決するのがオブジェクト指向なんだが
じゃあ、その関数一覧でさ、
アルゴリズムが、例えば
AES暗号を使ったモジュール
TDES暗号を使ったモジュール
2TDES暗号を使ったモジュール
3TDES暗号を使ったモジュール
みたいに複数あって、
それらを交換可能にするときはどうするのさ?
てんでバラバラの関数一覧があるだけではダメってのがわかるだろ?
それらの関数一覧に対する共通の仕様(=インターフェース)が
定義されれてないとダメ。
それに関する問題を解決するのがオブジェクト指向なんだが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 農林水産省「春頃にはコメ価格落ち着くのでは」新米の取引価格、過去最高を更新。 [256556981]
