1

杖にログメッセージを無視させる方法はありますか?

たとえば、次のようなログ メッセージがあります。

logger.debug { "something happened that you should know about" }

これによりメソッドが複雑になりますが、必要な複雑さであるため、ABC の複雑さの測定に含めたくありません。

デバッグ ステートメントの周りのブロックを削除すると、複雑さが軽減されますが、メソッドの実行時に文字列を評価する必要があるため、コードの速度も低下します。速度の向上が必要です。

4

1 に答える 1

1

すぐにこれを行う方法はありませんが、AbcCheck特定の AST ノードの例外を追加するようにカスタマイズできます: https://github.com/square/cane/blob/master/lib/cane/abc_check.rb #L51

実際には、メソッドのロギングが問題になるほど複雑になる場合は、通常、そのメソッドを分割することが理にかなっていることがわかりました。そうでない場合は、低いほど良いとは限らないことに注意してください。cane の目的は、誤って複雑なメソッドをコミットするのを防ぐことであり、スコアが最も低いことに対して報酬を与えることではありません。

特定のファイルを除外する機能も追加されました。これは、質問に直接対処するものではありませんが、役立つ場合があります。README の「除外の定義」セクションを参照してください。

于 2012-07-21T14:37:36.980 に答える