このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
探検
クソコードとは何か
■ このスレッドは過去ログ倉庫に格納されています
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
355デフォルトの名無しさん
2021/02/18(木) 00:49:53.24ID:GR+auC/2356デフォルトの名無しさん
2021/02/18(木) 00:51:16.80ID:unHOG45Z >>354
自動テストってなんで正しいの?
自動テストってなんで正しいの?
357デフォルトの名無しさん
2021/02/18(木) 00:52:15.60ID:unHOG45Z 自動テストってコードありきで作っちゃったゴミカステストしか見たことないよ
358デフォルトの名無しさん
2021/02/18(木) 00:54:40.11ID:uiIjzHNM >>356
それをいうなら、
「自動テストは、正しくテストをしたという担保があるの?」
だよね。
コンピュータは書いたとおりに動く
だから、テストコードで書いたテストを
正しく行ったことが担保されている
それに対して人間は、いくらテスト指示書にこうしろと
書いてあったとしても間違えることがあるしサボることもある
なんかおかしい気がしたけど気づかずにスクショ取ってOKと記入してしまうこともある
だがあとになって調べようとしても、その時のテストが
間違っていたり手抜きしたことがわからない
それをいうなら、
「自動テストは、正しくテストをしたという担保があるの?」
だよね。
コンピュータは書いたとおりに動く
だから、テストコードで書いたテストを
正しく行ったことが担保されている
それに対して人間は、いくらテスト指示書にこうしろと
書いてあったとしても間違えることがあるしサボることもある
なんかおかしい気がしたけど気づかずにスクショ取ってOKと記入してしまうこともある
だがあとになって調べようとしても、その時のテストが
間違っていたり手抜きしたことがわからない
359デフォルトの名無しさん
2021/02/18(木) 00:56:12.19ID:GR+auC/2 >>357
OSSなら基本的にテストファーストはしてないね、プロトタイプ作って0.1にバージョニングして
後からテストコード追加ですね。業務コードだとTDDを最初からやろうとする企業もあるけどさ
作ったテストが要件や機能に合わなくなることはあるあるネタだ
OSSなら基本的にテストファーストはしてないね、プロトタイプ作って0.1にバージョニングして
後からテストコード追加ですね。業務コードだとTDDを最初からやろうとする企業もあるけどさ
作ったテストが要件や機能に合わなくなることはあるあるネタだ
360デフォルトの名無しさん
2021/02/18(木) 00:57:26.69ID:unHOG45Z >>358
いや、ないよ
いや、ないよ
361デフォルトの名無しさん
2021/02/18(木) 00:57:49.51ID:uiIjzHNM >>359
普通、一つのコミットの中にテストコードと実装コードが含まれるけど
テストファーストしてないという根拠は?
後からテストコードが追加されたことがあるからといって、
それはテストファーストしてない理由にはならない
普通、一つのコミットの中にテストコードと実装コードが含まれるけど
テストファーストしてないという根拠は?
後からテストコードが追加されたことがあるからといって、
それはテストファーストしてない理由にはならない
362デフォルトの名無しさん
2021/02/18(木) 00:58:20.53ID:uiIjzHNM363デフォルトの名無しさん
2021/02/18(木) 00:59:52.93ID:unHOG45Z364デフォルトの名無しさん
2021/02/18(木) 01:01:03.98ID:unHOG45Z バカが作ればバカなりな正常が定義されるだけだろ
夢みんな
夢みんな
365デフォルトの名無しさん
2021/02/18(木) 01:01:59.98ID:uiIjzHNM366デフォルトの名無しさん
2021/02/18(木) 01:02:43.80ID:uiIjzHNM 手動テストではいくらテスト項目が書いてあったからって
そのとおり正しくテストしたという保証がまったくないんだわ
人間は間違えることがあるから
そのとおり正しくテストしたという保証がまったくないんだわ
人間は間違えることがあるから
367デフォルトの名無しさん
2021/02/18(木) 01:04:27.27ID:unHOG45Z >>365
いや、それ自動テストと手動テストに違いないじゃん
自動テストの間違ったテストコードで正常になっちゃったも
手動テストで間違ったエビデンスのとり方して正常になっちゃったも
違いねーし
頭おかしんちゃう?お前
いや、それ自動テストと手動テストに違いないじゃん
自動テストの間違ったテストコードで正常になっちゃったも
手動テストで間違ったエビデンスのとり方して正常になっちゃったも
違いねーし
頭おかしんちゃう?お前
368デフォルトの名無しさん
2021/02/18(木) 01:06:47.98ID:uiIjzHNM >>367
自動テストの間違ったテストコードで正常になっちゃった場合は
テストコードを見れば、テストコードが間違っていたとあとからわかる
手動テストでは、テスト作業が間違っていたのかどうかもわからない
あとから見た所で、作業内容自体までスクショ取ってないから。
それとも監視カメラで作業員の行動を動画で撮って
あとからその動画を眺めるつもりか?
コンビニの監視カメラの映像を確認するように
一体何時間時間がかかると思ってるんだ
自動テストの間違ったテストコードで正常になっちゃった場合は
テストコードを見れば、テストコードが間違っていたとあとからわかる
手動テストでは、テスト作業が間違っていたのかどうかもわからない
あとから見た所で、作業内容自体までスクショ取ってないから。
それとも監視カメラで作業員の行動を動画で撮って
あとからその動画を眺めるつもりか?
コンビニの監視カメラの映像を確認するように
一体何時間時間がかかると思ってるんだ
369デフォルトの名無しさん
2021/02/18(木) 01:07:56.11ID:unHOG45Z >>368
え?わかるやり方もあるでしょ?バカなん?
え?わかるやり方もあるでしょ?バカなん?
370デフォルトの名無しさん
2021/02/18(木) 01:08:25.16ID:uiIjzHNM だから手動テストでは
もう一回やったら再現できませんでしたとか
ちゃんとテストしたのに実際は動きませんでした
とか発生した時に、その原因の追求ができない
うごくからヨシっていう
適当な仕事をしてる
もう一回やったら再現できませんでしたとか
ちゃんとテストしたのに実際は動きませんでした
とか発生した時に、その原因の追求ができない
うごくからヨシっていう
適当な仕事をしてる
371デフォルトの名無しさん
2021/02/18(木) 01:09:01.59ID:uiIjzHNM372デフォルトの名無しさん
2021/02/18(木) 01:09:10.15ID:unHOG45Z373デフォルトの名無しさん
2021/02/18(木) 01:10:46.79ID:unHOG45Z374デフォルトの名無しさん
2021/02/18(木) 01:11:16.43ID:uiIjzHNM >>372
テストコードみれば、実際にやったテストがわかるだろ?
馬鹿なのか?
手動テストでは、何が書いてあっても
実際にどういうテストをやったかがわからない
人間が間違えたかもしれないって話をしてるのだが
ついてこれてる?
テストコードみれば、実際にやったテストがわかるだろ?
馬鹿なのか?
手動テストでは、何が書いてあっても
実際にどういうテストをやったかがわからない
人間が間違えたかもしれないって話をしてるのだが
ついてこれてる?
375デフォルトの名無しさん
2021/02/18(木) 01:11:52.03ID:unHOG45Z 俺がつないであるプリンタを踵落としで叩き割ったらもう動かないよね?
376デフォルトの名無しさん
2021/02/18(木) 01:12:02.27ID:uiIjzHNM377デフォルトの名無しさん
2021/02/18(木) 01:12:12.31ID:GR+auC/2 >>363
「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
OSSでもクローズドソースでも普通はコミットの中には、偏在が生じます。TDD推進や原理主義者では
テストコード比率は80%だと主張する方もいます。一般的にOSSではテストコードがほとんどない方が
多いです。もちろんこれの正当性を主張するわけでもありませんが、何故そうなるのかと言えば多くが
個人開発だからです。いい加減な自動テストが含まれていて、それをテストファーストと主張するなら
主張すればいいですよw
「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
OSSでもクローズドソースでも普通はコミットの中には、偏在が生じます。TDD推進や原理主義者では
テストコード比率は80%だと主張する方もいます。一般的にOSSではテストコードがほとんどない方が
多いです。もちろんこれの正当性を主張するわけでもありませんが、何故そうなるのかと言えば多くが
個人開発だからです。いい加減な自動テストが含まれていて、それをテストファーストと主張するなら
主張すればいいですよw
378デフォルトの名無しさん
2021/02/18(木) 01:13:10.82ID:uiIjzHNM379デフォルトの名無しさん
2021/02/18(木) 01:13:51.03ID:unHOG45Z >>374
は?それが正しいかどうかは仕様書見ないとわからないだろ?
仕様書とテストコードとコード見るんやな
なんか無駄じゃねぇの?
仕様書とコード見るだけでよくね?
なんでテストコード書く必要あったんだっけ?
は?それが正しいかどうかは仕様書見ないとわからないだろ?
仕様書とテストコードとコード見るんやな
なんか無駄じゃねぇの?
仕様書とコード見るだけでよくね?
なんでテストコード書く必要あったんだっけ?
380デフォルトの名無しさん
2021/02/18(木) 01:15:16.04ID:unHOG45Z そもそも仕様書とコードを見比べてどうして正しいかわからないんだっけ?
381デフォルトの名無しさん
2021/02/18(木) 01:15:18.95ID:uiIjzHNM >>377
> 「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
ん?証拠を持ってくればいいわけ?
例なんていくらでもあるけど、一つのコミットの中にテストコードと実装コードが含まれてます。
https://github.com/facebook/react/pull/20813/files
> 「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
ん?証拠を持ってくればいいわけ?
例なんていくらでもあるけど、一つのコミットの中にテストコードと実装コードが含まれてます。
https://github.com/facebook/react/pull/20813/files
382デフォルトの名無しさん
2021/02/18(木) 01:15:52.08ID:unHOG45Z >>381
ウィルス
ウィルス
383デフォルトの名無しさん
2021/02/18(木) 01:16:06.06ID:uiIjzHNM384デフォルトの名無しさん
2021/02/18(木) 01:16:36.10ID:uiIjzHNM >>382
そうだよね。そうやって嘘を付くしかないもんねw
そうだよね。そうやって嘘を付くしかないもんねw
385デフォルトの名無しさん
2021/02/18(木) 01:17:07.59ID:unHOG45Z >>383
え?それは仕様書通りって意味でないとビジネスで役に立たないよね?
え?それは仕様書通りって意味でないとビジネスで役に立たないよね?
386デフォルトの名無しさん
2021/02/18(木) 01:17:45.50ID:unHOG45Z 自動テストでどうやって仕様書通りかどうかわかるの?
387デフォルトの名無しさん
2021/02/18(木) 01:18:14.28ID:unHOG45Z お前のテストコードがクソコードだったら終わりじゃん
388デフォルトの名無しさん
2021/02/18(木) 01:20:25.65ID:unHOG45Z さっきからなんの正しい説明にもなってないじゃん
自動テストも手動テストも仕様書通りかどうかテストすんだろ
何度も言わせるなクソが
自動テストも手動テストも仕様書通りかどうかテストすんだろ
何度も言わせるなクソが
389デフォルトの名無しさん
2021/02/18(木) 01:27:53.27ID:GR+auC/2 >>381
js系の人ですか(笑)reactの場合、ver17.0.0になってもissueのOpen数が500あります。明らかにデグレを
生んでいますが、issueのClose数も1万近くです。テストが完璧だとどうやって担保しているでしょうか?(笑)
リリース数は数えたら137回です
js系の人ですか(笑)reactの場合、ver17.0.0になってもissueのOpen数が500あります。明らかにデグレを
生んでいますが、issueのClose数も1万近くです。テストが完璧だとどうやって担保しているでしょうか?(笑)
リリース数は数えたら137回です
390デフォルトの名無しさん
2021/02/18(木) 01:35:12.01ID:GR+auC/2 >>381
ん?ショーコですか?誰もそんな事言ってないと思いますが?w
参考までにそのコミットの1つ前にはテストコードが含まれてませんが?w2つ前も含まれてませんw
対象コードはCIのコードですがwよくあるFix typo も多くはテストコードとやらは含まれませんね。
ん?ショーコですか?誰もそんな事言ってないと思いますが?w
参考までにそのコミットの1つ前にはテストコードが含まれてませんが?w2つ前も含まれてませんw
対象コードはCIのコードですがwよくあるFix typo も多くはテストコードとやらは含まれませんね。
391デフォルトの名無しさん
2021/02/18(木) 01:55:43.96ID:GR+auC/2 >>387
”「書いてあるとおりに正しくテストしたことが自動テストならわかる」って言ってるだろ ”
上の方を見ても1回もそんな事はいってませんね・・・それと、日本語の区切りがおかしいので
直しておきました。「書いてあるとおりに正しくテストした」これを一言で言えばオナニー猿です。
逃げてしまったのか
”「書いてあるとおりに正しくテストしたことが自動テストならわかる」って言ってるだろ ”
上の方を見ても1回もそんな事はいってませんね・・・それと、日本語の区切りがおかしいので
直しておきました。「書いてあるとおりに正しくテストした」これを一言で言えばオナニー猿です。
逃げてしまったのか
392デフォルトの名無しさん
2021/02/18(木) 06:37:17.08ID:EVRbmhyV >>327
はいはい、どうしようもない現実を知らないとか幸福な人生で何よりですw
はいはい、どうしようもない現実を知らないとか幸福な人生で何よりですw
393デフォルトの名無しさん
2021/02/18(木) 06:54:09.45ID:qR1rH4Mn テストの内容(文章 or コード)が、仕様書通りかは、手動テストも自動テストもわからない
この勝負はドロー(引き分け)
テストの内容(文章 or コード)が仕様書通り正しいと仮定する
手動テストは、テストの内容を正しく実行したとは限らないが
自動テストであれば、テストの内容を正しく実行したことが保証される
なぜならコードは書いたとおりに動くから
この勝負は自動テストの勝ち
この勝負はドロー(引き分け)
テストの内容(文章 or コード)が仕様書通り正しいと仮定する
手動テストは、テストの内容を正しく実行したとは限らないが
自動テストであれば、テストの内容を正しく実行したことが保証される
なぜならコードは書いたとおりに動くから
この勝負は自動テストの勝ち
394デフォルトの名無しさん
2021/02/18(木) 07:11:33.36ID:K1XgX+kk395デフォルトの名無しさん
2021/02/18(木) 08:22:53.92ID:qR1rH4Mn >>394
テストコードのテストというのは意味不明
お前の理屈だと、テストのテストが必要になるだろ
テストのテストのテストも必要になるだろ
アホらしい
テストコードに必要なのはコードレビュー
テストコードのレビューが必要なように
テスト実行手順書のレビューも必要
この勝負はドロー
そしてテストコードのレビューがOKだった場合
書いてあるテストコードの通りテストは行われるが
テスト実行手順書のレビューがOKでも
手動でテストすると、そのとおりにテストが行われるとは限らない
ということで、手動テストの負けになる
テストコードのテストというのは意味不明
お前の理屈だと、テストのテストが必要になるだろ
テストのテストのテストも必要になるだろ
アホらしい
テストコードに必要なのはコードレビュー
テストコードのレビューが必要なように
テスト実行手順書のレビューも必要
この勝負はドロー
そしてテストコードのレビューがOKだった場合
書いてあるテストコードの通りテストは行われるが
テスト実行手順書のレビューがOKでも
手動でテストすると、そのとおりにテストが行われるとは限らない
ということで、手動テストの負けになる
396デフォルトの名無しさん
2021/02/18(木) 10:15:13.26ID:64/LOwh9397デフォルトの名無しさん
2021/02/18(木) 10:27:02.08ID:PBViQ2A6398デフォルトの名無しさん
2021/02/18(木) 11:03:49.56ID:gOUQkM00 推奨するやつの頭が悪いから
テストの自動化自体も悪く見えるパターンだなこれ
ルビきちパターン
テストの自動化自体も悪く見えるパターンだなこれ
ルビきちパターン
399デフォルトの名無しさん
2021/02/18(木) 11:05:28.89ID:ZCTHPCfZ >>397
馬鹿筆頭の自覚無しw
馬鹿筆頭の自覚無しw
400デフォルトの名無しさん
2021/02/18(木) 11:40:46.00ID:Nx8G+5tf >>399
煽り耐性無さ過ぎ...
煽り耐性無さ過ぎ...
401デフォルトの名無しさん
2021/02/18(木) 11:49:50.78ID:nrHJXjYu スレの趣旨的にはむしろ>>305が正しい
402デフォルトの名無しさん
2021/02/18(木) 12:14:02.17ID:2k7+F3J5403デフォルトの名無しさん
2021/02/18(木) 12:21:36.18ID:2k7+F3J5 >>320の"再利用性の無いクラスは糞"でトライしてみたんだろうけどペラすぎて役に立たないから誰も反応しない
404デフォルトの名無しさん
2021/02/18(木) 12:27:34.11ID:nrHJXjYu そう?
むしろさり気なくanemic domainの話をしてる奴らがいたから、良スレの予感したのに一人の馬鹿が荒らした挙げ句に単体テストの必要性の有無とかいう低レベルスレになってがっかりしてる俺がここにいるけど?
内容がペラいってか、本当の経験者なら察せるし、一言二言から深堀すればいいのに
むしろさり気なくanemic domainの話をしてる奴らがいたから、良スレの予感したのに一人の馬鹿が荒らした挙げ句に単体テストの必要性の有無とかいう低レベルスレになってがっかりしてる俺がここにいるけど?
内容がペラいってか、本当の経験者なら察せるし、一言二言から深堀すればいいのに
405デフォルトの名無しさん
2021/02/18(木) 12:28:13.80ID:nrHJXjYu 単体テストの話で流れるせいで誰も手が出せん
何なら、隔離スレいる?
何なら、隔離スレいる?
406デフォルトの名無しさん
2021/02/18(木) 12:55:48.46ID:nrHJXjYu ペラいとか言うけど、そもそも>>320の言ってることわかる?
他人を批判する前に貴方の実力チェックがしたいのだが、なんで再利用できないクラスがクソなのかわかる?
他人を批判する前に貴方の実力チェックがしたいのだが、なんで再利用できないクラスがクソなのかわかる?
407デフォルトの名無しさん
2021/02/18(木) 14:03:58.21ID:d72Uy3wC408デフォルトの名無しさん
2021/02/18(木) 14:20:32.85ID:nrHJXjYu >>407
その考えとは?わからないから教えてくれや
その考えとは?わからないから教えてくれや
409デフォルトの名無しさん
2021/02/18(木) 14:52:32.67ID:nrHJXjYu >>407
まさか再利用できないクラスが普通だとか思ってる?流石にそれはレベル低すぎてその発想はなかったけど、そういうこと?
たのむから伝わるように文章を書いてくれ
お前の文章こそ情報量がない
あるのは相手にマウントを取ろうとする意気込みだけ
まさか再利用できないクラスが普通だとか思ってる?流石にそれはレベル低すぎてその発想はなかったけど、そういうこと?
たのむから伝わるように文章を書いてくれ
お前の文章こそ情報量がない
あるのは相手にマウントを取ろうとする意気込みだけ
410デフォルトの名無しさん
2021/02/18(木) 15:50:41.18ID:bN9e6Enp411デフォルトの名無しさん
2021/02/18(木) 15:59:27.62ID:nrHJXjYu412デフォルトの名無しさん
2021/02/18(木) 17:08:42.38ID:kV6+8waU まず再利用性とは何かをまるで理解していない
アプリ全体の一箇所でしかインスタンス化されないからといって再利用性が無いとは言わない
再利用には様々な形があるにもかかわらずインスタンス化される箇所の数という著しく狭い一つの側面だけしか見えていない
そもそもインスタンス化される箇所の数と、そのクラスがクソかどうかとは何の関係も無い
ないない尽くし
アプリ全体の一箇所でしかインスタンス化されないからといって再利用性が無いとは言わない
再利用には様々な形があるにもかかわらずインスタンス化される箇所の数という著しく狭い一つの側面だけしか見えていない
そもそもインスタンス化される箇所の数と、そのクラスがクソかどうかとは何の関係も無い
ないない尽くし
413デフォルトの名無しさん
2021/02/18(木) 17:23:27.31ID:kV6+8waU クラスの再利用性の度合いが低ければそのクラスがクソかと言えば全くそんなことは無い
クソがどうかは再利用性の度合いとは関係ない
クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
当然、一般的に言うところのクラスとしての再利用性は無い
それだけでクソだと言い出したらGoogleが作るものでもMSが作るものでも世の中のアプリはほぼ全てクソの塊
クソがどうかは再利用性の度合いとは関係ない
クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
当然、一般的に言うところのクラスとしての再利用性は無い
それだけでクソだと言い出したらGoogleが作るものでもMSが作るものでも世の中のアプリはほぼ全てクソの塊
414デフォルトの名無しさん
2021/02/18(木) 17:49:20.06ID:HwjlNY0O ジョブがやたら多いシステムきつい
415デフォルトの名無しさん
2021/02/18(木) 17:53:10.20ID:EQNcYV6O >>413
> クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
> 当然、一般的に言うところのクラスとしての再利用性は無い
そんなの当たり前じゃん
殺人事件が起きて殺人は駄目だと訴える遺族の前で死刑囚は殺してはいけないと言うのか?とか言い出すようなもの
それくらい察してやれ
> クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
> 当然、一般的に言うところのクラスとしての再利用性は無い
そんなの当たり前じゃん
殺人事件が起きて殺人は駄目だと訴える遺族の前で死刑囚は殺してはいけないと言うのか?とか言い出すようなもの
それくらい察してやれ
416デフォルトの名無しさん
2021/02/18(木) 17:59:21.72ID:EQNcYV6O って、アプリ特有ってまさか業務特有の処理とかじゃないよな?
フレームワーク特有だったらわかるけど
フレームワーク特有だったらわかるけど
417デフォルトの名無しさん
2021/02/18(木) 18:07:15.94ID:TPOb/Xi+ 組込してるけど、USBクラス、SDカードクラスのインスタンス化が封じられていて、しかもUSBクラスの中にMCUのポートに依存する処理が書かれてたらクソだと思う
なんで、回路構成変わるたびにいちいちUSBのロジックを実装しなきゃなんねーんだよクソがって言いたい
なんで、回路構成変わるたびにいちいちUSBのロジックを実装しなきゃなんねーんだよクソがって言いたい
418デフォルトの名無しさん
2021/02/18(木) 18:40:52.03ID:uVIafMoc419デフォルトの名無しさん
2021/02/18(木) 18:56:01.13ID:z09WEaLy トイレ行っていい?
420デフォルトの名無しさん
2021/02/18(木) 19:02:24.32ID:TPOb/Xi+ >>418
文面だと伝わりづらいと思うからコード書くけど
USBポートが2ポートある場合
USB usb1 = new USB(port1)
USB usb2 = new USB(port2)
で済むのに、インスタンス化を封じられたら
USB1 usb1 = USB1.getSingleton()
USB2 usb2 = USB2.getSingleton()
みたいにUSB1クラス、USB2クラスを自分で定義しないといけなくなるからやめた方がいいよって話
なぜかというと、USB1と2に同じコードを書かないといけないし、もし、USBの処理に仕様変更が生じると、今後はUSB1と2を変更しないと駄目だから
面倒でしょ?2個程度なら...という油断は命取り
>>419
ご自由に
文面だと伝わりづらいと思うからコード書くけど
USBポートが2ポートある場合
USB usb1 = new USB(port1)
USB usb2 = new USB(port2)
で済むのに、インスタンス化を封じられたら
USB1 usb1 = USB1.getSingleton()
USB2 usb2 = USB2.getSingleton()
みたいにUSB1クラス、USB2クラスを自分で定義しないといけなくなるからやめた方がいいよって話
なぜかというと、USB1と2に同じコードを書かないといけないし、もし、USBの処理に仕様変更が生じると、今後はUSB1と2を変更しないと駄目だから
面倒でしょ?2個程度なら...という油断は命取り
>>419
ご自由に
421デフォルトの名無しさん
2021/02/18(木) 19:30:22.47ID:unHOG45Z422デフォルトの名無しさん
2021/02/18(木) 20:13:35.08ID:qR1rH4Mn423デフォルトの名無しさん
2021/02/18(木) 20:54:43.88ID:Tudb2iMs >>420
インスタンス化しとるやーん
USBに共通する処理をコンポジションで切り出してれば1箇所の修正で済むよね
シングルトンにするメリットがある前提ならそのコードの形だけでクソコードだとは思わないな
インスタンス化しとるやーん
USBに共通する処理をコンポジションで切り出してれば1箇所の修正で済むよね
シングルトンにするメリットがある前提ならそのコードの形だけでクソコードだとは思わないな
424デフォルトの名無しさん
2021/02/18(木) 21:58:25.07ID:unHOG45Z425320
2021/02/18(木) 22:15:10.24ID:1R5qg2DM 反応してくれるやつがおっただけでも嬉しいわ(ヽ´ω`)
426デフォルトの名無しさん
2021/02/18(木) 22:24:23.85ID:1R5qg2DM >>412
ワイはそれをあると言っている
インスタンス化された個数こそがそのクラスの価値だと言っている
抽象クラスやインタフェースについてはこの主張では扱わない
アホらしいと思うのなら聞き流してくれていい
ワイはそれをあると言っている
インスタンス化された個数こそがそのクラスの価値だと言っている
抽象クラスやインタフェースについてはこの主張では扱わない
アホらしいと思うのなら聞き流してくれていい
427デフォルトの名無しさん
2021/02/18(木) 22:27:00.40ID:1R5qg2DM428デフォルトの名無しさん
2021/02/18(木) 22:30:19.90ID:1R5qg2DM429デフォルトの名無しさん
2021/02/18(木) 22:55:26.26ID:GanGg3no430デフォルトの名無しさん
2021/02/18(木) 23:10:12.48ID:1R5qg2DM ごめんね下のほうの意味が本来言いたかったこと
実行時のことは考えず単にコード上での評価
実行時のことは考えず単にコード上での評価
431デフォルトの名無しさん
2021/02/18(木) 23:35:55.78ID:lCP5Fc9O >>430
そうすると何か特殊な前提を置いてるかインスタンス化する箇所という言葉の定義が全く違うかだな
インスタンス化がnewしたりファクトリメソッドを呼ぶ事だとしたら
Webでもモバイルでもデスクトップでもコード上の1箇所でしかインスタンス化されないクラスが結構な割合で存在するほうが普通
わかりやすいところで言えばコントローラクラスやアプリケーションクラス
そうすると何か特殊な前提を置いてるかインスタンス化する箇所という言葉の定義が全く違うかだな
インスタンス化がnewしたりファクトリメソッドを呼ぶ事だとしたら
Webでもモバイルでもデスクトップでもコード上の1箇所でしかインスタンス化されないクラスが結構な割合で存在するほうが普通
わかりやすいところで言えばコントローラクラスやアプリケーションクラス
432デフォルトの名無しさん
2021/02/19(金) 02:02:43.04ID:C4/TpWTT >>420
USB io = USB.create(port1)で物理的なUSBが重複する可能性があり、排他制御が必要ならそうすると思うよ。
USB io = new USB(port1)で個別にインスタンス作って、マルチスレッド・マルチプロセスで動くなら必要ないけど
自然的なコンストラクタでメンバー変数は初期化されることに意味があるだけで、それ以外の構築初期化を
しようとしたらファクトリーメソッドが必要になる。もちろんnewの後にメンバーメソッドを毎回自分で
呼び出して初期化しても良いわけだけど、ま、言いたいことは確かに安易な設計でシングルインスタンスは
避けるべきだけど、近代的なクラス型の言語によるメンバーの隠蔽とファクトリーメソッドは無関係
USB io = USB.create(port1)で物理的なUSBが重複する可能性があり、排他制御が必要ならそうすると思うよ。
USB io = new USB(port1)で個別にインスタンス作って、マルチスレッド・マルチプロセスで動くなら必要ないけど
自然的なコンストラクタでメンバー変数は初期化されることに意味があるだけで、それ以外の構築初期化を
しようとしたらファクトリーメソッドが必要になる。もちろんnewの後にメンバーメソッドを毎回自分で
呼び出して初期化しても良いわけだけど、ま、言いたいことは確かに安易な設計でシングルインスタンスは
避けるべきだけど、近代的なクラス型の言語によるメンバーの隠蔽とファクトリーメソッドは無関係
433デフォルトの名無しさん
2021/02/19(金) 02:35:10.05ID:lLyiEvh3 >>424
> え?コードレビューの他にテストコードのレビューやるの?
当たり前だろ
お前コードレビューをするのは当然として、
お前、テスト手順書のレビューしないのか?
だからお前がやったテストはいつも抜けがあるんだろうがw
すいません、テストが漏れてましたじゃねーよ、いっつもいっつも
> え?コードレビューの他にテストコードのレビューやるの?
当たり前だろ
お前コードレビューをするのは当然として、
お前、テスト手順書のレビューしないのか?
だからお前がやったテストはいつも抜けがあるんだろうがw
すいません、テストが漏れてましたじゃねーよ、いっつもいっつも
434デフォルトの名無しさん
2021/02/19(金) 02:43:27.34ID:3DiTZZbV >>433
じゃあテストコードのテストもいるよね?
じゃあテストコードのテストもいるよね?
435デフォルトの名無しさん
2021/02/19(金) 02:59:07.17ID:lLyiEvh3436デフォルトの名無しさん
2021/02/19(金) 06:52:05.98ID:zJ55MHzK437デフォルトの名無しさん
2021/02/19(金) 07:43:49.70ID:tQjoVXv/438デフォルトの名無しさん
2021/02/19(金) 07:48:43.11ID:tQjoVXv/ 設計書
→コード→テスト
→テスト手順書→レビュー
で済むはずが
設計書
→コード→テスト
→テストコード
→レビュー
→テスト
になってるんだろ
テストコードがソースコードである以上テストしないわけにはいかんだろ
→コード→テスト
→テスト手順書→レビュー
で済むはずが
設計書
→コード→テスト
→テストコード
→レビュー
→テスト
になってるんだろ
テストコードがソースコードである以上テストしないわけにはいかんだろ
440デフォルトの名無しさん
2021/02/19(金) 08:24:00.57ID:IIFo83yT クソ言語とは
PHP、Swift、Python
JavaScriptも昔はかなりクソだったが完全に復活した
Obj-CはSwiftに取って代わられることは無かった、コード効率が良すぎる
PHP、Swift、Python
JavaScriptも昔はかなりクソだったが完全に復活した
Obj-CはSwiftに取って代わられることは無かった、コード効率が良すぎる
441デフォルトの名無しさん
2021/02/19(金) 08:51:26.62ID:f7HYpZpv >>438
レビューのあとの「テスト」ってビルドボタンを押す度に走るテストのこと?
それとと、gitとかにcommitする度に走るテストのこと?
作業をカテゴリ分けすると増えているように見えるだけで、作業量は減っているように見えるが
途中からこのスレ来たから、流れがわかっていない
レビューのあとの「テスト」ってビルドボタンを押す度に走るテストのこと?
それとと、gitとかにcommitする度に走るテストのこと?
作業をカテゴリ分けすると増えているように見えるだけで、作業量は減っているように見えるが
途中からこのスレ来たから、流れがわかっていない
442デフォルトの名無しさん
2021/02/19(金) 08:52:42.54ID:hd6MOPhf443デフォルトの名無しさん
2021/02/19(金) 08:54:08.49ID:f7HYpZpv444デフォルトの名無しさん
2021/02/19(金) 09:01:26.16ID:f7HYpZpv445デフォルトの名無しさん
2021/02/19(金) 10:36:32.08ID:zJ55MHzK >>438
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
もうこの時点で意味不明w
普通は
1) 設計書 ⇒ コード(⇒ レビュー)
2) 設計書 ⇒ テスト手順書 ⇒ レビュー
3) 手動テスト(工数大)
だろ
で、自動テストなら
1) 設計書 ⇒ コード
2) 設計書 ⇒ テストコード ⇒ レビュー
3) 自動テスト(工数ほぼ "0")
要するにテストコードは計算機に対するテスト手順書だから手間は変わらんよ
むしろプログラマーだと仕様書よりコード書く方が楽と思う奴もいっぱいいるしw
あとどっちもテストと書いてるけど手動テストと自動テストでは工数が全く違うから同じ「テスト」という言葉でごまかすなよ
なおテストコードはデバッグが必要と主張するなら>>255にちゃんと反論しろ
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
もうこの時点で意味不明w
普通は
1) 設計書 ⇒ コード(⇒ レビュー)
2) 設計書 ⇒ テスト手順書 ⇒ レビュー
3) 手動テスト(工数大)
だろ
で、自動テストなら
1) 設計書 ⇒ コード
2) 設計書 ⇒ テストコード ⇒ レビュー
3) 自動テスト(工数ほぼ "0")
要するにテストコードは計算機に対するテスト手順書だから手間は変わらんよ
むしろプログラマーだと仕様書よりコード書く方が楽と思う奴もいっぱいいるしw
あとどっちもテストと書いてるけど手動テストと自動テストでは工数が全く違うから同じ「テスト」という言葉でごまかすなよ
なおテストコードはデバッグが必要と主張するなら>>255にちゃんと反論しろ
446デフォルトの名無しさん
2021/02/19(金) 10:53:49.57ID:IIFo83yT テストコードは暇なら書くレベルの価値しかない。
テスト仕様書に漏れがない事が最も重要。
実データで実動作で検証するのが納品条件。
テスト仕様書に漏れがない事が最も重要。
実データで実動作で検証するのが納品条件。
447デフォルトの名無しさん
2021/02/19(金) 11:02:12.72ID:8jP4Tkvg 実機繋がってないと無意味なテストにしかならんの多いのよな
448デフォルトの名無しさん
2021/02/19(金) 11:29:00.52ID:RipgTCDE >>438
> テストコードがソースコードである以上テストしないわけにはいかんだろ
だからいらない
馬鹿なのかな?
テストコードのテストなんてお前したことないだろ?
世の中の誰もしたことないわw
そんなものありはしないんだから
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
> で済むはずが
だめでしょ?レビューが正しいかをテストしなきゃwww
> テストコードがソースコードである以上テストしないわけにはいかんだろ
だからいらない
馬鹿なのかな?
テストコードのテストなんてお前したことないだろ?
世の中の誰もしたことないわw
そんなものありはしないんだから
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
> で済むはずが
だめでしょ?レビューが正しいかをテストしなきゃwww
449デフォルトの名無しさん
2021/02/19(金) 11:45:25.31ID:3OrjGIvj450デフォルトの名無しさん
2021/02/19(金) 11:47:16.24ID:3OrjGIvj 間違えた
レビューが正しいかのテストが適切かどうかもテストしよう
だった
レビューが正しいかのテストが適切かどうかもテストしよう
だった
451デフォルトの名無しさん
2021/02/19(金) 11:50:29.27ID:RipgTCDE レビューした結果もちゃんと記録しないといけないからな
レビューの結果をドキュメントとして残すなら
そのドキュメントのレビューも必要になる
当然の帰結だ
レビューの結果をドキュメントとして残すなら
そのドキュメントのレビューも必要になる
当然の帰結だ
452デフォルトの名無しさん
2021/02/19(金) 11:52:44.73ID:wrciXaB+ 単体テストの範囲でこんな凝った仕組みいらんよ
一番やりたい結合は今度セッティングのが時間かかるんで
一番やりたい結合は今度セッティングのが時間かかるんで
453デフォルトの名無しさん
2021/02/19(金) 12:21:07.58ID:RipgTCDE 「結合テストはすごく時間がかかる」
え?なんで?
「単体テストでやるべきことも
全部結合テストで手動でテストやってるからさ!」
↑馬鹿じゃね?
え?なんで?
「単体テストでやるべきことも
全部結合テストで手動でテストやってるからさ!」
↑馬鹿じゃね?
454デフォルトの名無しさん
2021/02/19(金) 12:30:35.44ID:F46jrkhY 敢えて皆と同じくらいテストコードの書き方を知ってる自分が弁護するけど
class クソクラス
頻繁に仕様が変わるメソッド
クソコード
不具合が生じると仕様が変わるメソッド
クソコード
思考停止でプライベート変数のgetter
思考停止の変数リターン
思考停止でプライベート変数のsetter
思考停止の変数代入
みたいなクラスを単体テストするところを考えてみよう
他の皆の無駄じゃない主張は疑いもなく事実だろうけど、テストコードは無駄という主張はある意味では事実なのだと思う
これは...扱うコードの質の違いが生んだ悲劇
そう、事故だったんだ
テストコード厨呼ばわりについては...うん(諦め)
class クソクラス
頻繁に仕様が変わるメソッド
クソコード
不具合が生じると仕様が変わるメソッド
クソコード
思考停止でプライベート変数のgetter
思考停止の変数リターン
思考停止でプライベート変数のsetter
思考停止の変数代入
みたいなクラスを単体テストするところを考えてみよう
他の皆の無駄じゃない主張は疑いもなく事実だろうけど、テストコードは無駄という主張はある意味では事実なのだと思う
これは...扱うコードの質の違いが生んだ悲劇
そう、事故だったんだ
テストコード厨呼ばわりについては...うん(諦め)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★4 [ぐれ★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★5 [ぐれ★]
- 【速報】高市総理が官邸入り [Hitzeschleier★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 【速報】高市早苗、起床 [779938112]
- 早く世界滅べ
- 【速報】ぺこーらさん、巨大地震後も配信を続けるwwwwwwwwwwwwwwwww
- お前らはデブ
