16

StyleCopの静的コード分析とルールの適用が気に入っています。ただし、いくつかの重要な部門では深刻に欠けています。

  • 新しいルールの追加は公式にはサポートされておらず、かなり難しいと聞いています。
  • 些細なルール違反を自動的に「修正」できると便利です。おそらく変数の命名ではなく、メソッドの順序付け (静的など) を使用すると、これは大幅な時間の節約になります。
  • Microsoft の StyleCop に対する「万能型」のアプローチは、一種の制限的なものです。社内基準のカスタム ルール セットを作成したいと考えています。

そのような商用製品はありますか?

代替テキスト http://blogs.interakting.co.uk/images/blogs_interakting_co_uk/dominicz/WindowsLiveWriter/MicrosoftStyleCopSourcecodeanalysisforfo_D8EF/styleCopErrors_6.gif

4

7 に答える 7

12

ルールの追加は公式にサポートされているか、サポートされる予定です:

約束どおり、カスタム ルールの作成方法とツールをカスタム ビルド環境に統合する方法を説明する StyleCop の SDK ドキュメントもリリースします。SDK ドキュメントは現在最終レビュー中であり、すぐにリリースしたいと考えています。--ジェイソンオール

私たちの「社内」スタイルに関しては、いくつかの StyleCop ルールを無効にすることでかなり近づけることができました。

  • ファイルヘッダー (SA1633-SA-1640)
  • コード順(SA1200~SA1202)
  • 「これ」を要求する (SA1101)

これは、インストール ディレクトリの Settings.StyleCop ファイルを変更することでグローバルに行うことができますが、私は各プロジェクトのソース ツリーのルートに 1 つ配置するアプローチをとっています。

最終的な効果は、私たちが望むものです。フラグを付けた方がよい "社内" の選択肢がいくつかありますが、それらがなくても、StyleCop は私たちに多くの価値をもたらしてくれます。

于 2008-11-14T00:04:28.303 に答える
6

ReSharper の StyleCopが役立ちます (ReSharper を購入する必要がありますが、プラグインは無料です)。

ReSharper の StyleCop は、StyleCop 4.3 と同等の機能に達したという点で完全な機能になりました。

148 個の StyleCop ルールがあります。

  • これらのうち 38 個は手動で修正する必要があります (通常は、説明テキストを入力するか、変数の名前を変更する必要があるため)。
  • 残りの 110 のルールのうち、58 は R# コードのクリーンアップ (サイレント モード) によって修正されます。
  • 現在残っている 52 個のうち、すべてを自動的に修正するコード クリーンアップ ルールがあります。

また、自動的に修正できる 110 のルールの違反に対してコンテキスト メニューの修正を提供する 106 のクイック修正も提供します。

また、StyleCop に適した方法でコードを自動的にフォーマットするように ReSharper を構成する「StyleCop に適した ReSharper コード スタイル共有設定ファイル」も同梱しています。

于 2009-03-04T12:44:20.260 に答える
5

MonoのGendarmeがありますが、これはオープン ソースであり、商用ではありません。

于 2008-11-13T10:59:10.890 に答える
3

StyleCopの代替または適切な補完は、商用ツールNDependを使用することです。このツールを使用すると、LINQ クエリ (つまり CQLinq)に対してコード ルールを記述できます。免責事項: 私はツールの開発者の 1 人です。

デフォルトで200 以上のコード ルールが提案されています。これらには、設計アーキテクチャコード品質コード進化命名規則デッド コード.NET Fx の使用法などがあります。

CQLinq は、Visual Studio でライブで検証できるコード ルール、またはビルド プロセス中に検証して HTML/javascript レポートでレポートできるコード ルールの作成に特化しています。

StyleCop や FxCop よりも優れた CQLinq の強みは、コード ルールを簡単に記述してすぐに結果を取得できることです。一致したコード要素を閲覧するための機能が提案されています。具体的には次のようになります。

CQLinq コード規則

于 2010-10-19T13:17:59.980 に答える
3

エージェント・スミスはとても親切です。Resharper が必要です。

于 2008-11-13T16:48:16.403 に答える
2

SubmainからCodeIt.Rightを見てください。

于 2008-11-13T16:57:53.577 に答える
2

私はしばしば単体テストを作成して、自分の型を反映し、カスタム ルールの違反をチェックします。

特定の型が不変であることを確認する例を次に示します。

単体テストの命名に関する規則については、別の例を次に示します

編集: 2 番目のリンクは時間の砂に失われたようです。

于 2008-11-13T16:41:01.567 に答える