~ コーディング規約違反を警告/レポート ~
Visual Studio のコード分析機能(FxCop)や、Resharer にも統合されている StyleCop(コーディングスタイル チェックツール)のカスタムルールを作成します。
コーディング規約は、ミスを防いだり、コード品質を安定させるのに役立ちますが、それを覚える実装者、違反をチェックするレビューアの負担は小さくありません。
コード分析機能を使うと、ルール違反が警告として検出されますので、プログラマがルールを忘れてしまってもそれに気づいてもらうことができます。
非推奨のアンチプラクティスを警告することで、教育的な効果も期待できます。
既定のルールは一般的な推奨事項ですので、自社のルールと異なっていたり、それだけでは実際的な効果を得るのに物足りないとお感じになることもあるかと思います。
そのような場合には、カスタムルールの活用をお勧めします。
カスタムルールを活用することによって、命名規則、パフォーマンス上の推奨事項、バグ回避のための禁止事項、アーキテクチャに沿った実装、保守性を上げるコーディングスタイルなど、プロジェクト独自のルールを自動的にチェックし、コード品質を保つことができます。
▼例えば、このような内容のカスタムチェックが可能です。
(ほんの一例です。他にもご希望に応じたきめ細やかなルールを作成いたします)
分類 |
解析ツール |
ルール例 |
命名規則
|
FxCop |
デモページをご参照ください。
|
|
FxCop |
テストクラス、テストメソッド名にサフィックスをつける。 |
デザイン |
FxCop |
特定のクラス、メソッド、演算子の使用を禁止する。 |
|
FxCop |
あるクラス、メソッドを特定の名前空間からの使用に限定する。 |
|
FxCop |
protected フィールドを宣言しない。
|
|
FxCop |
publicフィールドはプロパティ化を検討する。 |
|
FxCop |
public 定数は static readonly 化を検討する。 |
|
FxCop |
デフォルトコンストラクタを実装する。 |
|
FxCop |
継承されたメンバを隠ぺいしない。 |
|
FxCop |
中身が空のメソッドやイベントハンドラを作成しない。 |
|
StyleCop |
条件式ブロックで代入しない。 |
コードレイアウト |
StyleCop |
1行に記述するコードは指定文字数までにする。 |
|
StyleCop |
メソッド定義の中括弧は改行の後で始める。 |
|
StyleCop |
メソッド引数の両端(括弧の内側)にスペースを1つ入れる。 |
|
StyleCop |
インデントのルールを統一する。 |
|
StyleCop |
閉じ中括弧の前に空行を置かない。 |
|
StyleCop |
if 文の本体を改行して記述する場合、必ず中括弧で囲む。 |
保守性 |
StyleCop |
ループや if 文のネストを深くしない。 |
|
StyleCop |
1ファイル内のステップ数を制限する。 |
|
StyleCop |
1メソッド内のステップ数を制限する。 |
コメント |
StyleCop |
ドキュメントヘッダに空白行を含めない。 |
|
StyleCop |
同じ引数名の param コメントを統一する。 |
価格
お見積もりいたします。
※御社内で無制限にインストールしてご利用いただけます。
※
リモートエンジニアサービスの一部としてもご依頼いただけます。
よくあるご質問
Q. FxCop とはどのようなツールですか?
A. .NET Framework 内のアプリケーションに対応する静的分析ツールの1つです。
コンパイルされた .NET アセンブリの中間コードを分析し、デザイン、セキュリティ、保守性、信頼性、移植性、相互運用性、およびパフォーマンス向上のための推奨事項を提供します。
Visual Studio の上位エディションに「コード分析」機能として統合されていますが、単独のツール(最新版は Windows SDK の一部)としても無償公開されています。
Visual Studio では、ビルド時に警告表示させることが可能です。単独のFxCop では、専用の GUI や HTML レポートで分析結果を確認できます。
≫ カスタムルールの例 / FxCop(単独のツール)のレポートサンプル
≫ Visual Studio コード分析機能の概要
≫ 既定ルールの解説
Q. StyleCop とはどのようなツールですか?
A. Microsoft 社内で利用実績のある C#向けのコーディングスタイル チェックツールで、現在は
オープンソース化 されています。
アセンブリではなく、ソースコードを分析対象とします。括弧やスペース、行間の使い方、XMLコメントの記述などをチェックすることができます。