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を指定する必要があると思います.
これは防御的プログラミングですか?またはパラノイア?