カプセル化の有害性、オブジェクト指向は愚かな考え

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/06/18(木) 23:47:36.69ID:l/2SQUll
カプセル化(英語: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)
2020/07/01(水) 00:11:23.37ID:Dh09feZF
>第一、クラスって実装者が責任を持ってテストするものだろう。
これが守られてりゃこのスレみたいな議論は起こらんわ。
2020/07/01(水) 00:22:36.05ID:dTufBNXb
守るも何もクラスに不具合があれば実装者の責任だろ
って言うのが通用しないのか?
2020/07/01(水) 00:26:31.70ID:Dh09feZF
責任といってももういない奴に責任は取れんわな。
2020/07/01(水) 00:33:27.93ID:XAYXSYxH
客先に納めたプログラムを客先が勝手に変更したら責任は外れる契約になってると思う
これは弊社の納めたプログラムではありませんってなるから
社内で引き継いだなら文句を言うのは自由だが任された者がなんとかしろの精神だろ
2020/07/01(水) 00:43:31.96ID:Dh09feZF
クラスごとにしっかりテストがあって
引き継ぎがしっかりされる職場ばかりなら何の問題もないだろうね。
とても幸せな世界でいいですね。
509デフォルトの名無しさん
垢版 |
2020/07/01(水) 01:04:03.02ID:Ke5amsYp
まだ続いてたか
結局問題は出来の悪いモジュールをどうするかって話だろ
2020/07/01(水) 01:36:00.07ID:bx11ZQ99
違うよ
visualstudioがテストプロジェクトでprivateをpublicみたいに呼べるようにするだけ
2020/07/01(水) 06:19:16.09ID:y/Wgtnem
>>503
privateを呼び出す必要があるってのはUnit Testの時で、実装者とテスターが同一人物かどうかは関係ないよ。
オブジェクト指向に限らずテスト理論の話になっちゃうんだけど、プロジェクトや規格で指定されるUnit Testの種類によってはpublic経由でprivate呼び出してたら組合せ爆発してテストドライバやスタブの開発やレビューだけで多大な工数が必要になってやってられなくなる。
なので十分に単純化されたprivateを含めて関数毎にテストする必要が出てくるのよ。
2020/07/01(水) 06:46:59.11ID:5jdJ/dE3
>>501
> そりゃ結合試験はするだろ

統合試験って言うことは、当然標準ライブラリの
テストも行うんだよな?例えばprintf関数のテストとか
2020/07/01(水) 06:53:14.54ID:lozEWamw
>>511
> public経由でprivate呼び出してたら組合せ爆発してテストドライバやスタブの開発やレビューだけで多大な工数が必要になってやってられなくなる。

そういうことだよね。だからそれはpublicメソッドが行ってる機能が多すぎるわけで
複数のpublicメソッドに分解するわけ。これが設計。

適切な関数の行数って思ったより短いものだから。
俺の場合、一部のcaseテーブルのようなものを除いてロジックと呼べるようなものがあるコードは
長いもので1関数30行〜40行程度半分以上は10行程度だよ
2020/07/01(水) 08:23:11.98ID:y4QPMVjI
>>512
何時何分何秒地球が何周回ったときに言いましたかーみたいな煽りだな
2020/07/01(水) 08:27:13.77ID:3Re1TFuk
>>512
そりゃprintf使うシステムの結合テストならもちろん結合テストのセンスでprintfもテストするよ。
ユニットテストの粒度とは違って「〜が標準出力されること」ってテスト項目になるけど。
2020/07/01(水) 11:10:06.09ID:LiVkSFt2
結合テストと総合テストって同じ意味なのか?
2020/07/01(水) 12:14:34.41ID:hgyYQ8XK
総合テストって検収テストと同じじゃね?
2020/07/01(水) 12:24:10.62ID:wljUBRxY
テストの呼び方はプロジェクトによって違うからなんとも言えんなぁ
2020/07/01(水) 12:36:28.97ID:LiVkSFt2
なんというか...コミュニケーションがまともにとれていないのでは?

恐らく、他人の作ったライブラリに対して単体テストをお前はやるのか?という意図で聞いた質問に、結合試験はするだろと回答したり、
結合試験と総合試験という字面で見ると似ているけど全然違う話を混在させたり、
似ているようで関係のない話を持ち出して混沌としているな。

語りたい事の本質が行方不明になっているように見える。
2020/07/01(水) 14:20:36.35ID:JqIYLyXt
>>512は総合じゃなく統合って書いてるぞ

結合テストのことを統合テストと呼ぶところもある
結合の度合いによって結合、統合、総合とそれぞれ分けてるところもある

単なる読み間違いなのか結合 = 統合の意味で使ってるのかは知らんけど
2020/07/01(水) 14:54:20.92ID:LiVkSFt2
うわっ!恥ずかしいミスをしてたのは自分だったか。あとで、読み直す...。
2020/07/01(水) 17:50:33.35ID:1PwA88RR
visualstudioのテストプロジェクトが不甲斐ないってだけやし
523デフォルトの名無しさん
垢版 |
2020/07/02(木) 19:42:17.69ID:84e/i8uV
privateメソッドテストするとか正気?
テストしなくてよくするためのprivateだろ
2020/07/02(木) 19:49:51.80ID:iX514c6x
テストする必要があるというのは
全部書き直した方がましということだが
2020/07/02(木) 20:08:44.37ID:/yt09sjO
>>523
特大クラス一つの中に全部privateでメソッド作成したら
どういう理由で全メソッドテスト免除になるの?
2020/07/02(木) 20:10:40.42ID:/yt09sjO
マイクロソフトに頼らんで独自にテストプロジェクト作ってるような会社はできてんで
visualstudioの都合でテストやりたくないって言ってるだけだろクズども
527デフォルトの名無しさん
垢版 |
2020/07/02(木) 20:46:21.86ID:Vurtjy2V
関数どころか変数に至るまで一つ一つ丁寧に検査してましたわ。
2020/07/02(木) 21:29:57.44ID:lIo9GiA1
>>525
どんだけ巨大なクラスでも全部privateだと外から一切呼び出せないデッドコードになるのでテストする意味さえないだろ。
529デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:35:43.34ID:UKbwg08G
>>528
せやかてpublic通してたら結合テストじゃんw
530デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:36:02.64ID:UKbwg08G
unit testの意味わかっとんのけ?
2020/07/02(木) 21:37:29.20ID:7zBU/W9S
プロジェクトによって違ってたなあ
532デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:40:09.15ID:UKbwg08G
>>531
せやろ、ワイの会社も結合テストのことをunit testと呼んでるわ
本当のunit testはやってない
2020/07/02(木) 22:14:17.02ID:/yt09sjO
>>528
Form1とかそんな感じじゃん
2020/07/03(金) 07:01:01.95ID:Ul5hp/bW
>>525
誰も使わんからテスト不要だね
2020/07/03(金) 08:34:55.79ID:zR3byV+3
>>532
それは珍しいな
2020/07/03(金) 08:56:10.03ID:N+TCe3uh
これは酷い。RFC 3439はネットワークの仕様の話であってオブジェクト志向なんか
一切関係ないし、プログラミングの話でもない。

偏差値が低い学校でだけ教えてた事実なんてないしアメリカの大規模システムは
全部OOでカプセル化が基本。

的外れすぎて開いた口が塞がらない。これ書いた人間が全く一切わかってないのはよくわかった。
2020/07/03(金) 09:22:53.27ID:r9jTvXIP
>>536
わざとバカなことを言って他の人が本気で反論や議論してくるのを笑ってる可能性もゼロではないが、まあ単に本物のバカという可能性のが高いと思う
2020/07/03(金) 10:20:55.42ID:N+TCe3uh
>>537
本気感が凄いね。反論とかしようがない1から10まで間違ってるレベルだし。
2020/07/03(金) 10:22:52.04ID:N+TCe3uh
こんなんでもRFC確認する人なんてほとんどいないだろうし、クラウドがあるじゃないですか!
のレベルの日本ではショーンK的に通用しそうというか、結構このスレでも通用してるのがおっかない。
540デフォルトの名無しさん
垢版 |
2020/07/03(金) 10:25:42.60ID:lDWf2b6S
Javaで外クラスから内クラスのprivateメンバが見れるのはなぜですか?

超論理的思考によるとどう考えても理論に欠陥があり矛盾してる。
みなさんはこのJavaにおけるクラス体系をおかしいと思いながら割りきって使ってるのですよね?
2020/07/03(金) 10:27:37.08ID:N+TCe3uh
単に道具だから自分で考えて必要なら使えば良い訳で。

カプセル化ってのはつまり部署ごとにお前のところはお前で責任を持て、
お前が変えたからって他の部署に仕事をさせるな、ということだから、
それができてればなんでも良い。
542デフォルトの名無しさん
垢版 |
2020/07/03(金) 11:40:51.40ID:x82j4VqA
複数の開発会社が絡む大規模案件と
一社開発や個人開発の小規模案件を
ゴッチャゴチャにして同列で語り合うから、話が噛み合わないし、話が終わらないんよ。
2020/07/03(金) 11:47:43.16ID:Gy+Up1+B
>>542
各クラスの仕様を明確にするのか仕様を決めずに実装するかの差だよ
開発手法の差だが開発規模の差ではない
2020/07/03(金) 11:51:37.50ID:uIgOlo/V
>>543
仕様が明確じゃないのにテストする意味あるの?
それともprivateメソッドの仕様を明確にするの?
2020/07/03(金) 11:53:31.15ID:N+TCe3uh
そもそもOOとかは大規模開発するために出てきた手法だから個人で小さいもの
作ってるなら関数でもスパゲッティでも本人わかってりゃいいわけだし、昔は
関数でも部署ごとで話し合ってちゃんとやってたけど、どうしても直接アクセスして
変更の際ぶっ壊れるようなものを作るやつが出るから、じゃあもう見せなきゃそういう
事態は起こらないということで実際それはうまくいってる。

個人のソフトとかは好きにすれば良いし、好きにできるようになってるんだから
それぞれ道具を自分の必要に応じて使って勝手にやれば良い。
2020/07/03(金) 11:59:07.38ID:Gy+Up1+B
>>544
「privateはxunit testingしなくていい」と言われる理由はそこだ
他のクラスとの関わりとして必要な仕様は非privateメンバのみに着目すればいい
publicメンバの振る舞いが変わらずすべてのテストをパスできるならprivateがどう変更されようが他のクラスからは関係ないからな
2020/07/03(金) 12:07:31.88ID:uIgOlo/V
つまりprivateをテストするってことは仕様が明確になってるわけで
publicにしても問題ないってことだよね
2020/07/03(金) 12:07:34.57ID:Gy+Up1+B
勢いで書いたから非privateとpublicがごっちゃになってるけどこの手の話題でpublicと書いてあったら全部非privateと読み替えて下さい
2020/07/03(金) 12:10:41.37ID:BB9T+E2r
>>540
超論理的思考によるとって、論理を超えた思考なんかされたって会話にならないから、論理的思考をした上で疑問があれば相談してくれ。
2020/07/03(金) 12:16:49.80ID:N+TCe3uh
Privateをテストするかどうかはプロジェクトごとのテストのやり方次第だし、
なんのテストかにもよるわけで。

デベロッパーテストなら当然するだろうし、リグレッションテストで普通は
プライベートメソッドをテストしないだろう。

その辺はカプセル化とかOOとかはあまり関係の無い話。
2020/07/03(金) 12:22:55.88ID:hDsckVNf
privateもテストしろよハゲ
2020/07/03(金) 12:26:06.83ID:sqXfkC+n
privateをpublicにしてもいいよねって言ってるやつは、改修で命名とかしたことないんかな
2020/07/03(金) 12:26:36.41ID:hDsckVNf
どこの現場でも通じないトンデモ理論を前面に出して話してんじゃねーぞガイジ
2020/07/03(金) 12:29:48.69ID:Gy+Up1+B
>>551
クラスの仕様変更でpublicになったときに追加すればいい
極端な話、複数のpublicメンバの中でprivateAとprivateBが使われてて各privateの挙動は実装者の想定と実は違ったとしてもすべてのpublicメンバの挙動が仕様通りなら(クラス仕様変更して変なバグを引く羽目になるまで)なんの問題もない
その時対処する事案
2020/07/03(金) 12:55:27.30ID:MMMvRh6C
privateな状態を確認するテストのがテスト数が減る。
二つのpublicなメソッドの関連をテストする場合、
n*m になるが
状態が k 個の場合、 (n + m)*k になるわけだよ。
無理にpublicだけのテストを書くことがどれだけアホか。
556デフォルトの名無しさん
垢版 |
2020/07/03(金) 13:00:40.80ID:lDWf2b6S
Javaで外クラスから内クラスのprivateメンバが見れるのはなぜですか?

論理的思考によるとどう考えても理論に欠陥があり矛盾してる。
みなさんはこのJavaにおけるクラス体系をおかしいと思いながら割りきって使ってるのですよね?
2020/07/03(金) 13:19:27.55ID:Gy+Up1+B
>>555
privateテストでテスト数減るならその方がいいのは自分も同意

誤 privateはテストしなければならない
誤 privateはテストしてはならない
正 必要なテストだけ簡単になるように書けば良い
2020/07/03(金) 13:48:21.04ID:BB9T+E2r
>>556
https://ja.coder.work/so/java/17371
559デフォルトの名無しさん
垢版 |
2020/07/03(金) 14:48:27.68ID:lDWf2b6S
>>558
それは内クラスから外クラスが見えることの説明。
わたしの質問はなぜ外クラスから内クラスのprivateメンバが見れるのか?
2020/07/03(金) 15:31:34.78ID:/F47has6
>>525
もしかして 神オブジェクト?
2020/07/03(金) 15:33:00.38ID:/F47has6
よく見たら全部privateか。
...いや、そんなの誰が呼ぶんだ。
2020/07/03(金) 15:36:50.41ID:FAOrvW1R
しらんがな、言ったやつがコードサンプルでも出さなきゃ説明力足りてないから分からんだろ
外部クラスがどうのとか言ってるやつもな。Javaの外部内部の関係も理解が曖昧なんだろ
563デフォルトの名無しさん
垢版 |
2020/07/03(金) 16:46:44.22ID:q5wbDGG6
Javaって修飾子付けないとpackage privateがデフォルトだからその事言ってんじゃね?
package privateとは言い換えればpakage内publicと同じだから
564デフォルトの名無しさん
垢版 |
2020/07/03(金) 16:51:38.12ID:36TwtcUk
じゃあpimplで。
2020/07/03(金) 16:55:37.72ID:hDsckVNf
>>554
言い訳こいてんじゃねーよ
単体テストにpublicもprivateもねーよ
全メソッドテストしろや
566デフォルトの名無しさん
垢版 |
2020/07/03(金) 16:58:29.95ID:36TwtcUk
弊社はC2カバレッジ100%に満たないものは出荷できませんけどね。
2020/07/03(金) 17:19:33.24ID:Gy+Up1+B
c2の100%は分野次第だがwebや基幹程度なら無駄と欺瞞で逆に信用できない
2020/07/03(金) 17:47:09.01ID:DQKehNsV
それな
2020/07/03(金) 19:19:16.44ID:TUVANe+h
>>566
普通そうだよね
2020/07/03(金) 19:53:44.94ID:FArQoHTp
特に組み込みはC2カバレッジが常識なんだけど、ISO26262では関数カバレッジでOKという不思議。
2020/07/03(金) 20:32:31.27ID:Gy+Up1+B
>>569
分野によるって言ってるだろ
人命関わらないgui優先で運用回避がまかり通る分野全般はカバレッジなしやc0カバレッジ70%(自動生成コード除く)とかなんだよ
2020/07/03(金) 21:06:04.59ID:DQKehNsV
あー、ここ組み込みとかのやつらが多いのか!納得だわ
2020/07/04(土) 03:14:27.24ID:1AXxY7r6
>>559
そりゃインナークラスは親クラスのメンバーなんだから
親クラスから見えるのは当たり前。

巨大クラスを作ってその中にインナークラスが大量にあるような
コードならそれはカプセル化できてない。Java使ったから自動的に
カプセル化できるものでも適切なOOの設計になるわけでもない。
それらがやりやすいような言語なだけ。

適切に使えば、インナークラスを使わなかった場合パブリックで
メンバーにアクセスさせなければいけないのに対して、インナークラスの
メンバーはアウタークラス以外には見えないわけだから、よりカプセル化は
進んでいる。
2020/07/04(土) 03:31:41.97ID:1AXxY7r6
親クラスは不適切だった。インナークラスはアウタークラスのメンバーなんだから
メンバーを見られるのは当たり前。
2020/07/04(土) 08:51:34.07ID:+L2cGNSv
>>572
組み込み開発やってるけど、ちゃんと最先端の勉強をしている人はオブジェクト指向理解しているよ(別にOOP自体は普及しきったノウハウだが)。
言語はC/C++言語ほぼ一択だけど。(他はRustくらいだが、まだ普及しない)

まぁ、WEBやアプリ開発等、我々から見て抽象レイヤーで使われるノウハウを軽視するおじさん上司も多いし、組み込みに残念なプログラマーが多いことは否定しないけど。
2020/07/04(土) 09:02:21.50ID:+L2cGNSv
>>566
カバレッジテストとアクセス修飾子って関係あるの?
カバレッジテストを合格するためにpublicにするとか、本末転倒じゃね?
2020/07/04(土) 10:13:15.22ID:6t8LAACC
>>576
ねーよ
黙って100%にしろや
2020/07/04(土) 10:19:47.88ID:+L2cGNSv
話の流れからして、テストのためにpublicにしろに読み取れたけど、ミスリード?
まぁ、そんな馬鹿な話、あるわけねーか。
2020/07/04(土) 10:30:23.87ID:xLCX+W2/
>>578
いいよ
100%にできる方法でやって
2020/07/04(土) 10:45:14.19ID:MjvraXl0
草、どんな立場だよw
581デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:02:29.17ID:pmIasW6W
publicにしなくてもリフレクション使ったりすればええんやで
privateだからテストしないなんてプログラマとしてありえない
582デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:03:03.13ID:pmIasW6W
C2 100%は新人でも最低ライン
583デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:06:53.34ID:pmIasW6W
テストの仕方を知らない教えない会社があるんだなー
2020/07/04(土) 11:08:56.73ID:M3d71N9d
>>576
> カバレッジテストとアクセス修飾子って関係あるの?

当然関係ないよ。(ここらへんで関係があるとか言ってるのはアホからだ無視していい。)
privateになってようが、それはpublic経由でテストするのだから
カバレッジは変わらない

テストのしやすさが変わるだけ。もしprivateのままだとテストしづらいなら
そのprivateの仕様を明確にしてpublicにして問題ないような設計に変えるだけのこと
585デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:13:54.87ID:pmIasW6W
>>584
publicにしないとテストできないってどんな言語?
privateのままテストしたらええやんけ
unit testは最小単位でテストすることでテストのコストを
最小化するものだからpublic経由でprivateなメソッド呼び出してたら
unit testの意味をわかってないアホの極みだしテストのためだけにpublicにするよう
設計に手をいれるのは本末転倒
2020/07/04(土) 11:14:51.95ID:9ghyGMpS
とある大手家電メーカー勤めだが、以前までC2カバレッジ必須でやってたんだけど、色々な計測の結果じつはユニットテストでカバレッジに時間かけるよりシステムテストに時間かけたほうが品質が上がるという結果が出てからはユニットテスト必須じゃなくなったわ。
587デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:14:53.14ID:pmIasW6W
テストの仕方って教えないものなんだなー
2020/07/04(土) 11:16:50.57ID:M3d71N9d
外部から使うかどうかという(間違った)考え方で
privateにするかpublicにするかを決めてると
例えば、全文検索エンジンなんか最低限
文書の登録メソッドregisterと検索メソッドsearchだけでいいってことになってしまう

しかし全文検索エンジンとかいうのは内部で
高速なデータ検索を行うためにいろんなアルゴリズムやデータ構造を
使っているわけで、それらを(実際に使用例ができるかどうかは別として)
汎用的に使えるようにライブラリとして分離すればいいわけ

privateにするかpublicにするかっていうのは、そのシステムで外部から使うか?ではなくて
オブジェクトとして外部から使うかなわけで、privateでテストしづらいようなものは
別オブジェクトに分離とするとか設計をみなすべきってことなんだよ
589デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:18:52.84ID:pmIasW6W
>>588
privateのままテストしたらオブジェクト分ける必要ないよ
privateのままテストする方法がわからないからオブジェクトわけましょうなんて愚の骨頂
愚かの極み
2020/07/04(土) 11:18:58.30ID:M3d71N9d
>>585
> publicにしないとテストできないってどんな言語?

そんな話はしてない
可能不可能な話はしていない
やりやすいかどうかの話をしている
コストを考えなきゃいかんよ?

できるけど大変っていうのは、問題を何も解決してない
ちゃんと設計をせずに関数のインターフェースを定義せずに
無理やりprivateのテストをしても、private=外部から使わない=変更しても問題ないわけで
それに対してテストをしていると、変更しても問題ないはずのprivateメソッドを変更したら
テストが失敗するってことになるのでよくない
2020/07/04(土) 11:20:06.42ID:M3d71N9d
>>589
お前はprivateメソッドを変更したときの
影響の大きさがわかってないよね
592デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:23:05.84ID:pmIasW6W
>>590
privateでテストできないならpublicに設計し直すんやって言ってたじゃん
privateのままでテストするのに何も大変なことなんてない
テストのためだけに設計し直すのは頭おかしい

テストされてないメソッドが存在する方が問題だよ
外部から使わないから問題ないよねって感覚で勝手に修正されるわけないだろw
メソッド書き換えたらテストも修正するのは当たり前
593デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:24:25.01ID:pmIasW6W
>>591
わかってないのはそっちの方、unit testでカバーしてなかったら
仕様通り動いてるのを確認できない
594デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:26:55.62ID:pmIasW6W
privateなメソッドであっても事前条件も事後条件もある
unit testでカバーしてれば壊れてないことを確認できるからリファクタリングが可能になる
595デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:27:43.00ID:1AXxY7r6
大規模システムでずっと来てるけどカバレッジって初めて聞いた。調べたら
アメリカだと航空宇宙とか自動車とかでやるみたいね。

ERPで分岐ごとにやってたら多分完成まで数世紀かかるよw

privateとかpublicとかは単に現場次第だよね。正式なQAメソッドではそこまで
言わないし、どうでもいいというか、臨機応変にやるとこ。
596デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:30:38.80ID:pmIasW6W
>>595
臨機応変にやるのは会社を首にならないためですよねw
それは社会をどうやって生き抜いていくかサラリーマンとしての心得じゃないですか

プログラマとして品質の高いプログラムを作るためにC2 100%は最低条件ですよ
597デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:33:41.81ID:1AXxY7r6
>>596
プログラマって言ったってサラリーマンと対して変わりがないくらい幅広いわけで。

大規模ビジネスシステムで分岐ごと全部テストしてたらピラミッド建設みたいな事に
なりますw
598デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:36:02.68ID:1AXxY7r6
ちなみに臨機応変にやるとこなのは会社首とかはどうでもよくて、
ユニットテストはなに、リグレッションは、アクセプタンスはってのは
QAのメソッドとして確立してるけど、JavaのPrivateがどうするかみたいなのは
完全に現場次第だから。

世界標準はないでしょ。
599デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:39:33.69ID:pmIasW6W
>>597
大規模システムってみずほとか?
テストは組み合わせを考えると膨大になるのだけれども
最小単位のunit testだとそうでもなくてだからこそunit testは大事なんよ

Salesforceは知ってる?クラウド型のサービスでアプリ作ったりできるんだけど
カバレッジが75%以下だとデプロイできなくなってる

大規模だからビジネスシステムだからテストしなくていいはちょっと今の時代ありえない
2020/07/04(土) 11:39:35.50ID:MJUVFEDB
昔の組み込みの少ない経験だけでイキってるんやろ
2020/07/04(土) 11:40:52.54ID:M3d71N9d
>>592
> privateでテストできないならpublicに設計し直すんやって言ってたじゃん
> privateのままでテストするのに何も大変なことなんてない

自分で答え言ってるじゃんw
privateでテストできないならpublicに設計し直すんだから
privateのテストは大変じゃなくて必要ないってこと
2020/07/04(土) 11:41:39.32ID:M3d71N9d
>>593
> わかってないのはそっちの方、unit testでカバーしてなかったら
> 仕様通り動いてるのを確認できない

ユニットテストでカバーしないなんて一言も言ってないんだが?
何に反論してるんだよ
603デフォルトの名無しさん
垢版 |
2020/07/04(土) 11:41:45.39ID:pmIasW6W
>>598
現場次第だから現場に従うんだっていうのはそれはサラリーマンとして生き残るために
そうせざるを得ないだけだよね、品質の高いプログラムを作るなら常にテストはしないといけない
世界標準がないからいんだっていうのじゃないよ
2020/07/04(土) 11:42:23.92ID:M3d71N9d
>>594
> privateなメソッドであっても事前条件も事後条件もある
> unit testでカバーしてれば壊れてないことを確認できるからリファクタリングが可能になる

最初からpublic経由でテストするって言ってるよね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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