2

コードを何度も繰り返した後、前のリビジョンでは意味があったが、新しいリビジョンではあまり役に立たない関数やクラス、またはその他のコード行が残っていると感じることがよくあります。プロファイラーは、テスト ケースを実行したときにコードのどの部分が呼び出されたかを教えてくれることを知っていますか? しかし、コードのどの部分を削除するために呼び出されなかったのかを特定して、残っている部分を読みやすくするにはどうすればよいでしょうか? たとえば、コード内のどの関数がどこからも呼び出されておらず、安全に削除できるかを簡単に知る方法はありますか? 小さなコード ベースにとっては些細な問題のように聞こえるかもしれませんが、コード ベースが何年にもわたって成長するにつれて、これは重要な問題になり、ささいな問題ではなくなります。

質問を要約すると、さまざまな言語について、デッドコードを削除するための最良の方法は何ですか? これに対する言語にとらわれない解決策または戦略はありますか。それとも、各言語がデッド コードを識別するためのツールを提供しますか。

私たちは通常、Java、Python、または Objective-C でプログラミングします。

4

3 に答える 3

3

探している用語は「コード カバレッジ」であり、その情報を生成するさまざまなツールがあります。ただし、そのようなツールで「デッドコード」を検出できるようにするには、コードを介して可能なすべてのパスを実行する必要がありますが、これは非常に広範なテスト セットでのみ可能です

ほとんどのコンパイラには、ある程度のデッド コード検出機能がありますが、プログラム ロジックなどのために呼び出されることのないコードではなく、呼び出される可能性のないコードのみを検出します。

編集:

特に Python の場合: Python コードで未使用の関数を見つけるにはどうすればよいですか?

for Java: Java プロジェクトで未使用/デッド コードを見つける方法Java: デッド コードの削除

Objective-C の場合: Xcode -- プロジェクト内のデッド メソッドの検索Objective-C コードのクリーンアップ

于 2011-04-06T17:58:27.483 に答える