質問

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


編集:

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

役に立ちましたか?

解決

0のアクティブコールで、近い将来に使用される可能性はありません。また、SVN(ソース管理)を使用しているため、後で必要になった場合に備えて、コメントアウトしないようにしています。

他のヒント

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

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

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

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

まもなくそれについて考えた後、次の3つのポイントを思いつきました。

  • リファクタリングが必要なコードにすることができます
  • これ以上呼び出されないコードにすることができます(以前のバージョンの残り)
  • スタイルガイドやコーディング方法に当てはまらないコードでも構いません

もっとたくさんあると思いますが、それが私が望まないコードを定義する方法です。

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

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

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

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

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top