2013/08/06(火) [n年前の日記]
#2 [prog] if (true) { }
_#俺が見たクソコード選手権 まとめ - Togetter
さて、本来はどういう感じに書いておくのがベストなのだろう…? *1 *2
こういう細かいところって、誰でも意見を言えるから、宗教戦争になりがちだなとも思えてきた。なんだっけ…自転車置き場がどうとかそういう…。
if(true){ああ、これ、自分はよくやる…。動作確認用・後でまた復活させて使うかもしれないところをコメントアウトする代わりに、こういう書き方しますわ…。何度も有効無効を切り替えて動かす状態になってきたら、 DEBUG = true; とか if DEBUG { } みたいに意味が分かる修正をするけど。
処理
}
見た瞬間背筋が震え上がった。
#俺が見たクソコード選手権 kimagure_bito 2013-08-06 15:34:07
if(false){
printf("エラーです");
}
そうですねエラーですね
#俺が見たクソコード選手権 eofor0 2013-08-06 17:40:15
- 毎回条件分岐してるから処理の無駄だろと思う人が居るだろうけど、コンパイラの最適化処理が優秀ならどうせ該当部分はバイナリに含まれないし。最適化がヘボな言語なら、そもそも処理速度気にして書くなんて馬鹿馬鹿しいし。言語を変えたほうがいい。
- もちろん #ifdef 等使える言語ならソレ使うべき、だけど、プリプロセッサが無い言語でもこの書き方しとけば目的は果たせるし。複数の言語使ってると、どれでも使える書き方をついついうっかり(?)選んでしまいがちで。
- フツーはコメントアウトするんだろうけど、使ってるエディタ・IDEによって、コメントアウトのON/OFFが上手く行かない・オートインデントがグチャグチャになる時もあるし。エディタやIDEの糞っぷりがソースに影響を及ぼすダメ事例のような気もするけど。
- バージョン管理ツール使えと言われても、ちょこっと書いて終わりだろと思って書き始めたらこれが思いのほか長々と、てなことが…。
さて、本来はどういう感じに書いておくのがベストなのだろう…? *1 *2
こういう細かいところって、誰でも意見を言えるから、宗教戦争になりがちだなとも思えてきた。なんだっけ…自転車置き場がどうとかそういう…。
*1: 「コメントアウトしろ」派と、「バージョン管理ツール使え」派が居そうな気もするのだけど。何十行もコメントアウトされたソース見てなんとも思わんのか、てな気もするし。使い捨てになるかもと思ってるソースにバージョン管理ツールを一々使おうとするのも何だか病的じゃないか、とも。
*2: 元々の文脈では、「たぶんここに後で条件分岐が入るかも?」と思って if (true) { } を書いてる気がするんだよなあ…。実際に条件分岐が必要になった時、「ここに入れれば済む、と前任者は考えていたのか」で済むのと、「えーと、どこからどこまで処理を分ければいいんだ?」と解析させるのと、どっちがアレなんだろうという気もする。実は親切心でそういう書き方を残している可能性はないだろうか。あるいは、ソース書いた人の「思考ログ」を追いかけやすいソースとはどういうソースか、とか。そんなことを考えてしまったりもして。
*2: 元々の文脈では、「たぶんここに後で条件分岐が入るかも?」と思って if (true) { } を書いてる気がするんだよなあ…。実際に条件分岐が必要になった時、「ここに入れれば済む、と前任者は考えていたのか」で済むのと、「えーと、どこからどこまで処理を分ければいいんだ?」と解析させるのと、どっちがアレなんだろうという気もする。実は親切心でそういう書き方を残している可能性はないだろうか。あるいは、ソース書いた人の「思考ログ」を追いかけやすいソースとはどういうソースか、とか。そんなことを考えてしまったりもして。
[ ツッコむ ]
以上です。