まとめの限定公開に「リンク限定」が追加されました。URLを伝えてまとめを共有しよう!

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

ハッシュタグ #俺が見たクソコード選手権 が賑わっていて面白かったのでまとめてみました。 こちらに簡単な補足説明を用意しました。よろしければどうぞ http://elephnote.com/blog/archives/874 気持ちのわかるものから全く意図不明なものまで。 続きを読む
プログラミング コード
241859view 63コメント
338
Norihisa Miyakawa @m_nori
個人的にはこれが一番衝撃的だった。 きっと何かトラウマがあったんだと思う。 x = y; x = y; // 不安だからもう一回 #俺が見たクソコード選手権
条件分岐編
EOF @eofor0
一体何が彼を不安にさせたのだろう x=1; if(x == 1){ ... } #俺が見たクソコード選手権
(´◕ω◕`)enter @4129enter
if (1 == 2) {...} これだわ・・・哲学やねんなもう・・・ #俺が見たクソコード選手権
tanima @tanima215
//aがbの場合 if(a==b) { //aにbを設定する a=b } #俺が見たクソコード選手権
EOF @eofor0
if(false){ printf("エラーです"); } そうですねエラーですね #俺が見たクソコード選手権
ぽかん @pokarn
人物データの年齢で処理分岐を行う(○歳以上の時~とか)ところの記述。 if(birthday <= 20130805 ){...} 多分毎年改修するんじゃないかな。 #俺が見たクソコード選手権
はと @dovecoocoo
if (5 <= n) { /* 5超えた処理 */} else if (10 <= n) { /* 10超えた処理 */} 最近見た奴。下通らんわ。 #俺が見たクソコード選手権
加藤 匠 @morisoba0121
if( ){ 処理 } else{ // ここが処理されたらバグ printf("これはありえない1"); } みたいなやつ。まあ自分の作ったやつなんだけど。 #俺が見たクソコード選手権
ひたすら膨れ上がるソースコード

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

Tomoaki Masuda @moonmile
#俺が見たクソコード選手権 for ( i=0; i<10; i++ ) { switch ( i ) { case 0:...;break; case 1:...; break; case 2:...; break; } } うちの奥さんが(略
Fujio Kojima @Fujiwo
int n; switch (x) { case 0: n = 0; break; case 1: n = 1; break; case 2: n = 2; break; …ずっと続く… } #俺が見たクソコード選手権
みかげあすか @mkgask
3000行に及ぶ約100個のcaseが並ぶ1つのswitch文 #俺が見たクソコード選手権
EOF @eofor0
x = 処理回数; if(x == 0) return(); 処理; if(x == 1) return(); 処理; if(x == 2) return(); 処理; if(x == 3) return(); 処理; ... forさんは死んだの? #俺が見たクソコード選手権
みす @mithrandir3440
新人の頃、同期でどうしてもループが理解できない人がいたなぁ。ループ回数分コード書いてた。 #俺が見たクソコード選手権
リーネコ(ぽのか) @rhyneko
private static final string CONSTANT_ONE = "1"; private static final string CONSTANT_TWO = "2"; ・・・ #俺が見たクソコード選手権 マジックナンバー禁止とは言ったけどさ・・・
らーし @ra_si
#define ZERO 0 // 0 #define ONE 1 // 1 #define TWO 2 // 2 これが100まで続いてた #俺が見たクソコード選手権
Pepo @ 8Hz @pepo192
class Hoge1{ //...// } class Hoge2{ //...// } class Hoge3{ //...// } class Hoge4..... やめろ、同じもの増やすな #俺が見たクソコード選手権
たいら @Grab_your_sword
if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; }else if(条件文){ ~~~; } #俺が見たクソコード選手権
鳥小屋 @Bird_Store
if(条件1){ if(条件2){ if(条件3){ if(条件4){ if(条件5){ if(条件6){ if(条件7){ if(条件8){ ......; }}}}}}}} #俺が見たクソコード選手権
残りを読む(71)

コメント

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