アカウント名:
パスワード:
for (int i = 0; i < 10; i++) {for (int j = 0; j < 5; i++) {// …}}
# 1、2時間無駄にした orz
ロートルプログラマなら有りそうだ#昔FORTRANと言う言語が有ってなあ、i,j,k,l,m,nが暗黙の整数で…
疲れていたりする時にこれをやらかして懲りたので、ループ変数は i, k, m, n と区別しやすいアルファベットだけ使うようにしています。(j と l は絶対使わない)
# どこかの掲示板に書いたら馬鹿扱いされたので怖いけど、非 AC
ロートルプログラマ だから 目が...
# オレもだが
人の書いたバグだったら、気付かない自信がかなりある。
#そんなオイラも最早ロートルか…。
このバグを探すのはほんと苦労する・・
ロートルとさげずむのがやっとなんだよ、わかってやれ。
ですね。
ブレークポイント設定して、watchしてれば直ぐに解りそうなのに。でも、火を噴いてると見えないんですよねー。
つい最近これやった。デバッガでループカウンタがおかしいことには気づいてたけど、スタック破壊を疑って延々と違うところを探してた。
そこがおかしいと気づけばね。気がつきさえすればばあとは見てれば分かる。
しかしたとえば何万行とあるコードの途中でこういうのが挟まれていて、バグの症状として分かるのは「計算結果がおかしい」とかのまま、「どこがおかしいか」がわからないまま、ブレークポイントをかたっぱしから付けていても非常に効率が悪く、簡単に1~2時間くらいは時間を無駄にする。
「(バグのあると分かってる場所に)ブレークポイント設定すれば簡単」などと言えるのは、本当のデバッグをまだ経験してないからではないか。
え、普通モジュールごとにデバッグして問題なくなったら最後に一本につなげるんじゃないですか。
あ、もしかして開発側じゃなくて、最後にできた完成品βをプレイして延々デバッグするほうですか。
「#俺が見たクソコード選手権」だから、基本的に挙がってるのは他人が書いたソースの引継ぎや受け入れデバッグだと思われる。
# 別の人が書いたけどバグだらけだからどうにかしてくれ言うな始めっから俺に担当振れようわーん(ノД`)
お仕事には納期というものがあるので、問題なくなるまでデバッグするのを待ってられないというのも普通です。そこで、ある程度のところで区切って結合テストに入ることになるわけですが、結合テストの初期段階では「単体テストで対策しておかないといけないバグ」がわらわら出てくるのも普通ですね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
ループ変数i, j (スコア:3)
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; i++) {
// …
}
}
# 1、2時間無駄にした orz
Re:ループ変数i, j (スコア:1)
ロートルプログラマなら有りそうだ
#昔FORTRANと言う言語が有ってなあ、i,j,k,l,m,nが暗黙の整数で…
Re:ループ変数i, j (スコア:1)
j は使わない (スコア:4, 参考になる)
疲れていたりする時にこれをやらかして懲りたので、ループ変数は i, k, m, n と区別しやすいアルファベットだけ使うようにしています。(j と l は絶対使わない)
# どこかの掲示板に書いたら馬鹿扱いされたので怖いけど、非 AC
Re:j は使わない (スコア:2)
8と間違いやすいのでB使用禁止、0と間違いやすいのでO使用禁止なと言うコード制約とか。
Re:ループ変数i, j (スコア:2)
ロートルプログラマ だから 目が...
# オレもだが
Re: (スコア:0)
人の書いたバグだったら、気付かない自信がかなりある。
#そんなオイラも最早ロートルか…。
Re: (スコア:0)
このバグを探すのはほんと苦労する・・
Re: (スコア:0)
ロートルとさげずむのがやっとなんだよ、わかってやれ。
Re: (スコア:0)
ですね。
ブレークポイント設定して、watchしてれば直ぐに解りそうなのに。
でも、火を噴いてると見えないんですよねー。
Re: (スコア:0)
つい最近これやった。
デバッガでループカウンタがおかしいことには気づいてたけど、スタック破壊を疑って延々と違うところを探してた。
Re: (スコア:0)
そこがおかしいと気づけばね。
気がつきさえすればばあとは見てれば分かる。
しかしたとえば何万行とあるコードの途中でこういうのが挟まれていて、バグの症状として分かるのは
「計算結果がおかしい」とかのまま、「どこがおかしいか」がわからないまま、ブレークポイントをかたっぱしから
付けていても非常に効率が悪く、簡単に1~2時間くらいは時間を無駄にする。
「(バグのあると分かってる場所に)ブレークポイント設定すれば簡単」
などと言えるのは、本当のデバッグをまだ経験してないからではないか。
Re: (スコア:0)
え、普通モジュールごとにデバッグして問題なくなったら
最後に一本につなげるんじゃないですか。
あ、もしかして開発側じゃなくて、最後にできた完成品βをプレイして
延々デバッグするほうですか。
Re: (スコア:0)
「#俺が見たクソコード選手権」だから、基本的に挙がってるのは他人が書いたソースの引継ぎや受け入れデバッグだと思われる。
# 別の人が書いたけどバグだらけだからどうにかしてくれ言うな始めっから俺に担当振れようわーん(ノД`)
Re: (スコア:0)
お仕事には納期というものがあるので、問題なくなるまでデバッグするのを待ってられないというのも普通です。
そこで、ある程度のところで区切って結合テストに入ることになるわけですが、結合テストの初期段階では「単体テストで対策しておかないといけないバグ」がわらわら出てくるのも普通ですね。