読者です 読者をやめる 読者になる 読者になる

ぺぷしのーげん

アプリケーションエンジニア(C#er)による雑記ブログ

思わず叫びたくなってしまった3つのソースコードたち

プログラミング

f:id:hazakurakeita:20150903180008j:plain

ぱくたそ - フリー写真素材・無料ダウンロード

ソースコードを読んでいて思わず叫びたくなることってありませんか?とはいえ静かなオフィスで大声出すわけにもいきません。背伸びしながら「うおおおおおおおお」って言うのが限界です。この叫びを申し訳ないですがブログに殴り書きます。

 

意味のない処理たち

    File.Copy("A.txt", "./Files/B.txt");
    ...
    File.Delete("./Files/B.txt");
    File.Copy("C.txt", "./Files/B.txt"); 

 どうしてこうなった。

目を疑いました。A.txtのコピーから削除までの間にB.txtにアクセスしてるなら分かります。でもその間にB.txtは一切触れられていません。なんでコピーしたんだ…。調べてみたところ、A.txtは古いファイルみたいでC.txtに変わったそうです。変わった時にA.txtのコピーの処理を消し忘れたらしい…。

 

意味深なコメント

    if(...)
    {
      // ここが実行されることはないが、一応残しておく
      ...
    }

 なんじゃこりゃああああああ。

どうして残してるんだ!?引き継いだ僕はどうすればいいのでしょう?本当に消しても大丈夫なんでしょうか。ユニットテストもないから確認するのが大変です。だから僕も残しました。これはクフ王のピラミッドみたいに永久に残ってしまうかもしれません。

 

 大事な機能が動かなくなったと思ったら

    if(False)
      // NotImportantMethod();
    VeryImportantMethod();

 うわああああああああああ。

協力会社さんからの納品物がデグレしてたので、調べてみたらこんなことに。大カッコを省略するのはいいけど、まさかこんなバグを生み出すとは衝撃的です。てかなぜif文は残してるんだ。突っ込むところが一か所じゃすまないぞこれ。

 

さあ、少しでも僕に同情してくれた方は「いいね!」やブックマークしてください!笑