質問

組み込みの静的コード分析ルールセットでVS2008を使用しています。
比較的大規模なC#ソリューション(150以上のプロジェクト)があり、一部のプロジェクト(<!> lt; 20)は静的コード分析を宗教的に使用していますが、ほとんどはそうではありません。すべてのプロジェクトで静的コード分析の実施を開始したいのですが、すべてのルールを有効にすると、現在のプロジェクトに大きな混乱が生じます。最初に有効にする必要がある静的コード分析ルールの多くはどれですか?どのルールが最大の価値を持っていますか?優先順位のトップ20を教えていただければ幸いです。
事前に感謝します、
--Ed.S。

役に立ちましたか?

解決

プロジェクトで最初に有効にする必要があるルールは、そのプロジェクトでまだ違反が発生していないルールです。これにより、追加のクリーンアップ作業を犠牲にすることなく、新しい問題の発生を回避できます。

その他については、他のプロジェクトで既にコード分析を使用していることを考えると、ルールが重大な結果をもたらす可能性が最も高い最も良い入力は、おそらくそれらのプロジェクトに取り組んでいる開発者です。開発者から有意義なフィードバックを得るためにプロジェクト間で十分なオーバーラップがない場合は、 Visual Studio 2010で設定されたMicrosoftの最小推奨ルール

特定のプロジェクトで既存の違反を実際にクリーンアップすることを計画している場合は、 VSコード分析の代わりにFxCopを使用することを検討してください。クリーンアップが完了するまで。これにより、<!> quot; for clean-up <!> quot;を維持しながら、すぐにルールをアクティブにできます。ソースコード外の既存の違反の除外。

他のヒント

StudioのルールはFxCopのルールに似ているので、最後にオンにするルールを教えてください。

国際化が予定されていない場合は、グローバリゼーションルールをオフにします。

最初にパフォーマンスルールをオフにします。必要なときに最適化する。

他の人をあなたのチームとプロジェクトに合わせます。適用できない個々のルールをオフにします。特に、命名規則を調整する必要がある場合があります。

編集:最も重要なことは、ノイズを減らすことです。すべてのプロジェクトに200の警告があり、その状態が数か月間続く場合、誰もがそれらを無視します。チームにとって重要なルールをオンにし、コードをクリーンアップして100%合格します(または例外を抑制します-例外があります。これらはガイドラインです)。その後、コードをクリーンに保ちます。

プロジェクトをローカライズする場合/プロジェクトをさまざまな国で使用する場合は、ローカライズルールを確実に有効にしてください。 CultureInfoを指定しないすべての種類のFormat / Parse関数の呼び出しをすべて検出します。 CultureInfoが指定されていないバグはテストで見つけるのが難しいですが、フランス語のクライアントが尋ねるとき、本当にお尻に噛みつきます:プログラムが<!> quot;、<!> quotで動作しない/クラッシュする理由;小数点区切りとして。

私の経験では、すべてのタイプのコード分析警告は、コードに「隠れた」バグまたは欠陥を示しています。これらを修正すると、実際の問題を解決できます。無効にしたい警告のリストが見つかりませんでした。

代わりに、一度に1つのプロジェクトを有効にし、次のプロジェクトに進む前にそのプロジェクトのすべての警告を修正します。

何かをオフにしたい場合は、命名規則(ライブラリ、API、または他の外部公開メソッドを出荷している場合を除く)およびグローバリゼーション規則をチェックしないことを検討します。 (アプリケーションがグローバリゼーションを積極的に使用していない場合)。それは理にかなっているあなたの状況に少し依存します。

Jeroen Huininkの答えに多少同意します

プロジェクトが従うべきだと思うすべてのルールを有効にし、できるだけ早く修正します。今すぐすべてを修正する必要はありませんが、モジュール内の欠陥を修正したりメソッドをリファクタリングしたりすると、そのメソッドまたはモジュールの静的分析で見つかった問題をいつでもクリーンアップできます。新しいコードはルールに準拠し、既存のコードは可能な限り迅速に準拠に変換する必要がありますが、それを実現するためにすべてをドロップする必要はありません。

開発チームはプロジェクトの問題を確認して優先順位を付けることもできます。最も重要な問題については問題追跡システムに欠陥を登録し、適切な開発者が迅速に対処できるようにします。

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