[過去ログ] カプセル化の有害性、オブジェクト指向は愚かな考え (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
376(1): 2020/06/27(土)20:34 ID:gS37C1rZ(1/30) AAS
>>373
テストでアクセスするならそれはpublicにすべきもの
言い換えると、テストですらアクセスしないものをprivateにする
377(1): 2020/06/27(土)20:35 ID:gS37C1rZ(2/30) AAS
>>372
テストするならpublicにすればいいだけ
383: 2020/06/27(土)21:13 ID:gS37C1rZ(3/30) AAS
>>380
> テストは全メソッドやるでしょ
全メソッドやるかどうかはその人次第
テストするならpublicにする
それだけの話
テストするということは、そのインターフェースは
外部から使用しても良いということを意味する
テストされてるんだから仕様が変わったりしない
384(1): 2020/06/27(土)21:14 ID:gS37C1rZ(4/30) AAS
>>381
> publicにしたら別のオブジェクトからアクセスされちゃうじゃん
アクセスしても問題ないだろ?
アクセスしても問題ないようにテストしてるんだから
391(1): 2020/06/27(土)22:12 ID:gS37C1rZ(5/30) AAS
>>385
> いやいや、公開する必要のないメソッドを公開する意味がない
テストするのだから公開する必要があるだろ
なにいってんだおめぇ
397(1): 2020/06/27(土)22:20 ID:gS37C1rZ(6/30) AAS
>>388
テストをするということは、それはインターフェースとして仕様がきっちりしていて
長い期間にわたって変更しない(されにくい)ということなんだよ
インターフェースが適当だったり変わりやすいものは
変わるたびにテストも変えなくてはいけなくなる
つまりテストのメンテナンスのコストが増えてしまう
インターフェースが適当だったり変わりやすいものを作るなという話じゃない
そういうのは作ってもいいがprivateにして、他のpublicメソッドを通して間接的にテストする
privateはテストしなくていいとかテストできないとかじゃなくて
インターフェースが(まだ)明確に決きめずに後回しにできるというメリットが有る
省3
400(2): 2020/06/27(土)22:22 ID:gS37C1rZ(7/30) AAS
>>393
テストというのはオブジェクトを使用するときの例でもあるんだから
テストがやってることは、テスト以外でもやって良いんだよ
テストでしか呼び出してないからって、privateにする必要はない
402(1): 2020/06/27(土)22:23 ID:gS37C1rZ(8/30) AAS
>>401
だからprivateをテストするということは、
そのメソッドは仕様が明確に決まったということなので
publicにしていいんだよ
406: 2020/06/27(土)22:25 ID:gS37C1rZ(9/30) AAS
>>403
仕様が明確に決まってないようなものは
privateにしてテストをサボることができる
サボると言ってもpublicメソッド経由でテストするわけだが
あくまでメソッド単体でのテストをサボるだけ
408(1): 2020/06/27(土)22:26 ID:gS37C1rZ(10/30) AAS
>>405
> privateにするのはよそからアクセスさせないため
テスト(よそ)からアクセスするのでpublicです
411(1): 2020/06/27(土)22:28 ID:gS37C1rZ(11/30) AAS
>>410
> テストのためにpublicにしたらオブジェクトが壊れるため
壊れないよ。
415(1): 2020/06/27(土)22:30 ID:gS37C1rZ(12/30) AAS
>>413
なんだよw根拠言えないのかよw
418: 2020/06/27(土)22:32 ID:gS37C1rZ(13/30) AAS
壊れる要因がないので壊れない
422(1): 2020/06/27(土)22:38 ID:gS37C1rZ(14/30) AAS
> アクセス修飾子はテストのために変えるものじゃない
当たり前だろうw
テストというのは外部からインターフェースの仕様が明確に決まってるからこそできること
外部からのインターフェースの仕様が明確に決まったなら
それはpublicにしてよい
424(1): 2020/06/27(土)22:39 ID:gS37C1rZ(15/30) AAS
だから当たり前の話をしてる
431(2): 2020/06/27(土)22:43 ID:gS37C1rZ(16/30) AAS
privateなメソッドをテストしないんじゃなくて
仕様が明確に固まってないからテストしてもメンテナンスのコストが増えるだけ
そういうのはprivateにしてpublicメソッド経由でテストする
それがやりにくいーっていうなら、そのprivateなメソッドの
仕様を明確に決めればpublicにすることができる
ようするに今やるか後回しにするかの問題でしか無い
438(1): 2020/06/27(土)22:56 ID:gS37C1rZ(17/30) AAS
>>432
じゃあ何のためにprivateにするんだよ?
テスト(外部)からアクセスするんだろ
440(1): 2020/06/27(土)22:57 ID:gS37C1rZ(18/30) AAS
>>436
設計したこと無いの?
446: 2020/06/27(土)23:02 ID:gS37C1rZ(19/30) AAS
>>442
顧客によって覆ることが何の関係があるの?
448(1): 2020/06/27(土)23:02 ID:gS37C1rZ(20/30) AAS
>>443
> 内部からのみ処理したいものだからprivateにするんだよ
テスト(外部)から処理したいんだろ
何矛盾したこと言ってるんだよw
449(1): 2020/06/27(土)23:03 ID:gS37C1rZ(21/30) AAS
>>445
> それなりに複雑でメソッドを一つずつテストしたいけど
> テストのためにオブジェクト分けるなんてイカれてると思うの
複雑なメソッドは小さくしてください
設計がそもそも間違っています
テストのために小さく分けるのではなく
そもそも複雑なのが問題なのです。
問題を解決すればテスト可能になります。
454(1): 2020/06/27(土)23:06 ID:gS37C1rZ(22/30) AAS
>>452
なぜできないんですか?
456: 2020/06/27(土)23:07 ID:gS37C1rZ(23/30) AAS
誰でもできることができないなんて、能力がないなぁ
458(1): 2020/06/27(土)23:12 ID:gS37C1rZ(24/30) AAS
1.モノを作る前に品質を創れ
2.品質工学は統計ではない
3.科学的思考ではモノは出来ない
4.市場品質はすべて設計できまる
5.完全な設計は試験や検査は不要
6.品質評価はn=1でよい
7.品質を改善するときには品質を測るな
8.評価はあるべき姿を定義して、安定性はSN比で行う
9.直交表で設計の再現性をチェックする(パラメータ設計)
10. システムは複雑でなければ、改善はできない
460: 2020/06/27(土)23:13 ID:gS37C1rZ(25/30) AAS
どこから品質の話が出てきたのか知らんが、
品質とテストの話は
> 5.完全な設計は試験や検査は不要
これですかね?
461: 2020/06/27(土)23:19 ID:gS37C1rZ(26/30) AAS
AA省
462(1): 2020/06/27(土)23:24 ID:gS37C1rZ(27/30) AAS
「品質が欲しければ、品質を測るな!」は
「品質が欲しければ、機能を測って改善しろ!」という意味みたいですな
つまりオブジェクトの品質を上げたければ
テストできるように機能を改善しろということですな
privateメソッドであれば、インターフェースを明確にして
機能に昇格させればpublicになるわけです。
464: 2020/06/27(土)23:40 ID:gS37C1rZ(28/30) AAS
>>463
では「機能を測る」とは?
どうやって測るのかを言ってみましょう
できるかな?w
466: 2020/06/27(土)23:41 ID:gS37C1rZ(29/30) AAS
>>463
> その割には理解が早いな
あんなもん当たり前のことを誰かがまとめただけだからね
デザインパターンと一緒。
よく知られたものに、名前をつけてるだけ
467: 2020/06/27(土)23:42 ID:gS37C1rZ(30/30) AAS
>>465
複雑なものを複雑のままテストをしても意味がない
シンプルにテスト可能な形に設計を変えることがテストの目的の一つ
ようはprivateはpublicになるように設計を変えろということ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s