■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(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)
探検
カプセル化は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/07/29(水) 17:17:58.13ID:u638n5uE156デフォルトの名無しさん
2020/08/19(水) 22:33:08.34ID:yE6ycl6R 昔のC言語は状態なんか持たなくても動いてたよw
前提が間違ってるじゃん
前提が間違ってるじゃん
157デフォルトの名無しさん
2020/08/19(水) 22:34:39.94ID:1TMyVKY8 >ソースコードが存在し改修が可能であればカプセル化しても問題ない。
>ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
ライブラリが担うべき要件でもないし他の探すか自分で作るか改修依頼するかしかないでしょ
なんでカプセル化が悪の権化みたいなことになってんのw
>ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
ライブラリが担うべき要件でもないし他の探すか自分で作るか改修依頼するかしかないでしょ
なんでカプセル化が悪の権化みたいなことになってんのw
158デフォルトの名無しさん
2020/08/19(水) 22:35:36.18ID:OrygHj4v 純粋でなければ、利点として宣伝されるものの多くが実現されなくなるからな。
もっとも、純粋であっても、現時点では実現されていないのだが。
もっとも、純粋であっても、現時点では実現されていないのだが。
159デフォルトの名無しさん
2020/08/19(水) 22:36:45.75ID:1TMyVKY8 C言語とかバリバリ状態変数使ってるでしょ
160デフォルトの名無しさん
2020/08/19(水) 22:39:11.93ID:1TMyVKY8 その状態の管理方法がオブジェクト指向でも純粋関数型でもないだけで
161デフォルトの名無しさん
2020/08/19(水) 22:56:55.74ID:c5gUks+P >>140
getter/setterはJavaBeansの仕様だからね
JavaBeansはGUIツールでポトペタで操作できるようにするためのもの
GUIのツールでプロパティ書き換えたりイベントリスナー書いたりするのが目的
だからJavaBeansの情報を取得するBeanInfoにはgetIconメソッドがあったりする
JavaBeansではプロパティに値をセットしたら値が変更されましたイベントを発火したりするから
getter/setter経由でアクセスすることは理に適っていた
それがいつの間にかオブジェクト指向のプログラムではgetter/setterを書くんだーになってしまった
JavaBeansのようなコンポネントの作法はライブラリ内部で使われるようなオブジェクトには必要ない
デスクトップアプリの開発が衰退したおかげかいまはだいぶその認識が広まってる
getter/setterはJavaBeansの仕様だからね
JavaBeansはGUIツールでポトペタで操作できるようにするためのもの
GUIのツールでプロパティ書き換えたりイベントリスナー書いたりするのが目的
だからJavaBeansの情報を取得するBeanInfoにはgetIconメソッドがあったりする
JavaBeansではプロパティに値をセットしたら値が変更されましたイベントを発火したりするから
getter/setter経由でアクセスすることは理に適っていた
それがいつの間にかオブジェクト指向のプログラムではgetter/setterを書くんだーになってしまった
JavaBeansのようなコンポネントの作法はライブラリ内部で使われるようなオブジェクトには必要ない
デスクトップアプリの開発が衰退したおかげかいまはだいぶその認識が広まってる
162デフォルトの名無しさん
2020/08/19(水) 23:05:18.29ID:EjRsdu11 単にそのクラスに必要な操作のみ公開するという思想は良いと思うが
頭の硬いやつがいると理解出来ないからか文句を言ってくる
頭の硬いやつがいると理解出来ないからか文句を言ってくる
163デフォルトの名無しさん
2020/08/19(水) 23:25:59.69ID:yE6ycl6R >>162
結局入力と出力を
メンバ変数に入力や出力を内包されると単純に動作が把握し難いだけで
全くメリットがない
内包されたデータを見ないで修正してもいいのか?
お前の会社はそれでいいとは言わないだろう
だとしたら入力や出力を隠蔽するのは誰にとっても迷惑にしかならない
結局入力と出力を
メンバ変数に入力や出力を内包されると単純に動作が把握し難いだけで
全くメリットがない
内包されたデータを見ないで修正してもいいのか?
お前の会社はそれでいいとは言わないだろう
だとしたら入力や出力を隠蔽するのは誰にとっても迷惑にしかならない
164デフォルトの名無しさん
2020/08/19(水) 23:41:19.27ID:1TMyVKY8 そのクラスの責務(入力に対する出力の仕様)がわかっていれば
具体的な内部の動きを把握する必要がそもそもない
把握する必要ないから楽
具体的な内部の動きを把握する必要がそもそもない
把握する必要ないから楽
165デフォルトの名無しさん
2020/08/19(水) 23:48:14.52ID:AMkDCrIJ >>163
システムの規模が大きくなった時
どう管理するかって話だからその理屈は全く関係ないんだよな
内包されたデータを見ないで修正してもいいか?
オブジェクト指向であれば、それがある単位で分割されているから
そこだけを見ればいい
システムの規模が大きくなった時
どう管理するかって話だからその理屈は全く関係ないんだよな
内包されたデータを見ないで修正してもいいか?
オブジェクト指向であれば、それがある単位で分割されているから
そこだけを見ればいい
166デフォルトの名無しさん
2020/08/20(木) 00:39:03.89ID:Ha0cLvqC167デフォルトの名無しさん
2020/08/20(木) 00:40:27.24ID:Ha0cLvqC >>165
お前が作ったクラスの動作がおかしいときどうすればいいの?
お前が作ったクラスの動作がおかしいときどうすればいいの?
168デフォルトの名無しさん
2020/08/20(木) 00:43:54.72ID:x6SYzBHh >>167
テストコード書いて直すだけ
テストコード書いて直すだけ
169デフォルトの名無しさん
2020/08/20(木) 00:44:38.43ID:x6SYzBHh170デフォルトの名無しさん
2020/08/20(木) 00:50:30.84ID:ecAQ66Lj 適切な単位で分割されてると修正も楽
それこそ「そのクラスの責務(入力に対する出力の仕様)」だけ
満たすことを考えればいい
それこそ「そのクラスの責務(入力に対する出力の仕様)」だけ
満たすことを考えればいい
171デフォルトの名無しさん
2020/08/20(木) 00:53:30.10ID:ecAQ66Lj 内部で関係する変数とかを閉じててくれないと
そのクラスに値を設定する部分を見て回らないといけなくなる
そのクラスに値を設定する部分を見て回らないといけなくなる
172デフォルトの名無しさん
2020/08/20(木) 00:58:14.66ID:nfJPehze クラスに値を設定する部分は、そのクラスを見るだけでいい
引数として独立していると、その引数を使ってる部分を全部調べなければいけなくなる
戻り値が変わると、その戻り値を使ってる部分全てだ
引数として独立していると、その引数を使ってる部分を全部調べなければいけなくなる
戻り値が変わると、その戻り値を使ってる部分全てだ
173デフォルトの名無しさん
2020/08/20(木) 00:59:25.71ID:Ha0cLvqC174デフォルトの名無しさん
2020/08/20(木) 01:09:23.46ID:Eg0HvHSQ 一クラス一メソッドの原則な。
175デフォルトの名無しさん
2020/08/20(木) 01:10:33.08ID:ecAQ66Lj メンバ変数statesがprivateだったらそのクラス内に閉じた問題だから
単純にそのクラスのメソッド内でstatesとnoneを比較するようなとこを
洗い出せばいいんじゃないの?
単純にそのクラスのメソッド内でstatesとnoneを比較するようなとこを
洗い出せばいいんじゃないの?
176デフォルトの名無しさん
2020/08/20(木) 01:20:32.10ID:qjxJt4Hn >>170
その責務って奴が言葉だけは聞こえがいいが
現実論として関わるプログラマや関係者の間で
認識がバラバラになる最大のポイントなんだわ。
プログラムやコンピュータを計算機として見てないんだわ。
「この処理を果たしてこの場所で書いていいものか…」
なんて余計な事で頭を悩ます最大の原因なんだわ。
それよりももっとシンプルに、
任意の場所に、受け取った引数を使って
結果を返す関数を作って関数に要求させた演算を
投げて結果だけ受け取った方が生産的だよね?
関数を連鎖的に組み合わせればどんな複雑な演算も
成し遂げることが出来る。
その責務って奴が言葉だけは聞こえがいいが
現実論として関わるプログラマや関係者の間で
認識がバラバラになる最大のポイントなんだわ。
プログラムやコンピュータを計算機として見てないんだわ。
「この処理を果たしてこの場所で書いていいものか…」
なんて余計な事で頭を悩ます最大の原因なんだわ。
それよりももっとシンプルに、
任意の場所に、受け取った引数を使って
結果を返す関数を作って関数に要求させた演算を
投げて結果だけ受け取った方が生産的だよね?
関数を連鎖的に組み合わせればどんな複雑な演算も
成し遂げることが出来る。
177デフォルトの名無しさん
2020/08/20(木) 01:27:25.42ID:ecAQ66Lj それはチーム編成とか統制の問題では
レベルが低い集団だと統制とれずク○の山が積み上がって
収集つかなくなるんだろうな
レベルが低い集団だと統制とれずク○の山が積み上がって
収集つかなくなるんだろうな
178デフォルトの名無しさん
2020/08/20(木) 01:32:57.21ID:Ha0cLvqC >>175
privateメンバ変数は見なくていいって話じゃなかったん?
privateメンバ変数は見なくていいって話じゃなかったん?
179デフォルトの名無しさん
2020/08/20(木) 01:36:01.29ID:ecAQ66Lj クラス外からは気にしなくていいけどクラスを修正するときは見なきゃだめでしょ
privateなら見るべき範囲はクラス内って絞ることができる
privateなら見るべき範囲はクラス内って絞ることができる
180デフォルトの名無しさん
2020/08/20(木) 01:44:41.21ID:Ha0cLvqC >>179
じゃあ、結局見るんじゃんバーカ
じゃあ、結局見るんじゃんバーカ
181デフォルトの名無しさん
2020/08/20(木) 01:48:58.64ID:ecAQ66Lj え
182デフォルトの名無しさん
2020/08/20(木) 01:52:46.09ID:ecAQ66Lj まあ理解できもしないのに真似事みたいなことするのが一番迷惑だから
やりたいようにやりなさい
やりたいようにやりなさい
183デフォルトの名無しさん
2020/08/20(木) 02:03:10.41ID:ecAQ66Lj そもそも>>173の質問がバカ丸出しなのに自覚ないとか
184デフォルトの名無しさん
2020/08/20(木) 07:00:11.09ID:X1nNk3cj >>161
プロパティって、どういうプロパティが存在するかを実行時にインスペクトできるというのも重要な性質だな。
BeansはJavaのリフレクションでそれを実現していたけど、単なるgette/setterではそういうのも忘れられている。
プロパティって、どういうプロパティが存在するかを実行時にインスペクトできるというのも重要な性質だな。
BeansはJavaのリフレクションでそれを実現していたけど、単なるgette/setterではそういうのも忘れられている。
185デフォルトの名無しさん
2020/08/20(木) 07:31:18.16ID:Ha0cLvqC186デフォルトの名無しさん
2020/08/20(木) 07:59:40.26ID:i/J3/2zN >>176
それって、ちゃんと考えて設計するの面倒だから全部グローバル変数でやります、生産性高いよね!といってるのと変わらないじゃないかw
それって、ちゃんと考えて設計するの面倒だから全部グローバル変数でやります、生産性高いよね!といってるのと変わらないじゃないかw
187デフォルトの名無しさん
2020/08/20(木) 08:08:01.01ID:Ha0cLvqC >>186
比較するものがグローバル変数使用のソースしか無くなった?
比較するものがグローバル変数使用のソースしか無くなった?
188デフォルトの名無しさん
2020/08/20(木) 08:33:25.88ID:ecAQ66Lj >>185
> さらにpublic staticならグローバル変数不使用なら
どうせその前提だとそれはクラス内部に状態を持つ必要ない単なるUtilityクラス
内のメソッドだろ?
状態をどうやって管理するかの話だったのに、状態を排除した前提を持ち出してきて
何を認めさせたいの?反論することだけが目的?
> さらにpublic staticならグローバル変数不使用なら
どうせその前提だとそれはクラス内部に状態を持つ必要ない単なるUtilityクラス
内のメソッドだろ?
状態をどうやって管理するかの話だったのに、状態を排除した前提を持ち出してきて
何を認めさせたいの?反論することだけが目的?
189デフォルトの名無しさん
2020/08/20(木) 08:38:25.78ID:Ha0cLvqC190デフォルトの名無しさん
2020/08/20(木) 10:46:21.05ID:ecAQ66Lj 御託はいいからお前の書いたコード見てみたいわ
グローバル変数を使わないCコードが書けるんだろ?(失笑)
C言語ならグローバル変数はある程度使うべきなんだけどね
グローバル変数を使わないCコードが書けるんだろ?(失笑)
C言語ならグローバル変数はある程度使うべきなんだけどね
191デフォルトの名無しさん
2020/08/20(木) 11:25:12.56ID:Ha0cLvqC192デフォルトの名無しさん
2020/08/20(木) 12:04:17.63ID:ecAQ66Lj 下手なりにかけるとは思うよ下手なりに
ただその方法じゃスケールしない
ここまで言ってわからないならもう相手にしてあげないよ
ただその方法じゃスケールしない
ここまで言ってわからないならもう相手にしてあげないよ
193デフォルトの名無しさん
2020/08/20(木) 12:06:02.57ID:ecAQ66Lj 小さいプログラムしか書いたことないんだろうな
194デフォルトの名無しさん
2020/08/20(木) 12:14:50.55ID:KHHtBj+5 結局大規模なものをカプセル化が有効なんだよね
195デフォルトの名無しさん
2020/08/20(木) 12:49:31.45ID:tyNv301J Information Hidingの意味でカプセル化と言ってるやつと
データとメソッドをオブジェクトという構造にひとまとめにすることをカプセル化と言ってるやつがいるから
話が噛み合ってない
前者はオブジェクト指向に関係なくあらゆるプログラミングスタイルで使われてる
規模に関係して重要になってくるのはInformation Hidingの意味でのカプセル化
CでもHaskellでもそれが重要なのは変わらない
後者はオブジェクト指向特有のもの
これはソフトウェアの規模の大小とは関係なく
どういう方向の変化に対して高い柔軟性を確保しておくのがいいかという問題なので
デメリットも考慮しつつ状況に合わせて採用するかどうか判断すべきもの
データとメソッドをオブジェクトという構造にひとまとめにすることをカプセル化と言ってるやつがいるから
話が噛み合ってない
前者はオブジェクト指向に関係なくあらゆるプログラミングスタイルで使われてる
規模に関係して重要になってくるのはInformation Hidingの意味でのカプセル化
CでもHaskellでもそれが重要なのは変わらない
後者はオブジェクト指向特有のもの
これはソフトウェアの規模の大小とは関係なく
どういう方向の変化に対して高い柔軟性を確保しておくのがいいかという問題なので
デメリットも考慮しつつ状況に合わせて採用するかどうか判断すべきもの
196デフォルトの名無しさん
2020/08/20(木) 15:12:12.70ID:ecAQ66Lj Ha0cLvqC ← こいつに関しては
・情報隠蔽
・関心事の局所化
いずれの意味も明らかに理解できていないし、日本語も通じてないから話が噛み合わない
・情報隠蔽
・関心事の局所化
いずれの意味も明らかに理解できていないし、日本語も通じてないから話が噛み合わない
197デフォルトの名無しさん
2020/08/20(木) 16:03:22.57ID:BhReT/u1 お前らのコミュニケーション能力が劣ってるだけだろ
良い大人なんだからきちんと伝わる語彙と文法、論理を示せばわかりあえる
コミュ障のお前らに俺が手本を見せてやるよ
良い大人なんだからきちんと伝わる語彙と文法、論理を示せばわかりあえる
コミュ障のお前らに俺が手本を見せてやるよ
199デフォルトの名無しさん
2020/08/20(木) 17:54:53.75ID:Ha0cLvqC >>196
でも君、メリット説明できないよね?
でも君、メリット説明できないよね?
200デフォルトの名無しさん
2020/08/20(木) 18:34:06.73ID:ecAQ66Lj お前みたいな低能に説明してる時間が無駄
201デフォルトの名無しさん
2020/08/20(木) 19:27:08.80ID:Ha0cLvqC202デフォルトの名無しさん
2020/08/20(木) 19:33:32.26ID:ecAQ66Lj 技術的な関心があってこんなスレ開いてるんだろ?
にしては程度が低すぎる
にしては程度が低すぎる
203デフォルトの名無しさん
2020/08/20(木) 19:47:35.12ID:ecAQ66Lj お前が今まで信じてきたものやってきたことって意味あったの?
204デフォルトの名無しさん
2020/08/20(木) 20:05:43.17ID:Ha0cLvqC205デフォルトの名無しさん
2020/08/20(木) 20:24:20.57ID:ecAQ66Lj オブジェクト指向の理解にすら躓いてるやつと話しても時間の無駄だから
206デフォルトの名無しさん
2020/08/20(木) 21:49:30.63ID:Ha0cLvqC207デフォルトの名無しさん
2020/08/20(木) 21:56:57.19ID:/mEcLGEB 理解できる脳みそがない
208デフォルトの名無しさん
2020/08/20(木) 22:16:51.32ID:KHHtBj+5 >>206
メリットを解説してるけど、解説になってないというサイトを言える?
お前が一番まともだと思うやつね。全てまともじゃないというのなら其の中でいちばん有名なやつ
それをお前が言えるのであれば、俺らはそれがちゃんとした解説になってることを証明するのは簡単だろう
メリットを解説してるけど、解説になってないというサイトを言える?
お前が一番まともだと思うやつね。全てまともじゃないというのなら其の中でいちばん有名なやつ
それをお前が言えるのであれば、俺らはそれがちゃんとした解説になってることを証明するのは簡単だろう
209デフォルトの名無しさん
2020/08/20(木) 22:22:56.32ID:Ha0cLvqC210デフォルトの名無しさん
2020/08/20(木) 22:30:26.14ID:qjxJt4Hn もう「お前はオブジェクト指向理解してない」
に結論づけるのやめにしようや。
かならずそこに収束するやん。
理解してない奴が悪いんじゃなくて
理解し難い概念であるオブジェクト指向が悪い
っていう発想の転換してんだよ
に結論づけるのやめにしようや。
かならずそこに収束するやん。
理解してない奴が悪いんじゃなくて
理解し難い概念であるオブジェクト指向が悪い
っていう発想の転換してんだよ
211デフォルトの名無しさん
2020/08/20(木) 22:31:11.37ID:Ha0cLvqC だいたい言ってることキチガイじゃん
オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
なんのために誰に隠蔽してたんだよw
完全に無意味じゃんwww
こんなくだらないことやってるんだったら、public staticにするべきだぜ
オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
なんのために誰に隠蔽してたんだよw
完全に無意味じゃんwww
こんなくだらないことやってるんだったら、public staticにするべきだぜ
212デフォルトの名無しさん
2020/08/20(木) 22:34:10.09ID:Eg0HvHSQ いや、一クラス一メソッドの原則に基づいて設計すればじゅうぶん可能。
213デフォルトの名無しさん
2020/08/20(木) 22:47:07.87ID:KHHtBj+5214デフォルトの名無しさん
2020/08/20(木) 22:48:24.29ID:KHHtBj+5 >>211
> オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
それは使う場合の話。つまり開発(担当)者とは別の人は気にしなくていい
> 修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
それは開発(担当)者の話
この区別ぐらい基本だろ
> オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
それは使う場合の話。つまり開発(担当)者とは別の人は気にしなくていい
> 修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
それは開発(担当)者の話
この区別ぐらい基本だろ
215デフォルトの名無しさん
2020/08/20(木) 23:03:27.99ID:Ha0cLvqC216デフォルトの名無しさん
2020/08/20(木) 23:06:06.44ID:KHHtBj+5 >>215
お前バカなのか?
例え自分が開発したとしても、それを使うだけの場合と開発する場合は違うだろ
苦労して頑張ってライブラリを作りました。
そのライブラリを使うときに、ライブラリのソースコードの中身を見ないと使い方がわかりません
ってそれ、作り方しっぱいしてるじゃん
お前はいちいち中身を見てるんだろうけどな
お前バカなのか?
例え自分が開発したとしても、それを使うだけの場合と開発する場合は違うだろ
苦労して頑張ってライブラリを作りました。
そのライブラリを使うときに、ライブラリのソースコードの中身を見ないと使い方がわかりません
ってそれ、作り方しっぱいしてるじゃん
お前はいちいち中身を見てるんだろうけどな
217デフォルトの名無しさん
2020/08/20(木) 23:07:26.61ID:Ha0cLvqC218デフォルトの名無しさん
2020/08/20(木) 23:08:01.72ID:qjxJt4Hn そのライブラリ使ってるブログ検索して
真似するだけなんだよなぁ…
隠蔽要らんやん
真似するだけなんだよなぁ…
隠蔽要らんやん
219デフォルトの名無しさん
2020/08/20(木) 23:11:15.07ID:Ha0cLvqC >>216
は?何言ってるのか意味不明
は?何言ってるのか意味不明
220デフォルトの名無しさん
2020/08/20(木) 23:13:58.87ID:KHHtBj+5221デフォルトの名無しさん
2020/08/20(木) 23:15:04.46ID:KHHtBj+5 頑張ってクイックソートライブラリを作ったおっさんは
これでもうソートするときに中身をいちいち見なくてすむ
って安堵してるわけだ
これでもうソートするときに中身をいちいち見なくてすむ
って安堵してるわけだ
222デフォルトの名無しさん
2020/08/20(木) 23:19:44.69ID:Ha0cLvqC223デフォルトの名無しさん
2020/08/20(木) 23:44:16.56ID:KHHtBj+5224デフォルトの名無しさん
2020/08/20(木) 23:44:18.70ID:iNatz9V0 >>195
そうそう。
カプセル化っていってんだから、オブジェクト指向は関係ない。
Cの構造体でメンバを公開したり非公開にしたりできまっせ。っていうだけのこと。
それを愚かというなら、その程度の規模のプログラムしか作ったことないんだろうね。
そうそう。
カプセル化っていってんだから、オブジェクト指向は関係ない。
Cの構造体でメンバを公開したり非公開にしたりできまっせ。っていうだけのこと。
それを愚かというなら、その程度の規模のプログラムしか作ったことないんだろうね。
225デフォルトの名無しさん
2020/08/20(木) 23:45:52.06ID:iNatz9V0226デフォルトの名無しさん
2020/08/20(木) 23:47:57.89ID:Ha0cLvqC227デフォルトの名無しさん
2020/08/20(木) 23:49:20.30ID:KHHtBj+5228デフォルトの名無しさん
2020/08/20(木) 23:50:03.69ID:Ha0cLvqC >>225
年収1000万超えのカリスマプログラマー(笑)さんですか?
年収1000万超えのカリスマプログラマー(笑)さんですか?
229デフォルトの名無しさん
2020/08/20(木) 23:50:43.49ID:KHHtBj+5 > でも修正するとき見ないと駄目なんだろw
でも風呂に入るとき脱がないと駄目なんだろw
じゃあ服着る意味がないじゃない
といっているのがお前
でも風呂に入るとき脱がないと駄目なんだろw
じゃあ服着る意味がないじゃない
といっているのがお前
230デフォルトの名無しさん
2020/08/20(木) 23:55:00.24ID:iNatz9V0231デフォルトの名無しさん
2020/08/20(木) 23:56:32.42ID:iNatz9V0 >>230
机じゃなくて椅子か。
机じゃなくて椅子か。
232デフォルトの名無しさん
2020/08/20(木) 23:59:10.43ID:Ha0cLvqC >>227
は?だってメンバ変数ってクラス内限定のグローバル変数だぜ
このときのお前のメソッドは俺の作るpublic staticなメソッドより遥かに
不出来で読みにくい
どこでいきなり編集されるかわからないメンバ変数に気を配りながら
メソッドを読むのはぶっちゃけ苦痛でしかない
は?だってメンバ変数ってクラス内限定のグローバル変数だぜ
このときのお前のメソッドは俺の作るpublic staticなメソッドより遥かに
不出来で読みにくい
どこでいきなり編集されるかわからないメンバ変数に気を配りながら
メソッドを読むのはぶっちゃけ苦痛でしかない
233デフォルトの名無しさん
2020/08/21(金) 00:00:02.85ID:f3uMOLT8 >>229
たとえ話が適切であることを証明してからしろよそういうのは
たとえ話が適切であることを証明してからしろよそういうのは
234デフォルトの名無しさん
2020/08/21(金) 00:01:33.82ID:x4g5r5SE > メンバ変数がクラス内限定のグローバル変数
その通りなんだが、声を出して笑ったわ。
君と働く人たちは大変だなw
その通りなんだが、声を出して笑ったわ。
君と働く人たちは大変だなw
235デフォルトの名無しさん
2020/08/21(金) 00:13:52.76ID:8bG0TKoL236デフォルトの名無しさん
2020/08/21(金) 00:14:57.41ID:8bG0TKoL 条件付きで何かを主張し始めたら、
それはもう主張が破綻してるってことなんですよ。
Macユーザー限定だとMacのシェア100%だ!みたいにね
それはもう主張が破綻してるってことなんですよ。
Macユーザー限定だとMacのシェア100%だ!みたいにね
237デフォルトの名無しさん
2020/08/21(金) 00:31:48.71ID:FlbTfju5 >>234-235
俺の作るpublic staticのが遥かに厳密に管理されてて
お前らのはしっかりやってるようでいて
わりかしドンブリだってわかっただろ?
俺はオブジェクト指向のここが特に嫌でメンバ変数がグローバル変数的な問題を起こすところが
クラスが大きくなったときに本当に嫌
つまり俺が嫌いなのはグローバル変数的な動きをするメンバ変数なんだよ
クラスでもちゃんと引数通してアクセスするような造りにしてるときは別にいいぜ
ただそれやるならpublic staticのがいいしやっぱりバカだね
俺の作るpublic staticのが遥かに厳密に管理されてて
お前らのはしっかりやってるようでいて
わりかしドンブリだってわかっただろ?
俺はオブジェクト指向のここが特に嫌でメンバ変数がグローバル変数的な問題を起こすところが
クラスが大きくなったときに本当に嫌
つまり俺が嫌いなのはグローバル変数的な動きをするメンバ変数なんだよ
クラスでもちゃんと引数通してアクセスするような造りにしてるときは別にいいぜ
ただそれやるならpublic staticのがいいしやっぱりバカだね
238デフォルトの名無しさん
2020/08/21(金) 00:43:01.36ID:8bG0TKoL > わりかしドンブリだってわかっただろ?
なにか証明した?
それがわかるというレスを(明示できるなら)やってみてよw
なにか証明した?
それがわかるというレスを(明示できるなら)やってみてよw
239デフォルトの名無しさん
2020/08/21(金) 00:43:45.59ID:8bG0TKoL240デフォルトの名無しさん
2020/08/21(金) 01:05:05.19ID:FlbTfju5241デフォルトの名無しさん
2020/08/21(金) 01:06:35.83ID:FlbTfju5 まあ、デバイス絡むとそいつの状態次第だけど
そこに限定できるじゃん?
そこに限定できるじゃん?
242デフォルトの名無しさん
2020/08/21(金) 02:13:09.68ID:8bG0TKoL >>240
引数が大量になるじゃんw
クラスの中にある変数を全部引数で渡すとしたら
何十個にもなるからな
それとも構造体で渡すのか?
そうすると構造体のうちどこを弄るかわからないから
結局グローバル変数と変わらなくなるなw
引数が大量になるじゃんw
クラスの中にある変数を全部引数で渡すとしたら
何十個にもなるからな
それとも構造体で渡すのか?
そうすると構造体のうちどこを弄るかわからないから
結局グローバル変数と変わらなくなるなw
243デフォルトの名無しさん
2020/08/21(金) 03:01:20.82ID:2Tg4ivJd たしかにベテランになるにつれ、パブリックスタティック関数でやりきる方がすっきりするかもしれん
整理の上手さで
利点はソースがシンプルで早く作れるのと、可読性が良い
ただし整理が上手い場合
もっとも、整理が下手ならクラスもうじゃーっとなるw
無駄にやたらオーバーロードしてたり
整理の上手さで
利点はソースがシンプルで早く作れるのと、可読性が良い
ただし整理が上手い場合
もっとも、整理が下手ならクラスもうじゃーっとなるw
無駄にやたらオーバーロードしてたり
244デフォルトの名無しさん
2020/08/21(金) 03:02:16.79ID:2Tg4ivJd いやオーバーロードはパブリックスタティックでもできるか
245デフォルトの名無しさん
2020/08/21(金) 04:45:13.35ID:xkZp2iCS >>243
もともと小さいプログラムならどっちでやってもすっきり書ける
問題はある程度大きくなると状態とかを取り回す必要が生じてその場合は
毎回staticな関数を呼ぶときにそれらを引数として渡さなきゃいけない
そこまで想像して発言してるか?
もともと小さいプログラムならどっちでやってもすっきり書ける
問題はある程度大きくなると状態とかを取り回す必要が生じてその場合は
毎回staticな関数を呼ぶときにそれらを引数として渡さなきゃいけない
そこまで想像して発言してるか?
246デフォルトの名無しさん
2020/08/21(金) 04:53:48.30ID:xkZp2iCS 小さいプログラムに対してはオブジェクト指向なんて記述が大げさすぎるのは事実だ
でもプログラムが大きくなってくるとその恩恵に預かれる
でもプログラムが大きくなってくるとその恩恵に預かれる
247デフォルトの名無しさん
2020/08/21(金) 04:55:17.21ID:cTh5+k8G 例えばボタンを描画する関数があったとする
そのスタイルとはボタンの色、サイズ、座標
面倒くさいからリンクを貼るけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.button?view=netcore-3.1
AccessibilityObject, AccessibleDefaultActionDescription, AccessibleDescription, AccessibleName,
AccessibleRole, AllowDrop., Anchor, AutoEllipsis, AutoScrollOffset, AutoSize, AutoSizeMode,
BackColor, BackgroundImage, BackgroundImageLayout, ImageLayout, BindingContext,
Bottom, Bounds, CanEnableIme, CanFocus, CanRaiseEvents, CanSelect, Capture,
CausesValidation, ClientRectangle, ClientSize, CompanyName, Container, ContainsFocus,
ContextMenu , ContextMenuStrip, Controls, Created, CreateParams, Cursor
飽きたがこれぐらい渡せばボタンが実現でっきるやろ
そのスタイルとはボタンの色、サイズ、座標
面倒くさいからリンクを貼るけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.button?view=netcore-3.1
AccessibilityObject, AccessibleDefaultActionDescription, AccessibleDescription, AccessibleName,
AccessibleRole, AllowDrop., Anchor, AutoEllipsis, AutoScrollOffset, AutoSize, AutoSizeMode,
BackColor, BackgroundImage, BackgroundImageLayout, ImageLayout, BindingContext,
Bottom, Bounds, CanEnableIme, CanFocus, CanRaiseEvents, CanSelect, Capture,
CausesValidation, ClientRectangle, ClientSize, CompanyName, Container, ContainsFocus,
ContextMenu , ContextMenuStrip, Controls, Created, CreateParams, Cursor
飽きたがこれぐらい渡せばボタンが実現でっきるやろ
248デフォルトの名無しさん
2020/08/21(金) 05:34:11.16ID:FlbTfju5 >>242
どっちでもいいよ
そこで見た目にビビってやめちゃうのが一番の害
それだけ複雑な処理だから仕方ないんだよ
逆にそれだけのもんをグローバル変数で空中戦なんかするから手に負えなくなる
どんなにでかくなっても引数と戻り値に打ち込めや
逆にそこの検閲を徹底するから楽になるんや
どっちでもいいよ
そこで見た目にビビってやめちゃうのが一番の害
それだけ複雑な処理だから仕方ないんだよ
逆にそれだけのもんをグローバル変数で空中戦なんかするから手に負えなくなる
どんなにでかくなっても引数と戻り値に打ち込めや
逆にそこの検閲を徹底するから楽になるんや
249デフォルトの名無しさん
2020/08/21(金) 05:36:23.70ID:FlbTfju5250デフォルトの名無しさん
2020/08/21(金) 07:03:30.98ID:xkZp2iCS >メンバ変数ってクラス内限定のグローバル変数だぜ
最強の迷言
最強の迷言
251デフォルトの名無しさん
2020/08/21(金) 08:40:41.98ID:FlbTfju5252デフォルトの名無しさん
2020/08/21(金) 09:09:18.44ID:x4g5r5SE お前がコーディングしたプログラム貼れよ。
一つのメソッドで1000行とかそれ以上書いてそうなんだよな。
一つのメソッドで1000行とかそれ以上書いてそうなんだよな。
253デフォルトの名無しさん
2020/08/21(金) 09:57:08.78ID:Tdq0GS4g254デフォルトの名無しさん
2020/08/21(金) 10:00:09.80ID:Tdq0GS4g 変数は必要最小限にしたが良い
数もスコープも
数もスコープも
255デフォルトの名無しさん
2020/08/21(金) 10:30:15.77ID:aoU7uP7R 要するにゴミのような想像を絶する現場で使われてる言語がJavaだった、と
すると袈裟が憎い理論も成り立つ
が、どんなパラダイムのどんな言語を使っても底辺ドカタはゴミを作り出す
とすると、一定水準以下の知能の物体は習得できない、面倒な言語を作った方がいい
すると袈裟が憎い理論も成り立つ
が、どんなパラダイムのどんな言語を使っても底辺ドカタはゴミを作り出す
とすると、一定水準以下の知能の物体は習得できない、面倒な言語を作った方がいい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- バイク事故で入院ゆたぼん、見舞金「1円」振り込みの名義に衝撃「悲しい人ですね」「こういう人がいるから…」 [muffin★]
- TSMC、国内で4nmの先端半導体を製造へwwwwwwwwwww 高市さんいつもありがとう🥺 [784715804]
- 高市内閣の支持率、下落wwwwwwwwwww [834922174]
- 【安倍悲報】めっちゃ癌になる遺伝子を持った男性、精子をドナー提供し197人の子供を作る [884040186]
- 中年男性のオナニー死が激増、原因は不明 [422186189]
- 【悲報】音符アイコン大ピンチ「真実だからデマスレ立てても大丈夫やろw」→神戸地検「ダメです」立花逮捕w [732289945]
- 駐日米国大使「フォーブス誌が今年の“世界で最もパワフルな女性”に高市首相を選出。おめでとうございます!」 [834922174]
