解析結果をみてみよう!

解析結果の見かた

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

いかがでしょうか?何か有益な指摘は出ましたか?何も指摘が出なかったら、おめでとうございます!逆に今回は指摘が出なかったとしても、しばらく定期的に使ってみて下さい。日々のコードベースの増加とともに、重複コードに起因する問題の発生率は上がっていきます。