1

if-then-else をコーディングしていたときに、これは悪いプログラミングだと思いました。

state = "published" # state could be "published" or "draft"

...

if state == "published"
  display_production_copy
else 
  display_draft_copy
end

しかし、私がこの関数をコーディングしていたとき、私はこれを書くべきだったと思いました

state = "published" # state could be "draft"

...

case state
when "published"
  display_production_copy
when "draft"
  display_draft_copy
else
  fail "Invalid state: #{state}" # throw an exception
end

このように、誰かが「レビュー中」などの別の状態を追加し、プログラマーがこのメソッドを「更新」できなかった場合、間違ったプログラミングが実行されていました。

TRUEまたはFALSE以外の明示的な値のセットがあるすべての場合、すべてのif-then-[elseif]-else比較はcase [switch]を介して実行する必要があり、例外をスローするelseを指定する必要があると思います.

これは防御的プログラミングですか?またはパラノイア?

4

0 に答える 0