このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
クソコードとは何か
■ このスレッドは過去ログ倉庫に格納されています
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
2021/01/30(土) 17:33:42.44ID:BjNTZWUI
もうレスバの予感しかしない。
産まれたての子鹿のように震えてるよ。
産まれたての子鹿のように震えてるよ。
2021/01/31(日) 10:20:47.27ID:9VN6dodl
>>1
クソはお前の頭だよ
クソはお前の頭だよ
4デフォルトの名無しさん
2021/01/31(日) 11:28:04.42ID:X7lGC0go iostream ωωω
2021/01/31(日) 12:06:18.22ID:otlkJ8kc
>>3
staticおじさん乙
staticおじさん乙
2021/01/31(日) 12:22:48.25ID:Nt4hAxS1
開幕から自分のコードに突き刺さって痛い
7デフォルトの名無しさん
2021/01/31(日) 12:46:25.58ID:I1+jaQmy . /⌒ヽ
∩ ^ω^) な ん だ
| ⊂ノ
| _⊃
し ⌒. ___
_/ ⌒ ⌒ \ うん、うん、
/)) (●) (●) ヽ それで?
|∩ (_人_) |
/ ノ、_ヽノ_ノ ̄)
/ / /フ_/
L_/\ \(
∩ ^ω^) な ん だ
| ⊂ノ
| _⊃
し ⌒. ___
_/ ⌒ ⌒ \ うん、うん、
/)) (●) (●) ヽ それで?
|∩ (_人_) |
/ ノ、_ヽノ_ノ ̄)
/ / /フ_/
L_/\ \(
2021/01/31(日) 12:59:59.35ID:Nt4hAxS1
テストコードが無いのにテストしたとか言うプログラマーの提出するコード
2021/01/31(日) 16:11:11.70ID:MhKR2tlg
同じコードを何度も書く
2021/01/31(日) 16:33:43.28ID:Kwx3DUOx
コードとコードつなぎ合わせて一つのプログラム作ったけどごちゃごちゃでクソコードになってたw
2021/01/31(日) 16:59:37.31ID:Ti7TRi+9
function getPrice(id) {
const price = clothPrice.filter({ id }).first()
return price
}
はい、どこがクソか指摘してみて
const price = clothPrice.filter({ id }).first()
return price
}
はい、どこがクソか指摘してみて
2021/01/31(日) 17:27:33.78ID:JUmaLjMc
どこもクソじゃない
2021/01/31(日) 17:28:15.94ID:TZSorCef
2021/01/31(日) 17:29:51.90ID:JUmaLjMc
>>13
理由を言えないならそれはレビューではない
理由を言えないならそれはレビューではない
2021/01/31(日) 17:33:42.78ID:TZSorCef
まず、このコードを見てクソだと気がつけない人相手だと、言い方が重要。
だから、説明に困ってる。
なぜ、気が付かないのかとか。
考えてるだけだよ。気がついた人は先に理由を述べてほしいが。
だから、説明に困ってる。
なぜ、気が付かないのかとか。
考えてるだけだよ。気がついた人は先に理由を述べてほしいが。
2021/01/31(日) 17:35:04.85ID:JUmaLjMc
2021/01/31(日) 17:40:45.07ID:TZSorCef
getPrice(id) 関数とclothPrice.filter({ id }).first()
ってやってる事は一緒だよね?
責務も殆ど一緒。
些細な違いと言えばfirst以外を呼べなくしたことだが...
たぶん、インスタンスの名称からしてclothPriceをユーザー側に隠蔽する必要も無いのに隠蔽し、挙げ句に役割のかぶったほぼ無意味な関数を無駄に増やしてしまってる。
だから、クソ...だと思った。
ってやってる事は一緒だよね?
責務も殆ど一緒。
些細な違いと言えばfirst以外を呼べなくしたことだが...
たぶん、インスタンスの名称からしてclothPriceをユーザー側に隠蔽する必要も無いのに隠蔽し、挙げ句に役割のかぶったほぼ無意味な関数を無駄に増やしてしまってる。
だから、クソ...だと思った。
2021/01/31(日) 17:42:50.72ID:TZSorCef
あと、一言で言えば...もしかしてドメインモデル貧血症?
2021/01/31(日) 17:46:41.31ID:JUmaLjMc
> getPrice(id) 関数とclothPrice.filter({ id }).first()
> ってやってる事は一緒だよね?
関数とその中のコードが
やってることが一緒になるのは当たり前です。
関数にする意味は、コードの可読性を上げるためです。
「clothPrice.filter({ id }).first()って何やってるの?」
「Priceをgetしてます!( getPrice(id))!」
という会話がコードレビューであるだろうなと少しでも思ったら
それは関数にすることで可読性が上がっているということです。
> ってやってる事は一緒だよね?
関数とその中のコードが
やってることが一緒になるのは当たり前です。
関数にする意味は、コードの可読性を上げるためです。
「clothPrice.filter({ id }).first()って何やってるの?」
「Priceをgetしてます!( getPrice(id))!」
という会話がコードレビューであるだろうなと少しでも思ったら
それは関数にすることで可読性が上がっているということです。
2021/01/31(日) 17:57:42.08ID:TZSorCef
>>19
> > getPrice(id) 関数とclothPrice.filter({ id }).first()
> > ってやってる事は一緒だよね?
>
> 関数とその中のコードが
> やってることが一緒になるのは当たり前です。
実装対象の仕様が1行程度のコードで住んでいる点をまず気にして。
> 関数にする意味は、コードの可読性を上げるためです。
可読性は上がったのだろうか?
だって、何のインスタンスのオブジェクトが返されるか名前から想像できますか?
> > getPrice(id) 関数とclothPrice.filter({ id }).first()
> > ってやってる事は一緒だよね?
>
> 関数とその中のコードが
> やってることが一緒になるのは当たり前です。
実装対象の仕様が1行程度のコードで住んでいる点をまず気にして。
> 関数にする意味は、コードの可読性を上げるためです。
可読性は上がったのだろうか?
だって、何のインスタンスのオブジェクトが返されるか名前から想像できますか?
2021/01/31(日) 18:00:20.47ID:JUmaLjMc
> だって、何のインスタンスのオブジェクトが返されるか名前から想像できますか?
逆。「何のインスタンスのオブジェクトが返されるか」を意識してはいけない。
それはかっこいい言葉で言うならデメテル法則に反している
実装の詳細を意識させるな
逆。「何のインスタンスのオブジェクトが返されるか」を意識してはいけない。
それはかっこいい言葉で言うならデメテル法則に反している
実装の詳細を意識させるな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 千葉県民だけどなんか地震あったらしいな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- 秋田大学のホームページがつながらなくなって1日以上経つのだが
- 【速報】高市早苗、起床 [779938112]
- 共産党議員「日本は中国を侵略した歴史がある」→ネトウヨ「そんな歴史は無い!捏造するな!!国家侮辱罪で逮捕だ!!!」 [314039747]
