2011年2月17日木曜日

1行1処理の嘘

よくコーディング規約で、
if文を最低3行にしなければならないようなルールを見かけます。

つまり、
if (flag) testValue = 0;
みたいに書ける場合でも、
if (flag) { 
    testValue = 0; 
}
として書かなければならない規約です。
(もう少し詳しい人が規約を書いたなら、
三項演算子の禁止もセットでしょうか?)

その理由としては、
“1行1処理”とすることが好ましいからだそうです。

まあ { } を省略するのは下品かもしれませんが、
その理由は違うんじゃないでしょうか?

適当な例ですが、
型変換や四則演算の組み合わせだけでも平気でその原則は崩れます。
Integer.valueOf("123456".substring(1, 3)) + 1000;

逐一行を分けていたら、
自分なら気が滅入ってしまいます。

だから多少省略しても許してもらえませんかねぇ?
三項演算子も使わせてもらえませんかねぇ?

※ただしコーダーばかりの開発現場を除く

0 件のコメント:

コメントを投稿