概要
特定の箇所のコードの臭いを無視したい場合
詳細
特定の箇所のコードの臭いを無視したい場合について。
metric_fuはコードのメトリクス分析をしてくれる便利なツールですが、事情つきで
臭いを放置したい場合があります。
しかし、そのままにしておくと検出結果に残り続けるためよろしくありません。
検出結果がずっと残っていると開発者は確認が必要な警告と、確認が不要な警告を判断するのが
面倒になったり、警告自体の残件数が多くなり警告があることの抵抗感がなくなり
解析結果を無視するようになります。
俗に言う割れ窓理論です。
警告は常にゼロにしたいのです。
その際にやむを得ず一部の箇所の警告を無効にしたい場合、メソッドヘッダーに下記のようにコメントをします。
# smells of :reek:UnusedParameters
実際には上記に加えて、なぜ警告を無視するのか理由を書いておくとよいでしょう。
例
Template Methodパターンを利用しているため親クラスの空メソッドは
例外を投げるコードしかありません。そのため引数を利用していません。
しかしmetric_fuのうち、ReekはこれをUnusedParametersとして検出してしますます。
この例は事情付きなので、問題なしとして検出対象外にします。
除外コメント付加前コード
class BaseHoge def hoge(msg) child_hoge msg end def child_hoge(msg) raise "not implemented!!!" end end class Hoge < BaseHoge def child_hoge(msg) puts msg end end
除外コメント前メトリクス分析結果
hoge.rb BaseHoge#child_hoge has unused parameter 'msg' UnusedParameters
除外コメント付加後コード
class BaseHoge def hoge(msg) child_hoge msg end # smells of :reek:UnusedParameters :for template method. def child_hoge(msg) raise "not implemented!!!" end end class Hoge < BaseHoge def child_hoge(msg) puts msg end end
除外コメント前メトリクス分析結果
※検出されなくなります