Python リファクタリングに使えるCloneDigger
Sponsored Links
皆さんこんにちは
お元気ですか。私は元気なのか・・・?
TOEICのリベンジを果たす時が来るのだろうか。
さてと、今日はリファクタリングに使えるソフトであるCloneDiggerを紹介したいと思います。
一言でいうと、ソフトウェアのクローンコードを検出=類似コードの検出を行うことです。
CloneDiggerの概要
CloneDiggerとは?
Pythonのソースコード内のClone Codeを検出します。GPL Licenseを保持しているようです。
以下、公式にあるCode Cloneのスライドより
Code Cloneとはなにか?
ソースコード内にある似ているコードのことです。
ソースコードには20%程のClone Codeがあるようです
まず、ソースコードのクローンは5-20%程あるようです。
ソースコードクローンが用いられる要因
成長戦略、メンテナンスの利点、根本的な原因、開発戦略によるものだそうです。
なぜ、ソースコードクローンはいけない?
最初に書いたコードが間違えっていると全てのコードを変更する必要がある。まぁ変更するのめんどくさいわな
どうやって検出するの?
ツリー状に構造を解析して検出するらしい。
CloneDiggerのインストール
sudo pip install clonedigger
実行
$ clonedigger [file名] Parsing clone.py ... done 1 sequences average sequence length: 4.000000 maximum sequence length: 4 Number of statements: 4 Calculating size for each statement... done Building statement hash... done Number of different hash values: 2 Building patterns... 2 patterns were discovered Choosing pattern for each statement... done Finding similar sequences of statements... 0 sequences were found Refining candidates... 0 clones were found Removing dominated clones... 0 clones were removed
とすると同じフォルダの中にoutput.htmlが存在します。
出力ファイル
htmlを見るような感じで見れば大丈夫です。
下の方を見ると以下のような感じになります。
検出されたClone分だけ存在し、青い部分が一致部分、赤い部分は異なる部分です。
要はこれを参考にしながら、自分のコードクローンを直していきましょうということです。