解析結果の見かた
Siderのユニークな手法である「パターン分析」の結果は識別番号に-ss-があるファイルです。そのファイルをブラウザで開いてみましょう。
左右のコードは重複コードを示しており、コードの上部にあるファイル名を見ると、この結果では異なるファイルに存在していることがわかります。
右のファイルの緑色にハイライトした3か所のワードはWindowStoreBuilderですが、左のファイルの同じ個所に着目すると2か所がTimeOrderedWindowStoreBuilderで、赤色にハイライトしたワードはそれとは異なるWindowStoreBuilderです。
このチケットで我々がこのプロジェクトのメンテナーに確認したように、この赤色の箇所もTimeOrderedWindowStoreBuilderであるべきです。
あなたのレポジトリで解析を実行
さあ、次はあなたのリポジトリをSider Scan で解析してみましょう。設定ファイル .siderscan.json を配置し、レポートファイルを保存するreportsフォルダを作成することで、任意のレポジトリで解析を実行することができます。
hello_siderフォルダにある設定ファイルをコピーするのが簡単です。以下のように実行してください。
$ cp hello_sider/.siderscan.json your_repository/ $ mkdir your_repository/reports $ cd your_repository $ docker run -v "$(pwd)":/builds -w /builds --rm sider/sider_scan_runner:latest sider run /builds
再度解析を実行する
再度実行すると以下のようなエラーメッセージがコンソールに表示されます。
$ docker run -v "$(pwd)":/builds -w /builds --rm sider/sider_scan_runner:latest sider run /builds [2022-05-18T08:17:35.054] [WARN] default - Contact email address is not specified. Please set `enableSiderScanTracing.userEmail` on your configration file (e.g.: .siderscan.json).
Free版のご使用を継続するには以下のように設定ファイル .siderscan.json にメールアドレスを記入する必要があります。メールアドレスを記入することで、いつまでも無償でお使いただくことができます。
{ "enableSiderScanTracing": { "userEmail": "あなたのメールアドレス" }, "report": { "method": "file", "file": { "outputDirectory": "reports" } } }
もう一度、docker run コマンドで実行してみましょう。
$ docker run -v "$(pwd)":/builds -w /builds --rm sider/sider_scan_runner:latest sider run /builds
いかがでしょうか?何か有益な指摘は出ましたか?何も指摘が出なかったら、おめでとうございます!逆に今回は指摘が出なかったとしても、しばらく定期的に使ってみて下さい。日々のコードベースの増加とともに、重複コードに起因する問題の発生率は上がっていきます。