カプセル化(英語: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)
探検
カプセル化の有害性、オブジェクト指向は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/06/18(木) 23:47:36.69ID:l/2SQUll412デフォルトの名無しさん
2020/06/27(土) 22:30:05.59ID:kHv6hhb8 テストという概念がオブジェクト指向の中にないからこのようなジレンマに陥るのです
そこで、オブジェクトの中にテストを入れてしまおうというのが僕が提唱する新時代の
プログラミングパラダイム、アクター指向です
そこで、オブジェクトの中にテストを入れてしまおうというのが僕が提唱する新時代の
プログラミングパラダイム、アクター指向です
413デフォルトの名無しさん
2020/06/27(土) 22:30:26.61ID:kHv6hhb8 >>411
壊れるに決まってるだろ、いい加減なこと言うなハゲ
壊れるに決まってるだろ、いい加減なこと言うなハゲ
414デフォルトの名無しさん
2020/06/27(土) 22:30:40.41ID:kHv6hhb8 privateなめんなよ
415デフォルトの名無しさん
2020/06/27(土) 22:30:57.83ID:gS37C1rZ >>413
なんだよw根拠言えないのかよw
なんだよw根拠言えないのかよw
416デフォルトの名無しさん
2020/06/27(土) 22:31:24.07ID:kHv6hhb8 >>415
お前が根拠言えよ
お前が根拠言えよ
417デフォルトの名無しさん
2020/06/27(土) 22:31:41.00ID:kHv6hhb8 壊れないことを証明してみせろ
418デフォルトの名無しさん
2020/06/27(土) 22:32:50.72ID:gS37C1rZ 壊れる要因がないので壊れない
419デフォルトの名無しさん
2020/06/27(土) 22:33:18.25ID:kHv6hhb8 早くしろよおら、全部publicにしてプログラム書いてみろよ、ぶち、壊してやるから
420デフォルトの名無しさん
2020/06/27(土) 22:36:21.73ID:kHv6hhb8 アクセス修飾子はテストのために変えるものじゃない
そこに現行のオブジェクト指向の限界がある
そこでオブジェクト内にテストまで用意しましょうというのが新時代のアクター指向
そこに現行のオブジェクト指向の限界がある
そこでオブジェクト内にテストまで用意しましょうというのが新時代のアクター指向
421デフォルトの名無しさん
2020/06/27(土) 22:37:15.69ID:paNjyoZf 現状のオブジェクト指向言語がウンコってことでいいよね
422デフォルトの名無しさん
2020/06/27(土) 22:38:06.59ID:gS37C1rZ > アクセス修飾子はテストのために変えるものじゃない
当たり前だろうw
テストというのは外部からインターフェースの仕様が明確に決まってるからこそできること
外部からのインターフェースの仕様が明確に決まったなら
それはpublicにしてよい
当たり前だろうw
テストというのは外部からインターフェースの仕様が明確に決まってるからこそできること
外部からのインターフェースの仕様が明確に決まったなら
それはpublicにしてよい
423デフォルトの名無しさん
2020/06/27(土) 22:38:47.14ID:kHv6hhb8 >>422
そんなの当たり前だろ
そんなの当たり前だろ
424デフォルトの名無しさん
2020/06/27(土) 22:39:05.28ID:gS37C1rZ だから当たり前の話をしてる
425デフォルトの名無しさん
2020/06/27(土) 22:40:35.80ID:kHv6hhb8 >>421
はい、そう言わざる得ないのが現状です
言語が悪いんじゃないプログラミングパラダイムにまだ進化の余地があると
前向きに捉えるのが良いと僕は思います
アクター指向言語がこれから出てくることを祈ります
はい、そう言わざる得ないのが現状です
言語が悪いんじゃないプログラミングパラダイムにまだ進化の余地があると
前向きに捉えるのが良いと僕は思います
アクター指向言語がこれから出てくることを祈ります
426デフォルトの名無しさん
2020/06/27(土) 22:40:49.92ID:kHv6hhb8 >>424
だから当たり前だろ
だから当たり前だろ
427デフォルトの名無しさん
2020/06/27(土) 22:41:07.23ID:kHv6hhb8 あ・た・り・ま・え
428デフォルトの名無しさん
2020/06/27(土) 22:41:23.91ID:5gWgsM/a え?privateなメソッドをテストしないって正気?
単に現状のオブジェクト指向言語と開発環境がテストのサポートできてないだけだろ
単に現状のオブジェクト指向言語と開発環境がテストのサポートできてないだけだろ
429デフォルトの名無しさん
2020/06/27(土) 22:42:31.56ID:kHv6hhb8 >>428
ねー意味分かんないよねー、ドン引きだよねー
ねー意味分かんないよねー、ドン引きだよねー
430デフォルトの名無しさん
2020/06/27(土) 22:43:30.93ID:UrcM2fcl >>399
リフレクション使ってでもやれって言うときはやりますけど?
そこら辺はルール作ってるはずで設計以前で明言されるべき
private要素に外部からアクセスしまくるようなことを許す設計やルールはどうかと思いますけどね
というか他の読み手が安心感を得るためでもある気がしますね
全部publicなプロダクトがあったとしてそれに新しいクラスやらを追加しろって言われたら神経質にならなければいけないw
逆にアクセス修飾子なしの言語はルールだけでやってるよね、あれ怖いわ
まあだいたいが単純なプロジェクトしかなさそうな言語だけど。。
リフレクション使ってでもやれって言うときはやりますけど?
そこら辺はルール作ってるはずで設計以前で明言されるべき
private要素に外部からアクセスしまくるようなことを許す設計やルールはどうかと思いますけどね
というか他の読み手が安心感を得るためでもある気がしますね
全部publicなプロダクトがあったとしてそれに新しいクラスやらを追加しろって言われたら神経質にならなければいけないw
逆にアクセス修飾子なしの言語はルールだけでやってるよね、あれ怖いわ
まあだいたいが単純なプロジェクトしかなさそうな言語だけど。。
431デフォルトの名無しさん
2020/06/27(土) 22:43:37.12ID:gS37C1rZ privateなメソッドをテストしないんじゃなくて
仕様が明確に固まってないからテストしてもメンテナンスのコストが増えるだけ
そういうのはprivateにしてpublicメソッド経由でテストする
それがやりにくいーっていうなら、そのprivateなメソッドの
仕様を明確に決めればpublicにすることができる
ようするに今やるか後回しにするかの問題でしか無い
仕様が明確に固まってないからテストしてもメンテナンスのコストが増えるだけ
そういうのはprivateにしてpublicメソッド経由でテストする
それがやりにくいーっていうなら、そのprivateなメソッドの
仕様を明確に決めればpublicにすることができる
ようするに今やるか後回しにするかの問題でしか無い
432デフォルトの名無しさん
2020/06/27(土) 22:44:43.36ID:kHv6hhb8433デフォルトの名無しさん
2020/06/27(土) 22:45:21.19ID:qZEydISP >>431
いやいやテストプロジェクトではprivateにアクセスできるってだけでいいでしょ
いやいやテストプロジェクトではprivateにアクセスできるってだけでいいでしょ
434デフォルトの名無しさん
2020/06/27(土) 22:45:36.87ID:kHv6hhb8 >>430
じゃあprivateでもテストすればいんじゃないでしょうか
じゃあprivateでもテストすればいんじゃないでしょうか
435デフォルトの名無しさん
2020/06/27(土) 22:52:10.82ID:kHv6hhb8 テストオブジェクトから呼び出すためだけに
オブジェクト内部の処理をpublicにするのはありえない
publicメソッド経由で呼び出すのは粒度が大きすぎて話にならない
リフレクション使えばテストできるんだからそういう機能を持ったテストライブラリを使うべき
オブジェクト内部の処理をpublicにするのはありえない
publicメソッド経由で呼び出すのは粒度が大きすぎて話にならない
リフレクション使えばテストできるんだからそういう機能を持ったテストライブラリを使うべき
436デフォルトの名無しさん
2020/06/27(土) 22:53:18.84ID:e0+LQFD/ インターフェース仕様にまだ決まってないだとか
確定なんて明確な区切りなんてものは
現実にはない。
まだ確定してなくても仮のものを仮定して
実装はできる。
確定した後にインターフェースを変えたくなったり
ある日根底から覆ったりする。
privateで制限した内容は顧客要求より強い効力を持つの?
だったら凄く有効だよな
でもそうじゃないだろ
確定なんて明確な区切りなんてものは
現実にはない。
まだ確定してなくても仮のものを仮定して
実装はできる。
確定した後にインターフェースを変えたくなったり
ある日根底から覆ったりする。
privateで制限した内容は顧客要求より強い効力を持つの?
だったら凄く有効だよな
でもそうじゃないだろ
437デフォルトの名無しさん
2020/06/27(土) 22:55:59.77ID:kHv6hhb8 リフレクションはオブジェクト指向にとっては黒魔術でしかないので正当なやり方ではない
この問題の本質はオブジェクト指向にテストの概念がないことにある
オブジェクト指向は規模の大きなシステムの品質を担保するために作られたわけだが
現代ではそれにテストも入れるべきなんだよ
データ、メソッド、テストこの3つを内包するオブジェクトを作ることこそが真のオブジェクト指向
この問題の本質はオブジェクト指向にテストの概念がないことにある
オブジェクト指向は規模の大きなシステムの品質を担保するために作られたわけだが
現代ではそれにテストも入れるべきなんだよ
データ、メソッド、テストこの3つを内包するオブジェクトを作ることこそが真のオブジェクト指向
438デフォルトの名無しさん
2020/06/27(土) 22:56:59.64ID:gS37C1rZ439デフォルトの名無しさん
2020/06/27(土) 22:57:06.02ID:UrcM2fcl >>434
メソッドレベルのテストをリフレクション使ってまでやれって言われたことないですけどねw
inoutがテストしなければならないほど複雑になる1つのメソッドを書くことがおかしいし、
粒度が大きすぎてって、それはinoutを整理しきれてない設計がおかしいのでは?
何でも値が入ってきます、全部1つのメソッドで作ってテストしてください、なんて無茶ぶりだとおもいますねw
メソッドレベルのテストをリフレクション使ってまでやれって言われたことないですけどねw
inoutがテストしなければならないほど複雑になる1つのメソッドを書くことがおかしいし、
粒度が大きすぎてって、それはinoutを整理しきれてない設計がおかしいのでは?
何でも値が入ってきます、全部1つのメソッドで作ってテストしてください、なんて無茶ぶりだとおもいますねw
440デフォルトの名無しさん
2020/06/27(土) 22:57:18.00ID:gS37C1rZ >>436
設計したこと無いの?
設計したこと無いの?
441デフォルトの名無しさん
2020/06/27(土) 22:57:58.35ID:kHv6hhb8442デフォルトの名無しさん
2020/06/27(土) 22:58:22.25ID:e0+LQFD/443デフォルトの名無しさん
2020/06/27(土) 23:00:01.68ID:kHv6hhb8444デフォルトの名無しさん
2020/06/27(土) 23:00:03.74ID:8YCrt6Qf privateをテストするしないっていう想定自体が理解できない
privateメソッドなら当然それを呼び出しているpublicなメソッドがあるはずで
そのpublicメソッドのテストに当然privateなメソッドのテストも含まれるはず
よっぽどprivateメソッドで複雑なことしていない限りそのテストで十分だろうし
それでテストしきれないほど複雑なら別のモジュールに定義し直した方がいいだろう
privateメソッドなら当然それを呼び出しているpublicなメソッドがあるはずで
そのpublicメソッドのテストに当然privateなメソッドのテストも含まれるはず
よっぽどprivateメソッドで複雑なことしていない限りそのテストで十分だろうし
それでテストしきれないほど複雑なら別のモジュールに定義し直した方がいいだろう
445デフォルトの名無しさん
2020/06/27(土) 23:02:02.14ID:kHv6hhb8 >>444
それなりに複雑でメソッドを一つずつテストしたいけど
テストのためにオブジェクト分けるなんてイカれてると思うの
だってオブジェクトがテストのためにあるわけじゃないから
テストがオブジェクトのためにあるべきで、そこでですよ
オブジェクト内にテストを内包するのが正しいオブジェクト指向と結論するわけです
それなりに複雑でメソッドを一つずつテストしたいけど
テストのためにオブジェクト分けるなんてイカれてると思うの
だってオブジェクトがテストのためにあるわけじゃないから
テストがオブジェクトのためにあるべきで、そこでですよ
オブジェクト内にテストを内包するのが正しいオブジェクト指向と結論するわけです
446デフォルトの名無しさん
2020/06/27(土) 23:02:14.45ID:gS37C1rZ >>442
顧客によって覆ることが何の関係があるの?
顧客によって覆ることが何の関係があるの?
447デフォルトの名無しさん
2020/06/27(土) 23:02:29.65ID:kHv6hhb8 仕様が覆るのはあたりまえじゃん
それとアクセス修飾子の話は違うわ
それとアクセス修飾子の話は違うわ
448デフォルトの名無しさん
2020/06/27(土) 23:02:36.66ID:gS37C1rZ449デフォルトの名無しさん
2020/06/27(土) 23:03:54.57ID:gS37C1rZ >>445
> それなりに複雑でメソッドを一つずつテストしたいけど
> テストのためにオブジェクト分けるなんてイカれてると思うの
複雑なメソッドは小さくしてください
設計がそもそも間違っています
テストのために小さく分けるのではなく
そもそも複雑なのが問題なのです。
問題を解決すればテスト可能になります。
> それなりに複雑でメソッドを一つずつテストしたいけど
> テストのためにオブジェクト分けるなんてイカれてると思うの
複雑なメソッドは小さくしてください
設計がそもそも間違っています
テストのために小さく分けるのではなく
そもそも複雑なのが問題なのです。
問題を解決すればテスト可能になります。
450デフォルトの名無しさん
2020/06/27(土) 23:03:58.42ID:kHv6hhb8 >>448
だから、そこにジレンマがあるよねって話を最初からしてるつもりっす
だから、そこにジレンマがあるよねって話を最初からしてるつもりっす
451デフォルトの名無しさん
2020/06/27(土) 23:04:46.01ID:/AdLJL3G いや、この問題は言語と開発環境の問題だろ
概念は関係ないよ
visualstudioができちゃえば
できますよ
で終わりな話
概念は関係ないよ
visualstudioができちゃえば
できますよ
で終わりな話
452デフォルトの名無しさん
2020/06/27(土) 23:05:10.21ID:kHv6hhb8453デフォルトの名無しさん
2020/06/27(土) 23:05:23.02ID:UrcM2fcl 逆に聞きたいけどpythonとかアクセス修飾子ない言語で、大規模プロジェクトがあったら、
ルール以外でアクセスはどう統制とってるの?
そういう言語の経験はWebくらいしか知らないから、全体何百万行(ステップ数でも人月でもいい)くらいのコードでこうしてた(る)ってのあったら教えて欲しい
ルール以外でアクセスはどう統制とってるの?
そういう言語の経験はWebくらいしか知らないから、全体何百万行(ステップ数でも人月でもいい)くらいのコードでこうしてた(る)ってのあったら教えて欲しい
454デフォルトの名無しさん
2020/06/27(土) 23:06:53.54ID:gS37C1rZ >>452
なぜできないんですか?
なぜできないんですか?
455デフォルトの名無しさん
2020/06/27(土) 23:07:46.64ID:XQLOkAsO >>454
あいつらサボってるからだろ
あいつらサボってるからだろ
456デフォルトの名無しさん
2020/06/27(土) 23:07:46.82ID:gS37C1rZ 誰でもできることができないなんて、能力がないなぁ
457デフォルトの名無しさん
2020/06/27(土) 23:10:28.90ID:npRplKHX お前らほんとプログラムのことしか知らないのな
品質を改善するときには品質を測るな これがテストの鉄則
タグチメソッドの入門でもよめ
品質を改善するときには品質を測るな これがテストの鉄則
タグチメソッドの入門でもよめ
458デフォルトの名無しさん
2020/06/27(土) 23:12:05.09ID:gS37C1rZ 1.モノを作る前に品質を創れ
2.品質工学は統計ではない
3.科学的思考ではモノは出来ない
4.市場品質はすべて設計できまる
5.完全な設計は試験や検査は不要
6.品質評価はn=1でよい
7.品質を改善するときには品質を測るな
8.評価はあるべき姿を定義して、安定性はSN比で行う
9.直交表で設計の再現性をチェックする(パラメータ設計)
10. システムは複雑でなければ、改善はできない
2.品質工学は統計ではない
3.科学的思考ではモノは出来ない
4.市場品質はすべて設計できまる
5.完全な設計は試験や検査は不要
6.品質評価はn=1でよい
7.品質を改善するときには品質を測るな
8.評価はあるべき姿を定義して、安定性はSN比で行う
9.直交表で設計の再現性をチェックする(パラメータ設計)
10. システムは複雑でなければ、改善はできない
459デフォルトの名無しさん
2020/06/27(土) 23:12:06.00ID:kHv6hhb8 >>457
ありがとー!タグっちゃん!
ありがとー!タグっちゃん!
460デフォルトの名無しさん
2020/06/27(土) 23:13:46.29ID:gS37C1rZ どこから品質の話が出てきたのか知らんが、
品質とテストの話は
> 5.完全な設計は試験や検査は不要
これですかね?
品質とテストの話は
> 5.完全な設計は試験や検査は不要
これですかね?
461デフォルトの名無しさん
2020/06/27(土) 23:19:08.91ID:gS37C1rZ >>458はいくつか日本語の文章に問題があるな
1.モノを作る前に品質を創れ
2.品質工学は統計ではない ×「品質工学は○○である」と言おう
3.科学的思考ではモノは出来ない ×「○○的思考でモノは出来る」と言おう
4.市場品質はすべて設計できまる
5.完全な設計は試験や検査は不要 ×「不完全な設計は試験や検査が必要」と言おう
6.品質評価はn=1でよい
7.品質を改善するときには品質を測るな ×「品質を改善するときには○○をしろ」と言おう
8.評価はあるべき姿を定義して、安定性はSN比で行う
9.直交表で設計の再現性をチェックする(パラメータ設計)
10. システムは複雑でなければ、改善はできない ×「システムは複雑なら、改善ができる」と言おう
こう偉そうなことを言ってるのに、じゃあどうすればいいかを
相手に考えさせるのって、どうなんでしょうかね(苦笑)
1.モノを作る前に品質を創れ
2.品質工学は統計ではない ×「品質工学は○○である」と言おう
3.科学的思考ではモノは出来ない ×「○○的思考でモノは出来る」と言おう
4.市場品質はすべて設計できまる
5.完全な設計は試験や検査は不要 ×「不完全な設計は試験や検査が必要」と言おう
6.品質評価はn=1でよい
7.品質を改善するときには品質を測るな ×「品質を改善するときには○○をしろ」と言おう
8.評価はあるべき姿を定義して、安定性はSN比で行う
9.直交表で設計の再現性をチェックする(パラメータ設計)
10. システムは複雑でなければ、改善はできない ×「システムは複雑なら、改善ができる」と言おう
こう偉そうなことを言ってるのに、じゃあどうすればいいかを
相手に考えさせるのって、どうなんでしょうかね(苦笑)
462デフォルトの名無しさん
2020/06/27(土) 23:24:56.40ID:gS37C1rZ 「品質が欲しければ、品質を測るな!」は
「品質が欲しければ、機能を測って改善しろ!」という意味みたいですな
つまりオブジェクトの品質を上げたければ
テストできるように機能を改善しろということですな
privateメソッドであれば、インターフェースを明確にして
機能に昇格させればpublicになるわけです。
「品質が欲しければ、機能を測って改善しろ!」という意味みたいですな
つまりオブジェクトの品質を上げたければ
テストできるように機能を改善しろということですな
privateメソッドであれば、インターフェースを明確にして
機能に昇格させればpublicになるわけです。
463デフォルトの名無しさん
2020/06/27(土) 23:31:52.99ID:npRplKHX >>462
ホントにタグチメソッド知らなかったのか?
その割には理解が早いな
ようするにバクをなくしたいのだろ?
それならバクがでるかどうかのテストをすることが自体がずれてるんだ
そんなことは最終段階でやることじゃないんだ どうせモグラたたきになる
最初の設計段階で徹底的にいじめ抜け
どれだけ変更に強いかをテストするんだ
品質が欲しければ,機能を測れ これにつきる
ホントにタグチメソッド知らなかったのか?
その割には理解が早いな
ようするにバクをなくしたいのだろ?
それならバクがでるかどうかのテストをすることが自体がずれてるんだ
そんなことは最終段階でやることじゃないんだ どうせモグラたたきになる
最初の設計段階で徹底的にいじめ抜け
どれだけ変更に強いかをテストするんだ
品質が欲しければ,機能を測れ これにつきる
464デフォルトの名無しさん
2020/06/27(土) 23:40:30.32ID:gS37C1rZ465デフォルトの名無しさん
2020/06/27(土) 23:41:10.95ID:ZFnYFbMi 単体テストとどう違うの?
466デフォルトの名無しさん
2020/06/27(土) 23:41:18.54ID:gS37C1rZ467デフォルトの名無しさん
2020/06/27(土) 23:42:26.37ID:gS37C1rZ468デフォルトの名無しさん
2020/06/27(土) 23:43:10.60ID:ZFnYFbMi 単体テストって結合してからテストするの?
469デフォルトの名無しさん
2020/06/27(土) 23:46:52.77ID:ZFnYFbMi 王家秘伝のレシピ教えてやるよ。
#define private public
皆には内緒だぞ。
#define private public
皆には内緒だぞ。
470デフォルトの名無しさん
2020/06/28(日) 01:34:12.55ID:wUTwjqhp >>469
#define ディレクティブを使用して、通常 C および C++ で行うように定数値を宣言することはできません。
C# の定数は、クラスまたは構造体の静的メンバーとして定義することができます。
そのような定数がいくつかある場合は、それを保持するための "Constants" クラスを個別に作成することを検討してください。
#define ディレクティブを使用して、通常 C および C++ で行うように定数値を宣言することはできません。
C# の定数は、クラスまたは構造体の静的メンバーとして定義することができます。
そのような定数がいくつかある場合は、それを保持するための "Constants" クラスを個別に作成することを検討してください。
471デフォルトの名無しさん
2020/06/28(日) 02:01:57.56ID:pODeKu4C privateメソッドの直接テストしたいけど可視性を変えたくない場合は
リフレクションを簡単に使えるようにしてるテストフレームワークだったりライブラリ使えばいい
ちなみにGoやRustはprivateもテストできる仕組み持ってる
リフレクションを簡単に使えるようにしてるテストフレームワークだったりライブラリ使えばいい
ちなみにGoやRustはprivateもテストできる仕組み持ってる
472デフォルトの名無しさん
2020/06/28(日) 05:51:03.49ID:qNzQpEfW >>469
あざーす!国王あざーす!
あざーす!国王あざーす!
473デフォルトの名無しさん
2020/06/28(日) 05:51:56.56ID:qNzQpEfW >>471
ええなー
ええなー
474デフォルトの名無しさん
2020/06/28(日) 09:51:30.71ID:lfkBrldT >>463
ソフトウェアの作り方も知らずにタグチメソッド真に受けたら、
糞みたいな品質のものしかできんぞw
単体テストってのは設計の一部なんだよ。品質テストとは全く異なる。
抽象論でタグチメソッドを適用しようとしてる輩が一番ヤバい。
ソフトウェアの作り方も知らずにタグチメソッド真に受けたら、
糞みたいな品質のものしかできんぞw
単体テストってのは設計の一部なんだよ。品質テストとは全く異なる。
抽象論でタグチメソッドを適用しようとしてる輩が一番ヤバい。
475デフォルトの名無しさん
2020/06/28(日) 10:22:04.23ID:4vfVPlvE なんだミニ四駆のモータに学ぶことでもあんのか?って思ったら
品質100%の更に上の話じゃねーか
現場の単体テストもロクにやらないクソが問題になってるITでそんなもんいらん
品質100%の更に上の話じゃねーか
現場の単体テストもロクにやらないクソが問題になってるITでそんなもんいらん
476デフォルトの名無しさん
2020/06/28(日) 12:40:59.37ID:L5Cpw8A4 中の磁石が強いほどトルクが上がって回転数が下がる
磁力が弱いほどトルクが下がって回転数が上がる
磁力が弱いほどトルクが下がって回転数が上がる
477デフォルトの名無しさん
2020/06/28(日) 13:22:34.10ID:S7usk0qp >>326
わかりやすい
わかりやすい
478デフォルトの名無しさん
2020/06/28(日) 18:21:30.86ID:3Si3AZJb privateのテストってリファクタリングの妨げじゃないのか
479デフォルトの名無しさん
2020/06/28(日) 18:55:54.96ID:nHckGJvd 開発体制が複数の会社でピラミッド状の階層化されてたら指揮系統的に相当厳しいだろうね。
480デフォルトの名無しさん
2020/06/28(日) 19:33:26.78ID:JoVMtTbA Javaの修飾子宣言鬱陶しくてほんと嫌い
481デフォルトの名無しさん
2020/06/29(月) 14:12:08.40ID:EmVrB3rr 明示的な状態管理は、(不可能ではないにせよ)管理すべき状態の量が増えてくると非常に困難になってくるところ、関数型言語の考え方を取り込むことによってその負担を軽減できるのではないかーーという意見もあるようだけど、
このスレの人(カプセル化肯定派・否定派いずれも)としてはどう?
このスレの人(カプセル化肯定派・否定派いずれも)としてはどう?
482デフォルトの名無しさん
2020/06/29(月) 19:41:29.30ID:bVpw4tuk カプセル化の可否はともかく
階層化の有害性についてはこう思います。
例えばディレクトリを階層化のすると
親ディレクトリと子ディレクトリに同じデータを重複格納
する人が出たりしてデータの二重管理が発生
しやすくなると思います。
そのうちどれが正なのか分からなくなります。
あと単純に子供に格納するほどデータのアクセスパスが
長くなってどこにあるのか探し出すのが大変になると
思います。
これはオブジェクトの階層構造でも
JSONなどの構造についても言えることだと思います。
階層化の有害性についてはこう思います。
例えばディレクトリを階層化のすると
親ディレクトリと子ディレクトリに同じデータを重複格納
する人が出たりしてデータの二重管理が発生
しやすくなると思います。
そのうちどれが正なのか分からなくなります。
あと単純に子供に格納するほどデータのアクセスパスが
長くなってどこにあるのか探し出すのが大変になると
思います。
これはオブジェクトの階層構造でも
JSONなどの構造についても言えることだと思います。
483デフォルトの名無しさん
2020/06/29(月) 20:06:40.16ID:cYsf6eW3 プログラムで階層化なんて意識したことないけど問題起こったことない
分野が違うのかな
分野が違うのかな
484デフォルトの名無しさん
2020/06/29(月) 20:18:08.97ID:6d9dL1u1 そう、問題が起こるのはいつも人間関係です
485デフォルトの名無しさん
2020/06/29(月) 20:19:42.34ID:tYVp58Ca つまり、人間関係の問題を持ってきても、技術を否定したことにはならないのです。
486デフォルトの名無しさん
2020/06/29(月) 21:42:10.57ID:P3P3vIj6487デフォルトの名無しさん
2020/06/29(月) 23:35:22.76ID:L39gVdue >>482
そこで挙げている階層化の問題だが、階層化せずフラットに格納すれば解決するのか?
階層化しないということは同じレベルに大量の物が同格に並ぶわけだが、そうなると目的の物を探すのが困難になりすでにあるデータと同じものを重複して格納する危険性があるだろう。
またアクセスパスが長くなるというが、フラットな構造で多数の物を適切に命名しようとすれば階層的な名前付けが役立つはずだが、それすら長くなると忌避するなら場当たり的に短い名前を着けていっていずれ収集が着かなくなるだけでないの?
お前さんが挙げた階層化の問題は階層化の仕方が悪い(下手な)だけで、階層化をしなければ解決するというものではなかろう。
そこで挙げている階層化の問題だが、階層化せずフラットに格納すれば解決するのか?
階層化しないということは同じレベルに大量の物が同格に並ぶわけだが、そうなると目的の物を探すのが困難になりすでにあるデータと同じものを重複して格納する危険性があるだろう。
またアクセスパスが長くなるというが、フラットな構造で多数の物を適切に命名しようとすれば階層的な名前付けが役立つはずだが、それすら長くなると忌避するなら場当たり的に短い名前を着けていっていずれ収集が着かなくなるだけでないの?
お前さんが挙げた階層化の問題は階層化の仕方が悪い(下手な)だけで、階層化をしなければ解決するというものではなかろう。
488デフォルトの名無しさん
2020/06/30(火) 05:33:42.93ID:v2qXZCJh 結局、分類だったり抽象化のやり方がクソってだけの話だろ。
フラットにしようが階層にしようが、クソな分け方したらどうにもならんてだけの話だ。
フラットにしようが階層にしようが、クソな分け方したらどうにもならんてだけの話だ。
489デフォルトの名無しさん
2020/06/30(火) 08:05:51.26ID:GiU27GCt490デフォルトの名無しさん
2020/06/30(火) 08:11:00.58ID:PIU/381m >>486
ぴえ?
ぴえ?
491デフォルトの名無しさん
2020/06/30(火) 10:40:18.75ID:J3IrN4Ey492途中から見た。
2020/06/30(火) 19:35:05.23ID:g7PLkMcM なんか、privateメソッドのテストでもめているけど、なんで。
そもそも、privateメソッドを外部から呼び出してテストしないといけない場面が想像できないのだが。
クラスライブラリのコードを紛失したとか笑えないケースを想定しているの?
そもそも、privateメソッドを外部から呼び出してテストしないといけない場面が想像できないのだが。
クラスライブラリのコードを紛失したとか笑えないケースを想定しているの?
493デフォルトの名無しさん
2020/06/30(火) 19:48:43.49ID:MKfuvp+I gitや自動ビルドツールの存在がなかった時代の
オブジェクト指向技術は淘汰されてもいいんじゃない?
昔はこれらがなかったからカプセル化で神経質に
防御してたけど
今は無理にパッケージを固めてやり取りすることが
なくなって
gitでソースを差分転送して再ビルドする方式に
切り替わった
旧仕様はブランチを切り分けといて復旧が簡単に
なって、仕様変更に対してそこまでビビらなくて良くなった。
それと自作のアプリのオブジェクトで
webからインストールしたライブラリや
フレームワークが自動生成して提供するもの以外で
それほど長時間状態を保持するような巨大なオブジェクト
構造を自作設計して作成することがあるか?
あるとすれば
webのセッションや
オープンワールドやFPSみたいなゲームくらいか
オブジェクト指向技術は淘汰されてもいいんじゃない?
昔はこれらがなかったからカプセル化で神経質に
防御してたけど
今は無理にパッケージを固めてやり取りすることが
なくなって
gitでソースを差分転送して再ビルドする方式に
切り替わった
旧仕様はブランチを切り分けといて復旧が簡単に
なって、仕様変更に対してそこまでビビらなくて良くなった。
それと自作のアプリのオブジェクトで
webからインストールしたライブラリや
フレームワークが自動生成して提供するもの以外で
それほど長時間状態を保持するような巨大なオブジェクト
構造を自作設計して作成することがあるか?
あるとすれば
webのセッションや
オープンワールドやFPSみたいなゲームくらいか
494デフォルトの名無しさん
2020/06/30(火) 20:19:26.97ID:v2qXZCJh 今でもSIerなんかはコード書き換えないことに固執してるから可視範囲に対して神経質なんだよ。
495デフォルトの名無しさん
2020/06/30(火) 20:27:32.13ID:+5DxT57L >>492
それは「テストの時にだけpublicに変えればいいじゃん」か「privateはpublicに内在してるから直接テストする必要ないじゃん」のどっちの意味ですか?
それは「テストの時にだけpublicに変えればいいじゃん」か「privateはpublicに内在してるから直接テストする必要ないじゃん」のどっちの意味ですか?
496デフォルトの名無しさん
2020/06/30(火) 20:58:39.82ID:Ya6sc1A9 >>492
コード紛失してなくても他社開発のをガッチャンコだと手が出せないでしょ。
コード紛失してなくても他社開発のをガッチャンコだと手が出せないでしょ。
497デフォルトの名無しさん
2020/06/30(火) 20:58:42.09ID:ww2Xd+MO × テストの時にだけpublicに変えればいいじゃん
○ テストがやりにくいというのは設計がまずいということ
自然な形でpublicになるような設計を改善すべきだ
○ テストがやりにくいというのは設計がまずいということ
自然な形でpublicになるような設計を改善すべきだ
498デフォルトの名無しさん
2020/06/30(火) 20:59:02.71ID:Ya6sc1A9 小規模なら問題ない
499デフォルトの名無しさん
2020/06/30(火) 21:38:14.42ID:BIUXizBX 他社のコードをテストすんの?
500デフォルトの名無しさん
2020/06/30(火) 22:07:21.34ID:GiU27GCt >>497
はぁ?バカはレスすんなよ
はぁ?バカはレスすんなよ
501デフォルトの名無しさん
2020/06/30(火) 22:42:13.84ID:zKRJDZmr >>499
そりゃ結合試験はするだろ
そりゃ結合試験はするだろ
502デフォルトの名無しさん
2020/06/30(火) 23:23:26.17ID:BIUXizBX >>501
結合試験時に他社コードのprivateメソッドを態々呼出してテストすんの?
結合試験時に他社コードのprivateメソッドを態々呼出してテストすんの?
503途中から見た。
2020/07/01(水) 00:09:32.11ID:vgPSMoJs >>495
よくわからないが...強いて言うなら後者?
第一、クラスって実装者が責任を持ってテストするものだろう。
なんで、privateで定義されたものをpublicにして呼び出そうとするのかも、正直、わからない。
ブラックボックステストでもしたいの?
まぁ、ブラックボックステストってprivateメソッドを呼び出せば成立するかというと、違うと思うけど。
正直、何がしたいのかわからなさすぎて困惑している。
よくわからないが...強いて言うなら後者?
第一、クラスって実装者が責任を持ってテストするものだろう。
なんで、privateで定義されたものをpublicにして呼び出そうとするのかも、正直、わからない。
ブラックボックステストでもしたいの?
まぁ、ブラックボックステストってprivateメソッドを呼び出せば成立するかというと、違うと思うけど。
正直、何がしたいのかわからなさすぎて困惑している。
504デフォルトの名無しさん
2020/07/01(水) 00:11:23.37ID:Dh09feZF >第一、クラスって実装者が責任を持ってテストするものだろう。
これが守られてりゃこのスレみたいな議論は起こらんわ。
これが守られてりゃこのスレみたいな議論は起こらんわ。
505デフォルトの名無しさん
2020/07/01(水) 00:22:36.05ID:dTufBNXb 守るも何もクラスに不具合があれば実装者の責任だろ
って言うのが通用しないのか?
って言うのが通用しないのか?
506デフォルトの名無しさん
2020/07/01(水) 00:26:31.70ID:Dh09feZF 責任といってももういない奴に責任は取れんわな。
507デフォルトの名無しさん
2020/07/01(水) 00:33:27.93ID:XAYXSYxH 客先に納めたプログラムを客先が勝手に変更したら責任は外れる契約になってると思う
これは弊社の納めたプログラムではありませんってなるから
社内で引き継いだなら文句を言うのは自由だが任された者がなんとかしろの精神だろ
これは弊社の納めたプログラムではありませんってなるから
社内で引き継いだなら文句を言うのは自由だが任された者がなんとかしろの精神だろ
508デフォルトの名無しさん
2020/07/01(水) 00:43:31.96ID:Dh09feZF クラスごとにしっかりテストがあって
引き継ぎがしっかりされる職場ばかりなら何の問題もないだろうね。
とても幸せな世界でいいですね。
引き継ぎがしっかりされる職場ばかりなら何の問題もないだろうね。
とても幸せな世界でいいですね。
509デフォルトの名無しさん
2020/07/01(水) 01:04:03.02ID:Ke5amsYp まだ続いてたか
結局問題は出来の悪いモジュールをどうするかって話だろ
結局問題は出来の悪いモジュールをどうするかって話だろ
510デフォルトの名無しさん
2020/07/01(水) 01:36:00.07ID:bx11ZQ99 違うよ
visualstudioがテストプロジェクトでprivateをpublicみたいに呼べるようにするだけ
visualstudioがテストプロジェクトでprivateをpublicみたいに呼べるようにするだけ
511デフォルトの名無しさん
2020/07/01(水) 06:19:16.09ID:y/Wgtnem >>503
privateを呼び出す必要があるってのはUnit Testの時で、実装者とテスターが同一人物かどうかは関係ないよ。
オブジェクト指向に限らずテスト理論の話になっちゃうんだけど、プロジェクトや規格で指定されるUnit Testの種類によってはpublic経由でprivate呼び出してたら組合せ爆発してテストドライバやスタブの開発やレビューだけで多大な工数が必要になってやってられなくなる。
なので十分に単純化されたprivateを含めて関数毎にテストする必要が出てくるのよ。
privateを呼び出す必要があるってのはUnit Testの時で、実装者とテスターが同一人物かどうかは関係ないよ。
オブジェクト指向に限らずテスト理論の話になっちゃうんだけど、プロジェクトや規格で指定されるUnit Testの種類によってはpublic経由でprivate呼び出してたら組合せ爆発してテストドライバやスタブの開発やレビューだけで多大な工数が必要になってやってられなくなる。
なので十分に単純化されたprivateを含めて関数毎にテストする必要が出てくるのよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 5:55:55.555
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 戦争は無くならないし殺人は起きるし女はレイプされるし子供は餓死するし
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 高市さんに土下座してもらったら一発解決なのに何でやらないんだろ??
- 【悲報】男性人気アイドルグループJO1、中国公演中止wwwwwwwwwwwwwwwwwwwwwwwwwww
