reekコードのベスト プラクティスの分析ツールとして使用しています。しかし最近、メソッド内に次のようなブール値のパラメーターがあることがわかりました。
def method (flag = true)
reek私に警告を与えます。reekが警告だと言うのはなぜですか?
reekコードのベスト プラクティスの分析ツールとして使用しています。しかし最近、メソッド内に次のようなブール値のパラメーターがあることがわかりました。
def method (flag = true)
reek私に警告を与えます。reekが警告だと言うのはなぜですか?
Reek を書く数年前に、このコードの臭いについてブログに書きました: http://silkandspinach.net/2004/07/15/void-boolean-parameters/
ブール型パラメーターの問題はすべて重複と SRP に関係しています。呼び出されたメソッドには 2 つの責任があり、呼び出し元はどちらを呼び出したいかを知っています。
フラグ変数は悪い習慣と見なされます。これは、関数が 1 つだけのことを行うべきであるという原則に本質的に違反しているためです。ブール値フラグを渡すことで、「true の場合はこれを実行し、false の場合はそれを実行する」という 2 つのことを意味します。