20

近い将来、私はやや大きなプロジェクトを継承する予定です。最近、いくつかの小さな更新を行っていますが、同じ操作をわずかな違いで実行するメソッドがあるため、その一部でリファクタリングが使用される可能性があることに気付きました。

大量のソースコードを取得し、同様のコードブロックを見つけて、リファクタリングの可能性を特定できるツールがあるかどうか疑問に思いました。あいまい検索が存在する場合は、同様の操作を識別できるようにすると便利です(コードのチャックが逐語的に繰り返される以外)。

プログラムがコード自体をリファクタリングすることは期待していません。潜在的な繰り返しを特定するだけです。

私のプラットフォームはC#ですが、どのような解決策でも役に立ちます

4

7 に答える 7

8

http://www.codeplex.com/CloneDetectiveVS

「Clone Detective は Visual Studio との統合であり、C# プロジェクトを分析して、他の場所で複製されたソース コードを見つけることができます。」

コードの重複が多いプロジェクトにそれを投入すると、視覚的に多くのことが起こっています。それがClone Detectiveを初めて使用することと組み合わされると、最初は少し圧倒される可能性があります.

このツールを本当にお勧めします。それは優れています。

于 2009-07-09T15:22:14.637 に答える
5

CPDはトークン レベルで機能するため、C# では問題ないはずです。変数名やその他の識別子を因数分解するためのメカニズムもいくつかあります。

于 2009-07-09T15:18:23.317 に答える
5

使ったことはないけど、シミアンなら使えるかも

Simian (Similarity Analyser) は、Java、C#、C、C++、COBOL、Ruby、JSP、ASP、HTML、XML、Visual Basic、Groovy ソース コード、さらにはプレーン テキスト ファイルの重複を識別します。実際、simian は、ini ファイル、デプロイメント記述子など、人間が判読できる任意のファイルで使用できます。

于 2009-07-09T15:23:17.770 に答える
4

現在Duplicate Finderを使用しています。どのテキスト ファイルでも機能し、C# プロジェクトで非常にうまく使用しています。これはコマンド ラインなので、ビルド プロセスに統合しました。

于 2009-07-09T15:35:44.657 に答える
2

Simianは、C# を含むさまざまな言語のソース コードを分析できると主張する製品です。使ったことがないので、保証はできません。非商用の場合は無料で、商用プロジェクト用に販売されます。

于 2009-07-09T15:23:53.760 に答える
2

私は、Java および Ruby のコード ベースに対して Simian を数回使用しましたが、非常にうまく機能しました。c#にも対応しているようです。http://www.redhillconsulting.com.au/products/simian/overview.html

于 2009-07-09T15:24:47.703 に答える
1

プロジェクトで重複するコードを見つけようと考えている場合は、より広範な静的コード分析ツールの使用を調査することも検討する必要があります。

Sonarのようなものは、重複コード、コーディング標準、単体テスト、コード カバレッジ、複雑なコード、潜在的なバグ、コメント、設計とアーキテクチャをチェックします。

Wikipedia で静的コード分析ツールのリストを見つけることができます。

于 2011-11-22T09:10:30.533 に答える