FxCop /静的解析を既存の違反がある既存のコードベースに実装する際に使用される戦略は何ですか?どのようにして静的解析違反を最も効果的に減らすことができますか?既存のコードベースでFxCop /静的解析を実装する方法
答えて
最初に[SuppressMessage]属性を自由に使用します。少なくとも最初は。属性を使用してカウントを0にすると、新しいチェックインでFxCop違反が導入されないというルールを適用します。
Visual Studio 2008にはコード分析機能が用意されているため、すべてのビルドでコード解析を実行し、警告をエラーとして扱うことができます。それは少し遅くなるかもしれないので、私はCruiseControl.NETのような継続的な統合サーバーを設定し、すべてのチェックインでコード分析を実行することをお勧めします。
すべてのチェックインに新しい違反が導入されていない場合は、使用したSuppressMessageAttributesを削除することを目的として、FxCop違反のクラス全体に一度に取り組まなければなりません。
あなたが本当に保持したいものを追跡する方法は、あなたが本当に抑制したいものに常に正当化値を追加することです。
通過スタイルでコードを書き直してください!
真剣に言えば、古いコードベースには何百ものエラーがありますが、それが初心者/インターンプログラマーがいる理由です。 FxCop違反を修正することは、コードベースの概要を理解し、適合する.NETコードを作成する方法を学ぶのに最適です。
だから、弾丸を噛んで、たくさんのカフェインを飲み、カップルの日にちょうどそれを通り抜けてください!
NDepend looks likeそれはあなたが何をしているのかは分かりませんが、CruiseControl.Net自動ビルドに統合できるかどうかわかりませんし、コードが要件を満たさない場合はビルドに失敗します。私は何をしたいのですか?)
他のアイデアはありますか?
FxCopに代わる方法は、ツールNDependを使用することです。このツールを使用すると、C#LINQクエリのコード規則(CQLinqと呼ぶ)を書くことができます。 免責事項:私はこのツールの開発者の一人です
200 code rules以上がデフォルトで提案されています。既存のルールをカスタマイズする、または独自のルールを作成することは、のよく知られた C#LINQ構文のおかげで簡単です。
低偽陽性の数を維持するために、CQLinqはセットがnotmycodeで始まる特殊なコードクエリを通じてJustMyCodeが何であるかを定義するために独自の機能を提供しています。この機能の詳細については、hereを参照してください。ここでは例えば2つのnotmycodeデフォルトのクエリです:CQLinqであなたもルールを集中することができ、低偽陽性の数を保つために
コードに結果だけを追加しましたまたはコードがリファクタされている場合は、defined baseline in the pastです。 、次のルールを参照して、ベースラインから追加またはリファクタリング余りに複雑な方法を検出すること:
最後warnif count > 0
from m in Methods
where m.CyclomaticComplexity > 20 &&
m.WasAdded() || m.CodeWasChanged()
select new { m, m.CyclomaticComplexity }
、NDependのコード規則とgenerated HTML+javascript reportに、live in Visual Studio、ビルドプロセス時に確認することができることに気づきます。
- 1. 静的クラスで非静的メソッドを実装する方法は?
- 2. コピー&ペースト静的解析ツール?
- 3. Javascriptで静的テキストを解析する方法
- 4. Javaコールグラフの静的解析
- 5. Coffeescript静的解析/静的型チェック - ロードブロッキング
- 6. 既存のWebプロジェクトで翻訳を実装する方法は?
- 7. 既存のmvcページで検索エンジンを実装する方法
- 8. 既存のコードベースをオープンソース化する方法は?
- 9. JSON解析アプリケーションでASIHTTPキャッシュを実装する方法
- 10. TypeScriptコードベースをASTに解析する方法
- 11. C++コードベースの解析ツール
- 12. FxCop 10 GUIで実行コード解析ルールを設定
- 13. 既存のデータベースに多相関連を実装する方法
- 14. ACRA - それを既存のプロジェクトに実装する方法
- 15. 既存のサイトにCMSを実装する方法は?
- 16. テストでのスタブ実装からの静的解析でnull参照解除の警告を表示しない
- 17. iPhoneで静的ライブラリを実装する
- 18. 静的コード解析ツール -
- 19. GCCプリプロセッサPLUS静的解析?
- 20. C++静的解析、テンプレートクラス
- 21. サブクラスに強制的に静的解析メソッドを実装させることはできますか?
- 22. IntelliJ静的解析ツールをコマンドラインから実行する
- 23. イベントデリゲートが確実に削除されるように静的解析ルール(FXCop)を書く方法に関するアイデア
- 24. ファイル文字解析を実装する
- 25. Pythonでの静的コード解析?
- 26. 既存のプロトコルを効率的に実装する
- 27. 既存のBツリーを実装する
- 28. コンパクトオフセットポインタ、既存の実装?
- 29. 静的でないネストされたメンバーをJsonに解析する方法は?
- 30. コード解析FXCop VSTS 2015設定