Togetter/min.tを安心してお使い頂くためのガイドラインを公開しました。

#俺が見たクソコード選手権 まとめ

ハッシュタグ #俺が見たクソコード選手権 が賑わっていて面白かったのでまとめてみました。 こちらに簡単な補足説明を用意しました。よろしければどうぞ http://elephnote.com/blog/archives/874 気持ちのわかるものから全く意図不明なものまで。 続きを読む
355
Norihisa Miyakawa @m_nori

個人的にはこれが一番衝撃的だった。 きっと何かトラウマがあったんだと思う。 x = y; x = y; // 不安だからもう一回 #俺が見たクソコード選手権

2012-04-03 22:09:25

条件分岐編

EOF(鬱注意) @eofor0

一体何が彼を不安にさせたのだろう x=1; if(x == 1){ ... } #俺が見たクソコード選手権

2013-08-06 17:29:30
(´◕ω◕`)enter @4129enter

if (1 == 2) {...} これだわ・・・哲学やねんなもう・・・ #俺が見たクソコード選手権

2013-08-06 14:41:00
tanima @tanima215

//aがbの場合 if(a==b) { //aにbを設定する a=b } #俺が見たクソコード選手権

2013-08-06 16:01:34
EOF(鬱注意) @eofor0

if(false){ printf("エラーです"); } そうですねエラーですね #俺が見たクソコード選手権

2013-08-06 17:40:15
luccafort @luccafort

x = y; y = x; if( x == y && y == x ){ //どっちも一緒! } #俺が見たクソコード選手権

2013-08-06 15:36:48
ぽかん @pokarn

人物データの年齢で処理分岐を行う(○歳以上の時~とか)ところの記述。 if(birthday <= 20130805 ){...} 多分毎年改修するんじゃないかな。 #俺が見たクソコード選手権

2013-08-06 16:10:37
はと @dovecoocoo

if (5 <= n) { /* 5超えた処理 */} else if (10 <= n) { /* 10超えた処理 */} 最近見た奴。下通らんわ。 #俺が見たクソコード選手権

2013-08-06 15:29:01
加藤 匠 @morisoba0121

if( ){ 処理 } else{ // ここが処理されたらバグ printf("これはありえない1"); } みたいなやつ。まあ自分の作ったやつなんだけど。 #俺が見たクソコード選手権

2013-08-03 02:30:05

ひたすら膨れ上がるソースコード

秘伝のソースの拡大はとどまるところを知らずに

稀Jr. @moonmile

#俺が見たクソコード選手権 for ( i=0; i<10; i++ ) { switch ( i ) { case 0:...;break; case 1:...; break; case 2:...; break; } } うちの奥さんが(略

2013-08-06 17:49:56
Fujio Kojima @Fujiwo

int n; switch (x) { case 0: n = 0; break; case 1: n = 1; break; case 2: n = 2; break; …ずっと続く… } #俺が見たクソコード選手権

2013-08-06 17:30:28
みかげあすか @mkgask

3000行に及ぶ約100個のcaseが並ぶ1つのswitch文 #俺が見たクソコード選手権

2013-08-06 15:49:29
EOF(鬱注意) @eofor0

x = 処理回数; if(x == 0) return(); 処理; if(x == 1) return(); 処理; if(x == 2) return(); 処理; if(x == 3) return(); 処理; ... forさんは死んだの? #俺が見たクソコード選手権

2013-08-06 17:44:57
みす @mithrandir3440

新人の頃、同期でどうしてもループが理解できない人がいたなぁ。ループ回数分コード書いてた。 #俺が見たクソコード選手権

2013-08-03 13:01:00
リーネコ、ぽのか、もやし、ジュウシマツ @rhyneko

private static final string CONSTANT_ONE = "1"; private static final string CONSTANT_TWO = "2"; ・・・ #俺が見たクソコード選手権 マジックナンバー禁止とは言ったけどさ・・・

2013-08-06 17:30:29
Pepo @ 8Hz @pepo192

class Hoge1{ //...// } class Hoge2{ //...// } class Hoge3{ //...// } class Hoge4..... やめろ、同じもの増やすな #俺が見たクソコード選手権

2013-08-06 17:28:50
たいら @Grab_your_sword

if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; } #俺が見たクソコード選手権

2013-08-06 16:06:20
鳥小屋 @Bird_Store

if(条件1){ if(条件2){ if(条件3){ if(条件4){ if(条件5){ if(条件6){ if(条件7){ if(条件8){ ......; }}}}}}}} #俺が見たクソコード選手権

2013-08-06 15:40:45
残りを読む(71)

コメント

虚無クロニクル @nida_001 2013年8月6日
patch4518さん以外の方の述べるクソコードが大したことなくて悲しい.やはりSI系に行かねば真のクソコードは見られないのか
10
neologcutter @neologcuter 2013年8月6日
やっぱりベーマガみたいな雑誌があればな~と思った今日この頃です。
2
うしがらいい猫 @toki_nk 2013年8月6日
ユーモアのセンスとスキルと経験が丸分かりの恐ろしいタグやで。
1
ひろっぺ@内調的手洗い&うがい学術会議 @hiroppe3rd 2013年8月6日
if (0) { /* 行が多いともはやカオス */ } を期待したけど、なかった(´Д`ა)
1
なちゃ @nachakey 2013年8月6日
for ( i=0; i<10; i++ ) { switch ( i ) { case 0:...;break; case 1:...; break; case 2:...; break; } } このパターン結構みるんだけど何でこうなるんだろ…?
1
Tsuyoshi CHO @tsuyoshi_cho 2013年8月6日
いくつかは、内容によってはトリッキーに(意図的に)やる場合があるが、それでも普通やらないし省略してる部分の内容でわかるもんなあ...
0
なちゃ @nachakey 2013年8月6日
これも何度かみた。 ’ Enabledする button1.Enabled = False いやいやおかしいから。 意味考えようぜ…
0
たけ爺 @take_ji 2013年8月6日
「x = y;  x = y; // 不安だからもう一回 」 これは、許してあげていい。何か涙が出そう。
5
堀石 廉 (石華工匠) @Holyithylene 2013年8月6日
func39()みたいな命名って、状態遷移表から関数起こしするときにわりと発生する気が。機械的に名前つけるしかないから悩ましいところ。
2
T_A @takes__a 2013年8月6日
流石に20億行の人はネタじゃないのか?
1
Ka-Ka @ka_ka_xyz 2013年8月6日
Hoge hoge = null; //直後に hoge.execFuga(); 「何故か例外が発生するんですけど」じゃねーよ!恐ろしいことに新人でも学生でもなく、数年の職歴がある(はずの)Javaプログラマ平然とこういうのを書いてきた。 #俺が見たクソコード選手権
3
Naoki_O @nananao2236 2013年8月6日
常に真値になるif文は、if文自体は残したまま、無理矢理そっちに行かせたいときに使ったり…… する、よ、ね?
5
ALGO @algooooo 2013年8月6日
~.disable = true も気持ち悪いわ。
1
Ka-Ka @ka_ka_xyz 2013年8月6日
あと、PHPでforやforeach使わずにひたすらコピペで繰り返し処理してたコード。書いた人曰く「パフォーマンスアップのため」らしい。 #俺が見たクソコード選手権
2
ショウヤ @syoya0223 2013年8月6日
> スパゲティコード解読中、試しにコメントをググったら、該当のソースが出てきて、コメントも含めて丸々コピーしていた というのが判明した。 現在進行形でこれあってワロタwwwそして担当者はもういない……。 #俺が見たクソコード選手権
0
なちゃ @nachakey 2013年8月6日
algooooo ひょっとすると誤解されてるかもしれないがおかしいのはコメントな。 ’ Enabledする ていう。
0
たるたる @heporap 2013年8月7日
if(true){ 変数のスコープをこの中にとどめる } という目的があるのでは? if(false){}の使いどころはわからん。
1
椎名夏希 @417_72ki 2013年8月7日
if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; } String型でswitch使おうとした所Androidでのswitchがintしか使えないっていう制約に引っかかってしょうがなく上の形にしたことならある
0
なちゃ @nachakey 2013年8月7日
heporap それだと普通はifなしで{ローカルスコープ}だけでいいよね。
0
たるたる @heporap 2013年8月7日
nachakey 詳しくは知らないのですが、全ての言語で{}だけの記述ってできるんですかね?そういう記述ができない言語仕様ならifとか、何らかの形でスコープを区切る必要性が出てくると思います。
1
たるたる @heporap 2013年8月7日
if(time<100){}else if(time<200){}・・などのelse-if系はどうしようもないと思いますが。。。
1
tAkihiko @ATA911 2013年8月7日
if(0)はLinuxのKernelの中にあったりする。機能無効化するけど、カスタマイズする人がすぐ使える様にするためか、単に/* */でコメントアウトするのが嫌だったのかは知らないけれど。
3
tAkihiko @ATA911 2013年8月7日
10行中8行が修正マーク。100行中80行が過去のコードのコメントアウト。 #俺が見たクソコード選手権 ifのネストは許さんくせに、修正マークのネストはアリなのも糞。
1
だるま@3/14鍵島C39 @KurzweilMaster 2013年8月7日
if(num==10){point && mode = 2;}ってダメかねえ?別に構わない気がするけれど。
0
まどちん● @madscient 2013年8月7日
動かないとかコンパイル通らないとかはクソ以前の問題だし、コメントおかしいてのはコードとは関係ねえ。
0
Shantak-bird @Shantak_bird 2013年8月7日
変数宣言をコロン(:)で1行に繋げてたり 変数 i,ii,iii,iiii,iiiii,iiiiii,iiiiiii,iiiiiiii,iiiiiiiii,iiiiiiiiii,k,kk,kkk...とか視認しにくいコード見たことある
0
げれ@gelehrte @gelehrte 2013年8月7日
string a = "aaaaa".ToString() ってのは見たことある。。。不安なんだろうな・・・
0
憲之助 @kogaken1 2013年8月7日
.@nida001 そんなディープなクソコードマニアの皆様にお勧めしたい「ウンコード・マニア」。 http://unkode-mania.net/
0
愚民Artane.🦀@今上陛下より上の原発天皇陛下万歳!後、コロナは風邪じゃない@経験者は語る @Artanejp 2013年8月7日
@sinpen それは、レジスタ[xxx]のフラグを立てたりするときは普通では…そういうシーケンス(読む→書く)してやらないと動作しないレジスタとか組み込みではありますので。
0
よ どんで @unox_unox 2013年8月7日
定数名がONE、TWO…となっていて、ブチキレたことはある。先輩のコードが糞すぎて全てコメントアウトしたこともある。寂しそうに「ゴメン」って言われた。
0
よ どんで @unox_unox 2013年8月7日
たちが悪いのは、上でも上がっている、 if(x>10){}else if(x>20){} だな。自分でもTaskerでやらかしたことがある。
0
ひらの @hirano_2475 2013年8月8日
@patch4518 母語を使ったコーディングは生産性が「その人にとっては」良いんですけどね。
0
斑猫賢二(HAN-NEKO,Kenji) @Tvvitter_com 2013年8月8日
「if(isOdd == true){…}」みたいな、bool型の値をさらにtrue/falseと比較するのもきもちわるい。値自体がtrue/falseの価値をもつんだから「if(isOdd){…}」でよいのに。
0
堀石 廉 (石華工匠) @Holyithylene 2013年8月8日
hirano_2475 コメントまで英語を徹底してるならともかく、だいたいは日本語で入れてるわけで、実際のところコード部分だけ英語に拘る意味ってあんまりない気がするのです。これからの開発なら開発環境の多言語対応とか気にしなくてもいいでしょうし。
0
ばすてい @basutei_t 2013年8月9日
ニヤニヤとドキドキを同居させながら読んだ。
0
寺田33 @tera3333 2013年8月9日
int SERVER_ID = Integer.parseInt("2");みたいなのが一番見た時のダメージがでかかった。
1
ひらの @hirano_2475 2013年8月9日
Holyithylene まぁメンテナンスを誰がやるかがポイントかなぁ。
1
ひらの @hirano_2475 2013年8月9日
一番印象にのこっているのはT-SQLで数千行のコードかなぁ(メンテナンスごとに不要コードを整理しなかったことと、プロシージャを許さないという規約があっため)
0
ひらの @hirano_2475 2013年8月9日
SQLを扱うなら、お願いだからプリティプリンタくらい入れて下さい。ホントお願いです。
0
tarosuke @tarosukenet 2013年8月10日
heporap 普通に{}でくくるだけでおk。
0
tarosuke @tarosukenet 2013年8月10日
KurzweilMaster だったらPOINTを条件式に入れとけよって話だよ。
0
tarosuke @tarosukenet 2013年8月10日
半分はクソなコーディング規約が発生させているような気がする。もう半分は(お察し)。デバイスメーカーのリファレンスコードが腐ってるってのもあったなー。もうのっけから腐れ仕事orz
0
だるま@3/14鍵島C39 @KurzweilMaster 2013年8月10日
tarosukenet そりゃ周りのコード次第でしょう。point無関係なnumの評価が周りに並んでいればこの方が見通しがいい。もっとも、そんなのが大量にあったらよほどクソコードだけど。
1
Nicholai MARO @MAROCKs 2013年8月11日
ループに対して苦手感を持っている人が多いのかな? まぁ、一年や一ヶ月や一週間は「有限」だし…。(^_^;)
0
毛利 貴志蔵 @molykisizo 2013年10月3日
if(true){ これは一時的なテストコードを入れる時にはよく使うけど。
1
あっちゃん @acchan_nike 2013年10月10日
ループ1回目の処理 while(ループ続く?){ ループ2回目以降の処理} をCで見たときは驚いた。それはcobolの書き方だ。
0
ナイアル @nyal013 2013年10月10日
一部の「クソコード」に「そう書かないといけない理由(コード規約だけでなく)」が透けて見えるのがちょっと……変数域への代入が他機器への通信代わりになってる場合とかあるねん……一行移動する間に割り込みで変数の値変わってることがあるねん……
2
ビッター @domtrop0083 2014年3月16日
#ifdef AAA && BBB #define HOGE 1 #endif #ifdef AAA int main(void) { return HOGE; } #endif "AAA"だけ有効化された時に大問題で苦労した。
0
Shiva/R /dev/null @shiva5300 2014年4月19日
@eofor0 似たようなので昔while(1>0) do begin {処理} end,{pascal}とか見ました…なんで条件文を哲学的にしたのか…昔の話ですがw
0
Shiva/R /dev/null @shiva5300 2014年4月19日
@enter4129 似たようなのでwhile (1>0) do begin {処理} endってのが昔あったw
0
Shiva/R /dev/null @shiva5300 2014年4月19日
@pokarn constとか使わなかったのか…保守が大変そうなコードになりそう…
0
Shiva/R /dev/null @shiva5300 2014年4月19日
@Bird_Store なんだろう、LISPを思い出してしまったw
0
Shiva/R /dev/null @shiva5300 2014年4月19日
@hihihicky 混乱のもとになるからやらないでって教わったwこんなの書くと3日後の自分が他人になるから…orz
0
し~たin北陸 @getone 2014年4月19日
「次から翌月のメンテまで全品無税に」とか「〃単品売り可に」とかの後付条件で「でもグローバル変数や設定は変えないで」とかだと、条件をコメントアウトしてのif(false){}は記憶にある。
1
S.N.A. @snags17 2014年5月14日
「そんなコードが残ってる事情や環境がコードそのものよりクソ」なものがけっこうあるような。
2