クソコードとは何か

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

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

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

等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
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
蒸し返さなくていいから二人揃って隔離病棟池
2021/02/24(水) 07:36:31.14ID:7Ynmy8c9
>>638
とりあえずdoxygenはCにも対応してるはず
http://www.doxygen.jp/
643デフォルトの名無しさん
垢版 |
2021/02/24(水) 07:50:22.37ID:cUgjNbyW
>>640
おまえ死ねよ、しつこいよ
2021/02/24(水) 08:17:54.05ID:144B6M1D
>>641,643
お前らも相手すんな
2021/02/24(水) 08:53:02.20ID:edAGB3A3
>>642
知らなかった ありがとう
2021/02/24(水) 18:26:31.18ID:FKCMCStr
職場のクソコード

永続化する必要のない変数、全てをSQLightで管理
O/Rマッパー?何それ?
男は黙ってSQL文の文字列を埋め込め

データの取り出し方?
2021/02/24(水) 18:30:34.85ID:FKCMCStr
SELECTを書け
こうして、各種コードからSQLでアクセスするというグローバル変数共有化より恐ろしいクソコードができあがった

上司が勝手に外注に丸投げして作らせたコードが、プロジェクトメンバーでもない筈の俺の手元に何故か回ってきて発狂中
2021/02/24(水) 18:35:50.36ID:FKCMCStr
今日の心がけ◆丸投げはやめましょう

一般社団法人クソコード研究所
2021/02/25(木) 06:46:12.65ID:zWIoETxB
コメントを無駄に装飾するのやめてほしいわ
2行以上の全コメントが枠で囲ってあんの
2021/02/25(木) 07:39:27.32ID:tKZpxD44
ポインタで挫折するってよく言われてるけど
アドレスの意味がわかってないだけ
int a = 1;
int* b= a;
a = 2;
int c = *b;
これでcに2が入ってないことがわからないとか論外だろ
2021/02/25(木) 08:11:39.04ID:bxBNuN1v
>>650
ごめん、わからんわ
2021/02/25(木) 09:08:33.19ID:2DtRWZ66
>>608
手順書がかりにあるとしてもという話だよアホが
2021/02/25(木) 09:12:18.10ID:bxBNuN1v
>>652
手順書が何かを知らないのに仮にあるとしてとかアホすぎ
恥の上塗りかよw
2021/02/25(木) 09:18:01.68ID:2DtRWZ66
>>653
何か知らなくても仮定することできるよ
ブラックホールがあるとしても僕たちが吸い込まれることを恐れることはない、のように
2021/02/25(木) 09:18:59.00ID:2DtRWZ66
知ってるってことだけでマウンティングしようとしてるアホが君だよ、浅はかなのだよ
2021/02/25(木) 09:21:13.40ID:2DtRWZ66
自動テストは底辺コーダの自己満と心に刻みなさい
2021/02/25(木) 09:22:15.80ID:2DtRWZ66
テスト手順書という言葉は君の造語だと僕は思ってるけどね、一般的なものだとは思えない
2021/02/25(木) 09:23:57.48ID:2DtRWZ66
自動テスト1万回回すより手動テスト一回の方が品質高い
2021/02/25(木) 09:31:19.73ID:bxBNuN1v
>>654
手順書が何かも知らないなら前とか分からんだろw
論理的思考能力 "0" の無能乙
2021/02/25(木) 09:35:33.88ID:2DtRWZ66
>>659
ははーん君は仮定が何かを知らないようだねえw
2021/02/25(木) 09:37:40.49ID:2DtRWZ66
君は手順書wを知っていると言ってるだけの虚ろなテープレコーダーとなり下がった
2021/02/25(木) 09:40:12.87ID:2DtRWZ66
テスト手順書という言葉自体一般社会では通用しない代物だから知らなくていいものだとは思ってるが仮にそのような下賤なものがあるとしても問題ないと言ってるのだよ、ここまで噛み砕かないとわからないかな
2021/02/25(木) 09:42:43.67ID:bxBNuN1v
相変わらずキチのままだな
存在の仮定には反論してないぞ
そんなことも分かってないだろw
664デフォルトの名無しさん
垢版 |
2021/02/25(木) 10:09:07.67ID:R7WVwVFS
誰か>>650の相手してやれよ(2行目
2021/02/25(木) 11:15:52.49ID:2DtRWZ66
>>663
反論してないのな
2021/02/25(木) 11:16:02.45ID:2DtRWZ66
>>664
アンドな
2021/02/25(木) 11:18:21.06ID:2DtRWZ66
>>664
あれ、でもこれ2が入ってないことと言ってるからアンドなくていんじゃね
668デフォルトの名無しさん
垢版 |
2021/02/25(木) 11:31:45.02ID:R7WVwVFS
>>667
もちろんそうなんだけど、そもそもexceptionじゃね?
とかw
2021/02/25(木) 11:35:19.84ID:bxBNuN1v
>>664
C言語すら怪しいのにドヤってるやつの相手しろってか?w
2021/02/25(木) 11:35:58.12ID:bxBNuN1v
>>665
反論はしてない、お前のアホさを指摘してるだけw
2021/02/25(木) 12:13:25.25ID:2DtRWZ66
>>668
それはOSによるんじゃないかな
2021/02/25(木) 12:13:36.12ID:2DtRWZ66
>>670
反論してないのな
2021/02/25(木) 12:14:48.54ID:2DtRWZ66
なんだ反論してなかったのか
僕の主張が全面的に正しくて反論の余地が一切なかったということか
2021/02/25(木) 12:16:12.07ID:2DtRWZ66
2であることは保証されないよねって論旨だからOSによる動作の違いは些末なものさ
2021/02/25(木) 12:18:43.21ID:2DtRWZ66
自動テストは底辺コーダの自己満です、システムの品質は一切上がりません、自動テストは80年代の手法
676デフォルトの名無しさん
垢版 |
2021/02/25(木) 12:46:09.79ID:R7WVwVFS
環境によるって話なら2が入る可能性もあるよw
2021/02/25(木) 13:26:17.62ID:bxBNuN1v
>>668
未定義動作だからそもそもcがないとかw
2021/02/25(木) 13:26:53.04ID:bxBNuN1v
>>673
アホさの指摘には触れられないってか?w
2021/02/25(木) 14:37:56.27ID:LJq279gj
int a = 1;
int* b= a;

2行目の暗黙的変換がエラーにならないのって相当古い実装だよね。今でもあるのかな?
2021/02/25(木) 15:33:47.71ID:tKZpxD44
入ってることがわからない、だった
2021/02/25(木) 15:54:22.42ID:2DtRWZ66
>>676
それは環境依存だから保証されないよねってことさ
2021/02/25(木) 15:57:22.21ID:2DtRWZ66
>>678
その言動がアホっぽいw
2021/02/25(木) 15:58:24.50ID:2DtRWZ66
>>679
コード的にはなんの問題もないからなあ
2021/02/25(木) 16:00:03.24ID:2DtRWZ66
>>680
そこの君ぃそれはおかしいぞ君ぃ
2021/02/25(木) 16:35:21.09ID:bxBNuN1v
>>682
>>682
まあ、もうそう言うレスしかできないんだろうけど…
可哀想にw
2021/02/25(木) 16:44:31.71ID:2DtRWZ66
>>685
そっくりそのまま返すわ
2021/02/25(木) 16:45:23.32ID:2DtRWZ66
僕は鏡、君はスケベ椅子
2021/02/25(木) 16:47:45.65ID:cAbWQIRq
>>679
constraint violationなので実装依存
標準に準拠してれば最低限警告は出す
2021/02/25(木) 16:53:27.63ID:bxBNuN1v
>>686
返してどうするw
指摘に対してなにも言えないのは君ね
ちなみに反論はできないんじゃなくてする必要がないからしてないだけだから
>>663にその理由も書いてあるけど理解できてないでしょ?
690デフォルトの名無しさん
垢版 |
2021/02/25(木) 16:53:58.85ID:R7WVwVFS
>>680
int c = *b; の時、b = 1だから、1番他のint型の内容をcに入れてるよ
2021/02/25(木) 16:57:15.36ID:2DtRWZ66
>>689
はいはいまとめると反論ありませんってことな
2021/02/25(木) 17:01:11.50ID:2DtRWZ66
僕の鉄のような正論の前で反論できなさすぎて悔しくて僕の人格を貶めようと頑張っておられるところ恐縮ですが反論ないのな
693デフォルトの名無しさん
垢版 |
2021/02/25(木) 17:05:53.09ID:0Aa2beUH
あわしろ氏は、 >>692 は勉強しなおすべきと言ってたな。
2021/02/25(木) 17:22:49.64ID:bxBNuN1v
>>691-692
する必要のない反論はなくて
アホさの指摘にはぐぅの音も出なくてクヤチー
ってことなw
2021/02/25(木) 18:01:57.08ID:2DtRWZ66
>>694
反論ないのな
2021/02/25(木) 18:02:38.68ID:2DtRWZ66
>>693
あわしろってLinux板で叩かれてるやつだろ
2021/02/25(木) 18:59:36.92ID:bxBNuN1v
>>695
バカはレスできなくなると同じ内容をひたすら繰り返すようになるのな
もちろん反論は(必要ないから)ないし、アホと言う指摘に触れられたくない必死のアホがいるという事実も変えられないw
2021/02/25(木) 19:03:00.55ID:d2pfH4ce
>>697
> バカはレスできなくなると同じ内容をひたすら繰り返すようになるのな

↓これなw

675 名前:デフォルトの名無しさん[sage] 投稿日:2021/02/25(木) 12:18:43.21 ID:2DtRWZ66 [17/27]
自動テストは底辺コーダの自己満です、システムの品質は一切上がりません、自動テストは80年代の手法
2021/02/25(木) 19:29:01.20ID:NnkAM5s4
Googleのエンジニアに「自動テストは時間の無駄だから手動テストにしろ」って言えたら本物だよ
2021/02/25(木) 20:08:29.75ID:2DtRWZ66
>>698
これ正しいな
2021/02/25(木) 20:15:40.28ID:GSBW3E39
自動テストサイクルが回ってるの見たことない
2021/02/25(木) 20:16:42.74ID:d2pfH4ce
炎上の現場からお送りします。

「自動テストサイクルが回ってるの見たことない。テストする時間がない。」
2021/02/25(木) 20:17:43.83ID:2DtRWZ66
>>699
権威にすがった時点で論理的に間違ってると認めたようなもんなんだよ
2021/02/25(木) 20:20:05.02ID:2DtRWZ66
>>702
僕はテストコードにこだわって破綻したプロジェクトを経験したことある、手段にこだわって目的を見失ったパターンですわ、それ以来僕はテストコードはにわかコーダの自己満だと思うようになったのだねえ
2021/02/25(木) 20:22:11.13ID:d2pfH4ce
>>704
そのプロジェクトは権威がある所のプロジェクトですか?
それとも権威がない所のプロジェクトですか?
2021/02/25(木) 20:25:43.66ID:GSBW3E39
一回のテストで確認してるものが多すぎるのだ
ひとつの結果をチェックって
DB更新するのにレコード全体がチェック対象になんねん
■ このスレッドは過去ログ倉庫に格納されています