DevPartner 技術情報(FAQ)


沢山あるルールの中でどれを使えばよいか判らない

コードレビューには標準で817個のルールが用意されており、用途に応じて使い分けることが出来るように、複数の切り口で分類されています。 個々のルールに対する切り口は、以下のルールマネージャのルール設定画面のように確認できます。

1.png


2.png

一つのルールは同時に複数の分類に属することもあります。「パフォーマンスとロジック両方のセットに属するルール」「VB.NETとC# 両方の言語に属するルール」などです。

これらの分類方法を使い分けることによって効果的な解析を、効率よく行うことが可能になります。

以下に、どういう時に、どのルールを適用するか、について代表的なパターンを記述いたします。選択基準を設けるときにご参照下さい。


(A) 設定は変えずに有効に活用したい

標準設定で全て解析を行い、検出された問題点の中から修正した方が良いと思われるものだけを選んで対応します。 例えば、以下の結果画面のように、重要度でソートして、重要度が高のものだけをすべて修正します。

3.png


(B) 簡単な調整で効果的なカスタマイズを行いたい

コードレビューの解析結果表示画面において、抑制機能を使ってルールの使用を制限することができます。上記の結果画面で、抑制したいルールを選択して、+ボタンを押してください。また、オプション設定画面でルールセットを選択することもできます。


(C) 自分のプロジェクトに適したルールだけを選択したい

新規にルールセットを作成し、以下の「重要度」「ルールセット」「タイプ」「言語」の表を参考にして、選択したルールを登録することで、必要なチェックを効率よく行うことができます。


重要度

内容件数判断例
システムに重大な問題を引き起こす可能性が高い134可能な限り修正する
システムに中度の問題を引き起こす可能性がある484なるべく修正する
システムに軽度の問題を引き起こす可能性がある127可能であれば修正する
警告特定のプログラミングの問題に注意を促す72参考程度に参照



ルールセット

内容件数判断例
すべてのルール全てのルール817全てのルールを含む特別なルールセット
日付形式のルール日付型の使用方法ルール13日付型を使用する場合に使用
デザイン タイム プロパティボタン等のコンポーネントプロパティに対するチェック73画面設計をWindows標準に合わせる場合に使用
国際化のルール文字を扱うライブラリ等の使用方法ルール11複数の国でシステムを開発・使用する場合に使用
ロジックのルール.NETにおける開発全般のルール61重要な内容なので、必ずご使用下さい
ネーミングガイドラインクラス名、メソッド名、変数名等に関する命名規則7.NETガイドラインに沿って名前を付ける場合に使用
パフォーマンスのルールパフォーマンスに問題を起こす可能性をチェック30重要な内容なので、必ずご使用下さい
WebアプリケーションWebアプリケーション専用のルール33Webアプリケーションの場合に使用
デフォルトデフォルトのルールセット483重要度が“高”及び“中”のルールだけを集約したもの。ルールをカスタマイズする手間を省き、”すべてのルール”よりも解析にかかる時間を短縮する場合に使用
標準保守性を向上させるための標準ルール19コーディング技法とプログラミング技術に特化したルールで保守性向上のために使用
セキュリティ ルールセキュリティに関するルール191セキュリティに課題がある場合に使用



タイプ

内容件数判断例
COM相互運用性アンマネージコードに関する問題を指摘します。3アンマネージコードを使用している場合に選択を検討します。
データベースデータベースに関する問題を指摘します。2データベースに関する問題を検証したい場合に選択を検討します。
日付VB.NETの2000年問題の日付処理に関する問題を指摘します。8VB.NETで2000年以前の日付の処理を行なっている場合に選択を検討します。
デザインタイププロパティGUIコントロールのプロパティに指定した値に関する問題を指摘します。73GUIコントロールを使用している場合に選択を検討します。
エラー/例外処理エラーハンドリングや例外処理に関する問題を指摘します。11重要なルールが含まれるので、確認することをお勧めします。
ガベージコレクションガベージ コレクションに関する問題を指摘します。16重要なルールが含まれるので、確認することをお勧めします。
国際化アプリケーションの文字列や、画面の表示に関して、国際化の問題が発生する可能性がある事項を指摘します。11アプリケーションが日本語以外のOS上で動作する可能性がある場合や、こうした環境に移植が予定されている場合には選択を検討します。
言語言語仕様に関するルール0
ロジックプログラムに、論理的なミスが疑われる場合にそれを指摘します。25重要なルールが含まれるので、確認することをお勧めします。
保守性プログラムコードの保守を行なっていく上で問題となる可能性がある事項を指摘します。例えば、コメントがない、ネストが深すぎる等。27プログラムコードの保守性を検証したい場合に選択を検討します。
パフォーマンスプログラムの実行速度を劣化させる可能性がある問題を指摘します。28アプリケーションの速度が遅いことが問題となる場合に選択を検討します。
移植性Webアプリケーションのポータビリティ、デプロイに関連する問題を指摘します。2Webアプリケーションの場合に選択を検討します。
プロジェクトとソリューションのプロパティプロジェクトプロパティに関するルール0
信頼性プログラムコードの信頼性に関して問題となる可能性がある事項を指摘します。例えば、Option Strict、Option Explicitがオフになっている等。14重要なルールが含まれるので、確認することをお勧めします。
セキュリティセキュリティに関する問題を指摘します。223セキュリティ関連の問題を検証したい場合に選択を検討します。
標準多くのプログラマが自然に従っている暗黙のルールや、美しいといわれているコードの特徴に違反している場合に指摘します。20含まれているルールの中から御社のコーディング規約にあったものを選択します。
システムシステムに関するルール0
ユーザビリティ他の人がプログラムコードを利用する際に問題となる事項を指摘します。2他の人がプログラムコードを利用する可能性がある場合に選択を検討します。
ユーザー定義のルールユーザー定義のルール0
バージョン管理インターフェースとConstに関する注意点を指摘します。一般的な意味のバージョン管理ではありません。3インターフェースとConstを使用している場合に選択を検討します。
Windows APIWin32 APIの呼び出しが行われている場合にはそれを指摘し、その代替となる.NET Frameworkのメソッドを提案します。Win32 APIを直接呼び出すよりも、.NET Frameworkのメソッドを使用した方が安全です。350Win32 APIの呼び出しが行われている可能性がある場合には選択を検討します。



言語

件数
Visual Basic .NET633
C#622
HTML46