私は大規模なコード ベースを持っており、あちこちに繰り返される、またはほぼ繰り返されるコードがたくさんあります。コードが取得できるのと同じくらい unDRY ですが、「重複」を追跡するのは難しいので、何かツールがあるかどうか疑問に思っていました。可能性のある DRYable コード (差分ツールやハミング距離アナライザーなど) を見つけるのに、言語固有の知識などは必要ありません。
では、このようなツールとしての手がかりはありますか?
私は大規模なコード ベースを持っており、あちこちに繰り返される、またはほぼ繰り返されるコードがたくさんあります。コードが取得できるのと同じくらい unDRY ですが、「重複」を追跡するのは難しいので、何かツールがあるかどうか疑問に思っていました。可能性のある DRYable コード (差分ツールやハミング距離アナライザーなど) を見つけるのに、言語固有の知識などは必要ありません。
では、このようなツールとしての手がかりはありますか?
Ruby で作業している場合は、これを試すことができます。
SemanticDesignsのCloneDrは、多数の異なるプログラミング言語で重複コードを見つける商用製品です。 http://www.semdesigns.com/Products/Clone/index.html
大企業はこの製品を買う余裕があります。個人...それほど多くはありません。このようなオープンソースプロジェクトがあったらいいのにと思います。取り組むのは楽しいプロジェクトかもしれません。ある程度の時間を持っているプログラマーのコミュニティしか知らなかったとしたら...
Semantic Designs のCloneDRは、言語構造に基づいて正確な重複クローンとニアミス重複クローンを検出するため、空白の変更や改行、コメントの挿入/変更、さらには変数名の変更にだまされることはありません。
C、C++、C#、Java、COBOL、PHP、Python、Fortran、Ada などで動作するプロダクション パーサー フロント エンドを活用します。
Web サイトには、さまざまな言語のクローン分析レポートの例が多数あります。