先日、Rubyのコード品質向上ツールを探していたら、面白そうなpelusa gemに出会いました。チェック対象の 1 つは、特定の Ruby ファイルで使用されている else ステートメントの数です。
私の質問は、なぜこれらが悪いのですか?ステートメントが非常に複雑になることが多いことは理解していif/else
ます (そして、コードの複雑さを軽減することが目標であることがわかります) が、? なしで 2 つのケースをチェックするメソッドをどのように記述することができelse
ますか?
要約すると、2 つの質問があります。
1) コードの複雑さを軽減する以外に、else ステートメントを回避できる理由はありますか?
else
2) これは、ステートメントを使用する、私が取り組んでいるアプリのサンプル メソッドです。これなしでどうやってこれを書くの?私が考えることができる唯一のオプションは三項ステートメントですが、ここには十分なロジックがあり、三項ステートメントは実際にはより複雑で読みにくいと思います。
def deliver_email_verification_instructions
if Rails.env.test? || Rails.env.development?
deliver_email_verification_instructions!
else
delay.deliver_email_verification_instructions!
end
end
これを三項演算子で書くと、次のようになります。
def deliver_email_verification_instructions
(Rails.env.test? || Rails.env.development?) ? deliver_email_verification_instructions! : delay.deliver_email_verification_instructions!
end
そうですか?もしそうなら、その方が読みにくくありませんか?else
声明はこれを打破するのに役立ちませんか?else
私が考えていない、これを書くための別の、より良い、より少ない方法はありますか?
私はここでスタイル上の考慮事項を探していると思います。