クソコードとは何か

■ このスレッドは過去ログ倉庫に格納されています
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
このスレはクソコードとは何かを考えるスレです。

・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況

・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人

等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
2021/02/22(月) 06:48:25.53ID:Vv8+u1qd
>>540
類は友を呼ぶってことだよw
自動テストがあるプロジェクトはたくさんある
542デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:48:33.24ID:PA6Gvk4i
プログラム分からないほうがテスターとして価値ある
時々すごい操作するし
543デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:49:22.93ID:PA6Gvk4i
メンテしなくなる自動テストのエレジー
544デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:51:06.89ID:PA6Gvk4i
もう丸1年くらいテストコード見てない
2021/02/22(月) 06:51:42.66ID:Vv8+u1qd
はい、手動テストの方が時間がかかるって
結論をそらし始めましたよw
546デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:51:53.08ID:PA6Gvk4i
ヒマなら書いたほうが良いのは認めてる
547デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:52:54.59ID:PA6Gvk4i
社員じゃないんで書きたくないというのもある
2021/02/22(月) 06:53:42.35ID:wMwiRJvv
自動テスト書いた方が早いことは自動テスト書きながら開発してるやつなら分かると思うんだ
549デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:54:15.04ID:PA6Gvk4i
エンドが書けば良いと思うんだが・・オナニーと大して変わらないんだから
550デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:57:07.17ID:PA6Gvk4i
SwaggerとかでAPI自動生成される場合は書いたほうが良いな
2021/02/22(月) 06:58:12.31ID:Vv8+u1qd
自動テストを書く時間まで積んだうえの開発コストだと思うんだが?w
手動でテストをすると、その開発コストが大きくかかる
552デフォルトの名無しさん
垢版 |
2021/02/22(月) 06:59:23.38ID:PA6Gvk4i
手動テスト要らないプロジェクトを知らない
2021/02/22(月) 07:00:39.66ID:Vv8+u1qd
手動テスト要らないなんて一言も言ってないよな
自動テストを書く時間まで積んだうえの開発コスト
全部手動でテストをすると、その開発コストが大きく跳ね上がる
554デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:02:05.20ID:PA6Gvk4i
>>553
そんな事ない、テスト観点の洗い出しが変なだけ
2021/02/22(月) 07:03:27.97ID:Vv8+u1qd
>>554
テスト観点の洗い出しが良くなれば
同じ件数のテストを手動で早く実行できるという
理由を言ってみて

手動テスト要らないなんて一言も言ってないよな
自動テストを書く時間まで積んだうえの開発コスト
全部手動でテストをすると、その開発コストが大きく跳ね上がる
556デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:04:10.61ID:PA6Gvk4i
テストコードの保守工数より手動テストしたほうが確実
557デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:04:42.42ID:PA6Gvk4i
>>555
自分で考えろ
2021/02/22(月) 07:05:28.58ID:Vv8+u1qd
やっぱり話をすり替えようとしていただけだったかw
2021/02/22(月) 07:06:08.80ID:Vv8+u1qd
具体例

俺が作ってる1万行程度のツールはテスト項目数が1000個以上ある
この項目数は多いというほどのものでもないだろう
このテストを全て自動的に実行する時間はに30秒程度

もし手動で実行するなら1つあたり10秒で終わらせられたとしても
1万秒、300倍以上もの時間がかかっている
1万秒といったら、2時間半以上にもなる
開発しながらテストとかやってられないレベル

大きなシステムではテスト項目数は数万、数十万にもなるから
テストに数日かかる。コードを修正するたびにそんな事やってられないから
手動テストはテストをサボることになる
560デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:07:12.30ID:PA6Gvk4i
いちいち理由を聞くな、ここは自分考えだけを言って
ストレス解消する便所の落書きだ
2021/02/22(月) 07:08:35.98ID:Vv8+u1qd
まあ手動のテストで1つあたり10秒って書いたけど
普通そんな時間で終わらせられないよなw

事前準備の手順があって結果のデータを見比べて
画面を注意深く観察してスクショとって
チェック表にチェック入れるんだろ?
1分でも短いかな?
2021/02/22(月) 07:08:55.27ID:Vv8+u1qd
>>560
お前がストレス解消のために書いてるってことはわかったよw
563デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:08:56.10ID:PA6Gvk4i
暇ならテスト書いていいんじゃない
2021/02/22(月) 07:10:09.10ID:Vv8+u1qd
暇だからという理由で手動テストをしてたのか?
手動テストをやめれば暇になるぞwww
565デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:10:31.54ID:PA6Gvk4i
開発工数30日とかテストなんか書けるかハゲ
2021/02/22(月) 07:11:40.21ID:Vv8+u1qd
>>565
だからテストしないと?
プロの仕事じゃないな
567デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:11:58.72ID:PA6Gvk4i
巷には短納期かつトラブル案件だらけ
2021/02/22(月) 07:12:33.00ID:Vv8+u1qd
そして短納期かつトラブル案件は自動テストがない

なるほどなw
569デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:12:50.79ID:PA6Gvk4i
悠々とテストコード書ける案件やりたいな
2021/02/22(月) 07:13:46.16ID:Vv8+u1qd
テストコード書く時間がないなら
それよりももっと時間がかかる手動テストやれるわけがないので
テストサボってるだけなんだろうな
571デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:14:21.10ID:PA6Gvk4i
テストコード工数を認めてもらえる案件やりたいな
もう単体テストはエンドでやる、みたいなのばっかり
572デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:15:19.40ID:PA6Gvk4i
そして仕様変更が来る
573デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:16:26.70ID:PA6Gvk4i
エージェントが20%とか抜いてるからエンドがコストにシビアすぎる
2021/02/22(月) 07:18:04.08ID:Vv8+u1qd
自動テストがないプロジェクトは短納期かつトラブル案件らしいw
575デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:18:22.62ID:PA6Gvk4i
もう60日以上の案件久しくやってないな
2021/02/22(月) 07:18:33.25ID:Vv8+u1qd
プロジェクトの炎上具合を測れるな
自動テストがないプロジェクトは短納期かつトラブル案件
577デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:19:07.55ID:PA6Gvk4i
自動テストとか暇な案件が羨ましいわ
2021/02/22(月) 07:19:23.92ID:Vv8+u1qd
自動テストを書いてないやつは、60日以上の案件をやらせてもらえないらしい
579デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:20:34.85ID:PA6Gvk4i
自動テストあるのにメンテしてなくて炎上するケースが50%くらいある
ずっと自動テスト工数割いてくれよ
580デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:21:38.82ID:PA6Gvk4i
60日以上の案件がほぼ無い
581デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:22:34.66ID:PA6Gvk4i
120日半年くらいあればなぁ
582デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:22:48.08ID:IPejWs3O
>>533
最近の単体テストツールは影響がないテストコードを実行しないものが多くある
583デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:23:43.26ID:PA6Gvk4i
他人の書いたテストコードのメンテが辛いのは分かる
584デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:27:46.33ID:PA6Gvk4i
メソッドを今流にメンテしたらテストコード通らないからギリギリまでママにされていて大規模改修とかやめてくれ
585デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:29:23.41ID:PA6Gvk4i
テストを直すのがめんどくさい時が多々ある
やめてくれ
586デフォルトの名無しさん
垢版 |
2021/02/22(月) 07:52:25.48ID:PA6Gvk4i
テストコードとか書かないに限るな
2021/02/22(月) 08:29:30.69ID:UqVKWzXS
平日にID真っ赤にする手動テストおじさんはNGしとけ
無視して俺らと会話しようぜ
仕事してるからレスは少なくなるけど
2021/02/22(月) 18:49:35.65ID:/OsI7R0n
本日の職場で見たクソコード

class MainActivity implement 機能Aインタフェース, 機能B,インタフェース 機能Cインタフェース...機能Mインタフェース{

}

なんで12個のインタフェース継承してるの?
円卓の騎士かな?
Androidで発生するイベント全部、1個のアクティビティに継承して実装するのやめてください実装者が死んでしまいます
2021/02/22(月) 19:43:16.58ID:FCcJxvZt
それはクソコードと言うよりクソ設計だろ
2021/02/22(月) 22:40:13.49ID:hhtkxh8a
クソコード兼クソ設計だな
2021/02/23(火) 13:35:47.17ID:q1iKZVvs
>>587
なんか話せよ
2021/02/23(火) 13:39:35.37ID:q1iKZVvs
>>559
そのテストコード書くのにかかった時間は仕様変更によりすべて無駄になる世界があるんよ、君はまだ世界の広さを知らない
2021/02/23(火) 14:42:48.42ID:iu17pC6m
>>592
仕様変更によりテスト手順書が全て無駄になる世界はないのか?w
2021/02/23(火) 16:14:44.38ID:5BmsWjYf
こいついっつもテストする時間のことを無視するよなw

テストコードを書く vs テストコードを書かないでしか比べてない
それよりも重要な何度も行うテストの時間を持ち出されたら困るのだろうな
手動で数回テストをするだけであっという間に開発コストが数倍に跳ね上がる
595デフォルトの名無しさん
垢版 |
2021/02/23(火) 16:23:12.42ID:xxo3T1mG
テスト書くのめんどくさいんで俺が抜けた後のやつに任せるわ
2021/02/23(火) 16:58:13.53ID:8QyPv/It
テストコード1回書く間に手動テスト5回はできそうなんだが?
んで1回テスト通したら次の変更までやんねーよな?
597デフォルトの名無しさん
垢版 |
2021/02/23(火) 17:21:41.87ID:0iI/BmGY
ここまでをまとめると、テストコードはSWAGGERとかで自動生成される部分のみでおk?
2021/02/23(火) 17:21:54.85ID:iu17pC6m
>>596
それ、テスト手順書書く時間入れてなくね?
2021/02/23(火) 17:48:25.42ID:q1iKZVvs
>>593
テスト手順書なんて作るん?
2021/02/23(火) 17:49:26.31ID:q1iKZVvs
>>598
テスト手順書って何?
2021/02/23(火) 17:50:39.14ID:q1iKZVvs
仕様変更があるのは手順書作る前だから問題ないのさ、でもテストコードは無駄の極み底辺コーダーの自己満なのさ
2021/02/23(火) 17:51:03.33ID:q1iKZVvs
>>597
オーケー
2021/02/23(火) 17:53:11.25ID:q1iKZVvs
ユニットテスト100回回すより総合テスト1回の方が品質高まる、実装ミスなんて現代のプログラミング環境では無視できる
2021/02/23(火) 18:07:19.13ID:5BmsWjYf
>>596
> テストコード1回書く間に手動テスト5回はできそうなんだが?
たった5回って少なすぎだろw

バグ5個見つかったらそれで終わりじゃん
605デフォルトの名無しさん
垢版 |
2021/02/23(火) 18:33:09.14ID:0iI/BmGY
flutterとかJITでガンガン テスト→修正→リファクタリング を繰り返すからテストコード要らないんだよね。
2021/02/23(火) 19:03:27.43ID:5BmsWjYf
>>605
Flutter標準のやり方でテストしてるってことかな?
どの方法を使ってるの?

Testing Flutter apps
https://flutter.dev/docs/testing

Automated testing falls into a few categories:

- A unit test tests a single function, method, or class.
- A widget test (in other UI frameworks referred to as component test) tests a single widget.
- An integration test tests a complete app or a large part of an app.
2021/02/23(火) 19:15:46.42ID:5BmsWjYf
>>606のページに書いてあった
          Unit  Widget  Integration
Confidence    Low  Higher  Highest
Maintenance cost Low  Higher  Highest
Dependencies   Few  More  Most
Execution speed  Quick  Quick  Slow


俺が言っていたことと同じだけど翻訳すると

・信頼性
 ユニットテスト:低い ウィジット:高い 統合テスト:最高
・メンテナンスコスト
 ユニットテスト:低い ウィジット:多い 統合テスト:最も多い
・依存関係
 ユニットテスト:低い ウィジット:少し依存する 統合テスト:たくさん依存する
・実行速度
 ユニットテスト:速い ウィジット:速い 統合テスト:遅い

統合テストはメンテナンスコストが悪くて遅いんだよね
2021/02/23(火) 19:44:22.51ID:iu17pC6m
>>599-600
テスト手順書知らない体なのに>>601で手順書の前とか意味不明
テスト語る前に自分の頭のデバッグしろよw
609デフォルトの名無しさん
垢版 |
2021/02/23(火) 20:57:27.28ID:0iI/BmGY
テストコードは暇なら書くレベルの価値しかない
AppleもGoogleも特に推奨してないし
2021/02/23(火) 21:01:10.20ID:5BmsWjYf
はいはい、議論の負けたから続きじゃなくて
前の話に戻して逃げるとw
611デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:03:22.33ID:0iI/BmGY
>>610
それ言うなら「議論に」かな?
日本語を勉強しよう!
2021/02/23(火) 21:04:02.68ID:5BmsWjYf
やっぱりどうでもいい指摘
2021/02/23(火) 21:05:07.62ID:5BmsWjYf
Flutterが自動テストを推奨していることをどう思うのか?

Testing Flutter apps
https://flutter.dev/docs/testing

Automated testing falls into a few categories:

- A unit test tests a single function, method, or class.
- A widget test (in other UI frameworks referred to as component test) tests a single widget.
- An integration test tests a complete app or a large part of an app.
614デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:05:55.00ID:0iI/BmGY
テストコード自動生成ツールとかあったな・・
今どこいったんだろ・・
2021/02/23(火) 21:07:29.73ID:5BmsWjYf
>>614
使えないものは消えるだけの話
自動テストに、テストコード自動生成とかいう眉唾ものは必要ない
616デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:08:51.50ID:0iI/BmGY
>>613
どこで推奨してる?五万とあるプラグインのほとんどにテストコード無いけど。
2021/02/23(火) 21:09:47.53ID:H7g3tUGv
https://developer.android.com/training/testing/fundamentals?hl=ja
2021/02/23(火) 21:10:16.06ID:5BmsWjYf
>>616
一番最初に書いてある

The more features your app has, the harder it is to test manually.
Automated tests help ensure that your app performs correctly
before you publish it, while retaining your feature and bug fix velocity.
619デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:11:47.89ID:0iI/BmGY
>>617
推奨はしてないね。
2021/02/23(火) 21:12:45.23ID:5BmsWjYf
>>619
手動テストやれって書いてある?
書いてないね
621デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:13:16.46ID:0iI/BmGY
テストコード書け、ってwarningでも見たことないし
2021/02/23(火) 21:14:20.96ID:5BmsWjYf
>>621
カバレッジがそれに相当する
テストされてる範囲が低ければエラーになったりするし
623デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:15:40.93ID:0iI/BmGY
つまり暇なら書くレベルなんだよ。
「テストコード工数が嵩んで納期を守れません」
なんてPJ無いし。
2021/02/23(火) 21:16:18.20ID:5BmsWjYf
ほーらやっぱり反論できなかったw
2021/02/23(火) 21:16:58.40ID:H7g3tUGv
>>623
根拠は?
俺はURL示したけど
あと、Developerサイトに書いてあることが推奨じゃなかったらなんなの?必須?
626デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:18:00.51ID:0iI/BmGY
Xcodeとかでもテストコードカバレージ出るけどエラーになるかな・・
627デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:20:06.97ID:0iI/BmGY
>>625
そのURLは自動テストはこうやったら良いですよ。っていう紹介ページだよ。
秋葉原のテスト専門会社に出したほうがトラブル少ないし安いし。
628デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:21:23.76ID:0iI/BmGY
自動テストは暇ならやればいいよ。
2021/02/23(火) 21:23:33.72ID:5BmsWjYf
>>627
手動テストはこうやったらいいよっていう紹介はないんですね
やっぱり紹介するに値しないものだからなんでしょうね
630デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:24:44.69ID:0iI/BmGY
>>629
その意見はなんかズレてる気がするけど・・ジジイ?
631デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:26:29.19ID:luu761LB
>>630
そいつ田中勇だよ、相手にするな
2021/02/23(火) 21:26:51.74ID:H7g3tUGv
> そのURLは自動テストはこうやったら良いですよ。っていう紹介ページだよ。
> 秋葉原のテスト専門会社に出したほうがトラブル少ないし安いし。

TDD知らないの?
2021/02/23(火) 21:28:40.06ID:2jti1hD2
時間ないから自動テスト作りながら開発するんじゃないの?
634デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:28:52.26ID:zrvRgTjD
>>632
あ、もういいです。テストコードは基本書きません。
暇なら適宜書きます。
2021/02/23(火) 21:30:42.76ID:H7g3tUGv
>>634
お前はそうなのだろうけど、他所スレでやってくれない?
ここのスレタイ読める?
636デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:37:27.80ID:ruTDgDI5
ほんとこいつまじうぜぇ
637デフォルトの名無しさん
垢版 |
2021/02/23(火) 21:55:00.29ID:zrvRgTjD
>>602
で、結論が出てるので自動テストの話は終了するか自動テストスレを立てて下さい。
2021/02/24(水) 01:17:48.29ID:edAGB3A3
モジュール仕様書って作る?javadocみたいな
cだから開発環境では作ってくれなくて、自前で用意するしかなさそうな雰囲気なんだけど自動生成してくれるツールとかない?
639デフォルトの名無しさん
垢版 |
2021/02/24(水) 01:27:10.83ID:cUgjNbyW
コレとかは違う?というかダメか。
https://gist.github.com/nafuka11/9c031f74682b1f66ccf22e7fbca9ca4b
2021/02/24(水) 05:41:22.24ID:IL+ryHZw
>>634
テストコードを書いてないあんたが忙しいというのはよくわかった
自動テストをしてないプロジェクトが炎上するのはよく聞く話だ
やっぱり忙しくなるんだね
2021/02/24(水) 07:35:11.50ID:1rMe/08W
蒸し返さなくていいから二人揃って隔離病棟池
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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