<< 前 ホーム 次 >>

bakaid: 20110112

昨日の話の続き。

昨日、こんなコードを話題にしたけど:

def foo
  if @a == @b
    return if @c != @d
    do_something
  end
end

で、これを見て、外側のif文は後から書き足されたんじゃ
ないかと推測するわけです。っていうのは:

def foo
  if @a == @b
    if @c == @d
      do_something
    end
  end
end

みたいな書き方だとフツーにダメなコードで。こっちは
ダメはダメなりに一貫性がある。最初にあげたコードには、
その一貫性がないわけです。一貫性のなさは、別の人が
書いたと考えるのがフツーでしょう。

で、外側のほうが書き足されたっていうのは、内側の
ほうが正しく書かれてるように見えるから。そういう
正しいコードを書く人が、外側のif文の一貫性のなさを
気にしないわけがない。やるんだったら、昨日も書いた
ように:

def foo
  return if @a != @b
  return if @c != @d
  do_something
end

くらいは書くでしょう。

で、そうすると、外側のif文を書いた人間が未熟だって
いうこともわかるわけです。どのくらい未熟かっていうと、
内側のif文がguard clauseであることに気づかない
くらいに未熟なわけです。ひょっとしたらロクにコードも
読んでないんじゃないかって疑われても仕方ない。

で、こういうことを推測したら、バージョン管理で履歴を
確かめることもありますよ。バージョン管理にはそういう
使い方もある。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails