椚座です。
On Mon, 10 May 2004 14:19:37 +0900
Mitani Hiroshi <mitani.hiroshi@xxxxxxxxxxxxxxxx> wrote:
> 特に不自然じゃない、むしろ逆ということなんですね。
> 少しカルチャショックを受けましたが、大変参考になりました。
プログラムを書く立場では,「正常処理を行う条件」よりも「エラーと
なる条件」を考えて,それに引っかからなければ,正常処理をやるという
感じに考えることが多いと思いますから,そういう意味で,むしろ(A) の
書き方の方が,直感的に理解しやすく,好まれるのだと感じます。わたしも
(A) を多用します。
(A) は,エラーの条件や処理が比較的単純な場合にはよくても,複雑に
なってくると,訳が分からなくなるというのは,仰るとおりと思います。
ただ,複雑なエラーチェックは,どんな書き方をしても,見通しがあまり
良くないですよね。わたしはむしろ,何かの処理を始める直前になってから
if をネストしまくって,大量のエラーチェックをやるっていうスタイル
自体が,好きではありません。むしろ,エラーは個別にチェックを行って
おき,安全と確認されている状態にしてから正常処理を始めた方が見通しも
いいし,「チェック漏れ」みたいなバグも防げるかなと思ってます。
a = check_condition_a();
b = check_condition_b();
if (a && b) {
正常処理;
}
みたいな。
# 括弧の話ですが,カラム位置で迷うのは switch / case 文です。
椚座 淳介 (Junsuke Kunugiza)
E-Mail: jk@xxxxxxx http://www.exp.org/