見出し画像

CloneTrackerが判定する4種類のコピペコードとは!?

前回の記事では、「CloneTrackerとは何であり、何でないか」を紹介しました。CloneTrackerを口頭で説明する際に、よく尋ねられるのは既存のコード解析ツールとの違いです。その違いについて説明していますので、興味のある方はぜひ読んでみてください。

今回の記事では、CloneTrackerが判定する4種類のコピペコードについてご紹介したいと思います。


■CloneTrackerが判定する4種類のコピペコード

CloneTrackerでは、一つ前のcommitの内容と最新のcommitの内容を参照して、コピペコードを判定します。判定されたコピペコードは、CloneTrackerの解析結果一覧画面で、判定に応じてアイコン表示されます。

解析結果の一覧画面

判定アイコンは4種類あり、それぞれのアイコンの意味を説明いたします。

・緑色アイコン:変更を加えられていないコピペコード

こちらはそのままですが、検知されてから変更を加えられていないコピペコードです。当然ですが、変更がないので「変更忘れ」の可能性もありません。これまでに変更がなかったため、今後も変更がある可能性は低く、したがって「変更忘れ」が発生する可能性も低いです。解析結果一覧画面では、緑色のアイコンで表示されており、問題のないコピペコードです。

※CloneTrackerが参照する変更履歴より前に変更が加えられているコピペコードは、変更が加えられていないコピペコードとして、緑色アイコンで表示されます。(2023年11/27日時点)

・黄色アイコン:両方に変更を加えられたコピペコード

コピペコードの両方に変更が加えられているコピペコードです。両方に変更が加えられているため、問題ないコピペコードです。ただし、何らかの変更に追従して両方とも変更する必要があるコピペコードであるため、今後は「変更忘れ」に注意する必要があるでしょう。この状態のコピペコードは黄色アイコンで表示されます。

・赤色アイコン:「変更忘れ」の可能性があるコピペコード

最新の状態で「変更忘れ」の可能性があるコピペコードです。片方のファイルだけに変更が加えられ、もう片方のファイルには変更が加えらえていない場合、「変更忘れ」が発生している可能性があります。すぐにもう片方のファイルにも変更を加える必要があるかどうか確認しましょう。この状態のコピペコードは赤色アイコンで表示され、ユーザーにプッシュ通知が表示されます。

・紫色アイコン:「変更忘れ」が修正されたコピペコード

「変更忘れ」が修正された、つまり「変更忘れ」が発生していたファイルに、もう片方のファイルと同じ変更が加えられて、「変更忘れ」が解消されたコピペコードになります。「変更忘れ」が解消されたということは、そのままの状態では問題が起こってしまう可能性が高かったと言えるでしょう。何らかの変更に追従する形で、それぞれに同じ変更を加える必要があるコピペコードです。最新の状態では問題はありませんが、今後も注意すべきコピペコードです。この状態のコピペコードは紫色アイコンで表示されます。

■まとめ

以上、CloneTrackerが判定する4種類のコピペコードのご紹介でした。
解析結果一覧画面に赤色のアイコンがあった場合は、慎重にチェックしてみて下さい。

4種類の判定まとめ