2

「不要なコード」をどのように定義しますか?


編集:

IMHO、アクティブな呼び出しメンバーが 0 のコード メンバー (再帰的にチェック) は不要なコードです。(関数、メソッド、プロパティ、変数はメンバーです)

4

8 に答える 8

2

不要なコードの私の定義は次のとおりです。

  • 実行されないコードは自重です。(実際のコードの[悪意のある]ペイロードでない限り、それは別の話です:-))
  • 複数回繰り返されるコードは、製品のコストを増加させます。
  • 回帰テストできないコードは、製品のコストも増加させます。

そのようなコードを削除するかリファクタリングすることはできますが、そのままにしておくのは望ましくありません。

于 2009-03-05T10:00:54.840 に答える
1

アクティブな通話は 0 で、近い将来に使用する可能性はありません。また、SVN(ソース管理)を使用しているため、後で必要になった場合に備えて、何もコメントアウトしないことを好みます。

于 2009-03-05T10:49:50.213 に答える
1

あなたが他のスレッドで言ったように、どこでもまったく使用されていないコードはほとんど不要です。それを見つける方法については、たとえば、Java を使用している場合は FindBugs または CheckStyle をお勧めします。これらのツールは、関数がどこでも使用されているかどうかを確認し、使用されていない場合は未使用としてマークするためです。不要な重量を取り除くのに非常に便利です。

于 2009-03-05T09:53:02.193 に答える
1

ざっと考えた結果、以下の3点に行き着きました。

  • リファクタリングが必要なコードである可能性があります
  • もう呼び出されないコードである可能性があります (以前のバージョンの残り物)
  • スタイルガイドとコーディング方法に当てはまらないコードである可能性があります

他にもたくさんあると思いますが、それが不要なコードを定義する方法です。

于 2009-03-05T09:54:02.033 に答える
1

Java では、メソッドまたはクラスを @Deprecated でマークします。

于 2009-03-05T09:54:16.447 に答える
1

アクティブな呼び出しメンバーを持たないPRIVATEコード メンバー (再帰的にチェック)。そうしないと、コードがスコープ分析外で使用されていないかどうかわかりません。

于 2009-03-05T09:59:01.773 に答える
0

すでに投稿されているものもありますが、ここに別のものがあります。ほとんど同じことを行う関数です。(小さな変数の変更のみであるため、関数全体がコピーペーストされ、その変数が変更されます)

于 2009-03-05T10:58:33.690 に答える
0

通常、私は自分のコンパイラーにできるだけうるさくするように指示します。これにより、検査する必要があるものの 60% が選択されます。(VCS に確認した後) 数か月前の未使用の関数は、作成者が実際にいつ使用されるかを教えてくれない限り、通常は破棄されます。プロトタイプが欠けているものも即座に疑われます。

自動ハウス クリーニングを実装しようとすることは、ロシアン ルーレットを「安全に」プレイできることを保証する USB デバイスを作ろうとするようなものだと思います。

チェックするのが最も難しい部分は、ビルド システムに追加されたコンポーネントです。それらに気付く人はほとんどおらず、未使用のクラッジがコケを集めるために残されています。

それを超えて、私は通常、コードが欲しいです。その作成者に少しリファクタリングして、プロジェクトの残りの部分と同じスタイルにしてもらいたいだけです。

もう 1 つの便利なツールはdoxygenです。これは、ソース ツリー内の関係を (視覚的に) 確認するのに役立ちます。ただし、静的シンボル/オブジェクトを抽出しないように設定されている場合は、完全ではありません。

于 2009-03-05T09:59:57.557 に答える