[解決済み】Javaプロジェクトで未使用/枯れたコードを見つける方法【終了しました
質問
大規模なJavaプロジェクトで、使われていないコードや枯れたコードを見つけるために、どのようなツールを使っていますか?私たちの製品は何年も前から開発されており、もう使われていないコードを手作業で検出するのは非常に難しくなってきています。しかし、できるだけ多くの未使用のコードを削除するように努めています。
一般的な戦略やテクニック(特定のツール以外)の提案も歓迎します。
編集する なお、私たちはすでにコードカバレッジツール(Clover、IntelliJ)を使用していますが、これらはほとんど役に立ちません。死んだコードにはまだユニットテストがあり、カバーされていると表示されます。理想的なツールは、それに依存する他のコードがほとんどないコードのクラスタを識別し、ドキュメントを手動で検査できるようにすることだと思います。
解決方法は?
私なら、実行中のシステムにコード使用量のログを記録する装置を導入し、数ヶ月または数年間使用されていないコードの検査を開始します。
例えば、未使用のクラスに興味があるなら、インスタンスが作成されたときにログを取るようにすべてのクラスをインスツルメンテーションすることができます。そして、小さなスクリプトがこのログをクラスの完全なリストと比較して、使われていないクラスを見つけることができるのです。
もちろん、メソッドレベルで行う場合は、パフォーマンスを考慮する必要があります。例えば、メソッドは最初に使用されたものだけを記録することができます。私は、これがJavaでどのように行われるのが最善であるかを知りません。私たちは、Smalltalkでこれを行いました。Smalltalkは動的言語なので、実行時にコードを修正することができます。私たちは、ロギングコールを持つすべてのメソッドをインストルメント化し、メソッドが最初にロギングされた後、ロギングコードをアンインストールします。同じようなことが、Javaで静的なブーリアン・フラグでできるかもしれません...。
関連
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CodePro Analytixです。プラグインがある場所
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] IntelliJ IDEAを使用して未使用のコードをすべて見つけるにはどうすればよいですか?