2010-11-23 16 views
3

いくつかのレガシーコードをクリーンアップする必要があります。未使用のコードを削除することは重要なステップです。廃止されたすべての廃止されたクラス/メソッドがリストされています。

廃止予定のコードをすべて検索し、まだどこかで使用されているすべてのアイテムを削除し、使用されなくなった非推奨コードのリストを私に提供するツールはありますか?

ボーナスポイント:使用されていないコードを非推奨コードとして検出できるツールはありますか?

私はこれが決して完璧ではないことを知っていますが、私は特別な取り扱いが必要なケースを知っています(DBドライバやDIで参照されるクラスなど)。

+0

前の仕事で長年前に、私たちのコードを市販の難読化装置で実行しました。それがしたことの1つは、使用されなかったクラスとメソッドを削除することでした。つまり、リフレクションによって呼び出される可能性のあるクラスやメソッドを指摘しなければならなかったり、APIメソッドであったため、 –

+0

@Deprecated annotatinoでアノテートされているメソッドに興味がありますか?そうであれば、注釈付きのメソッド+対応するクラス名をすべて列挙するツールを書くことは、(Reflectionsを使って)かなり簡単です。 – helpermethod

+0

@Helper:それは仕事のわずか1%です。難しい作業は、すべてのコールサイトを見つけることです。 –

答えて

3

私はあなたの質問を完全には理解していません。まだ参照されているコードを非推奨にするツールが必要ですか?すべてのIDEがそれを手伝ってくれます。 @Deprecatedアノテーションを自動的に削除するのではなく、グローバルなクエリーアンド置換によって簡単に削除できます。未使用のコードを削除した後は、もちろん:

使用しないコードを削除したい場合は、以前のプロジェクトでこの目的のためにEclipseプラグインucdetectorを使用しました。実際には使用されていないコードは削除されませんが、参照を持たないメソッド、クラス、定数のリストを提供するので、自分で削除することができます。これは良いことです。

あなた自身が指摘しているように、静的解析を使用して未使用のように見えるクラス/メソッドがあります。私の意見では、これはこの作業を自動化することを不可能にしています。コーダーは、使用されていないと報告されたすべてのコードブロックを分析する必要があります。

テストカバレッジが優れている場合は、cobertura、clover、emmaなどのコードカバレッジ解析ツールを使用することもできます。

+0

ucdetectorは正しい方向に進むようです。まず、誰も使用しないすべてのクラス/メソッドが必要です。その後、私はそれからパブリックAPIを削除することができます。その後、まだ使用中のクラスのすべてのXML設定ファイルを確認できます。 –

+0

チェックしました。 ucdetectorは私が必要なものです。アノテーションが可能なので、何かがまだ使用されていることを文書化することができます。 –

0

これはあなたが望むものだと思いますが、@Deprecatedを無視します。私は、プロジェクトのコンテキストメニューに未使用のメソッドを見つけるオプションを追加していることを覚えているようです。私はそれらを書くよう

http://eclipse-tools.sourceforge.net/

+0

これ以降、これらのツールはEclipseに統合されています。これがどこに終わったのか? –

+0

3.6.1のようなものは見たことがありません。 – gubby

0

IntelliJのは、それらを識別します。自動的に削除するオプションがあるかわかりません。

+0

プロジェクト全体または現在のクラスのみですか?私。誰も呼んでいない公開方法について教えてくれますか? –

+0

あなたはプロジェクト全体で用途を見つけることができますが、私はそれがクラスごとに、メソッドごとにメソッドに基づいていると思います。 – duffymo

関連する問題