コード・レビューのコンポーネントは、EGL の組み込みコード・レビュー規則をサポートします。
以下の規則は、EGL のコード・レビュー・コンポーネントに組み込まれており、パラメーターは不要です。 これらの規則は、
ソフトウェア分析構成ウィンドウのカテゴリー「式」、「特定検査」、「ステートメント」、および「タイプ」から選択できます。
このウィンドウの使用について詳しくは、ソフトウェア分析構成の作成を参照してください。規則ファイルのエクスポートおよびインポートについては、『規則のエクスポートおよびインポート』を参照してください。
- 式:
- AS 式を回避 (Avoid AS expressions)
- この規則は、EGL ソース・コードに含まれるすべての AS 式にフラグを立てる場合に使用します。
通常、AS 式は任意のデータ型に関連付けられるため、CobolGen で内部疑似オブジェクトを使用しなければならなくなります。
そのため、AS 式は CobolGen 環境で実行するにはコストがかかりすぎます。
- Like/Matches 式を回避 (Avoid Like/Matches expressions)
- この規則は、EGL ソース・コードにおいて LIKE 式や MATCHES 式にフラグを立てる場合に使用します。
通常、LIKE 式および MATCHES 式は複雑なランタイム・プログラムを呼び出す必要があるため、CobolGen 環境で実行するにはコストがかかりすぎます。
- New 式を回避 (Avoid New expressions)
- この規則は、EGL ソース・コードに含まれるすべての NEW 式にフラグを立てる場合に使用します。
通常、NEW 式は任意のデータ型に関連付けられるため、CobolGen で内部疑似オブジェクトを使用しなければならなくなります。
そのため、AS 式は CobolGen 環境で実行するにはコストがかかりすぎます。
- 特定検査
- Copystr 機能および Comparestr 機能を回避
- この規則は、COPYSTR 機能または COMPARESTR 機能の呼び出しにフラグを立てる場合に使用します。
これらの機能は、サブストリングをより効果的に割り当てることで置き換えることができます。
- イベント・ハンドラー配列への直接割り当てを回避
- この規則は、EGL Rich UI プログラムでのイベント・ハンドラー配列への直接割り当て (=) にフラグを立てる場合に使用します。
配列に追加する技法 (::=) が正しい技法です。
- タイプ「イン」の関数仮パラメーターを回避
- この規則は、定義タイプ IN を持つすべての関数パラメーターにフラグを立てる場合に使用します。
この規則をサポートするためには、パラメーターがタイプ IN として定義されるときは、
渡される引数は一時変数にコピーされなければなりません。
- タイプ「アウト」の関数仮パラメーターを回避
- この規則は、定義タイプ OUT を持つすべての関数パラメーターにフラグを立てる場合に使用します。
この規則をサポートするためには、パラメーターがタイプ OUT として定義されるときは、
渡される引数は関数の開始時に初期化されなければなりません。
- ソース・ファイル内のパーツが指定数を超えることを回避
- この規則は、定義された数を超える EGL パーツ (トップレベルの機能やレコードなど) を含む EGL ソース・ファイルにフラグを立てる場合に使用します。
必要に応じて、デフォルト警告レベル (50 個のパーツ) をオーバーライドできます。
同一ソース・ファイルに含めるパーツの数が多すぎると、IDE ビルド・パフォーマンスに悪影響が及ぶ可能性があります。
ファイルを複数の小さいファイルに分割することをお勧めします。
- Try ブロックのない I/O ステートメントを回避
- この規則は、Try ブロックに直接含まれてはいない入出力ステートメント (Add、Get、Replace、Delete、Open、Close など) に
フラグを立てる場合に使用します。
- Else ブロックのない If を回避
- この規則は、対応する ELSE ブロックがない IF ステートメントにフラグを立てる場合に使用します。
ELSE ブロックがない IF ステートメントをコーディングすると、エラー条件が無視されるロジック・パスが生じる可能性があります。
- ネストが指定したレベル数より深い If ステートメントを避ける
- この規則は、ネストされた IF ステートメント (IF に別の IF が含まれるステートメント) にフラグを立てる場合に使用します。
必要に応じて、デフォルト・ネスト・レベル (3) をオーバーライドできます。
指定のレベル数よりもネストが深い場合、この規則は、制限を超えたレベルにフラグを立てます。
- 数値からテキストへの変換を回避
- この規則は、割り当てのソースの型が数値になっていて割り当てのターゲットの型がテキストになっているすべての割り当てにフラグを立てる場合に使用します。
通常、これは、高コストのフォーマット操作を伴います。
- 再帰的関数を回避
- この規則は、再帰的呼び出しを何度も引き起こすすべての関数にフラグを立てる場合に使用します。
これは、複数の関数が関係することがあります。
結果の一部として再帰的スタックが表示され、再帰的パスが示されます。
- ソートを実行する SQL ステートメントを回避
- この規則は、SQL で結果セットに対してソートが実行される可能性があるすべての SQL ステートメントにフラグを立てる場合に使用します。
特に、この規則では、規則の不備を見つけるために
キーワード ORDER BY、GROUP BY、JOIN、または UNION が検索されます。
- 結果セット ID のない SQL ステートメントを回避
- この規則は、結果セット ID を指定できるにも関わらず結果セット ID を指定しなかった
すべての SQL ステートメントにフラグを立てる場合に使用します。
ステートメントで結果セット ID が指定されないことで、使用される結果セットを実行時に動的に判別できるように、CobolGen 環境において
かなりの追加コードが生成されることになります。
正しい結果セット ID を指定すれば、このような追加コードを生成しないですみます。
- テキストから数値への変換を回避
- この規則は、割り当てのソースの型がテキストになっていて割り当てのターゲットの型が数値になっているすべての割り当てにフラグを立てる場合に使用します。
通常、このような割り当ては、テキストを有効な数値に変換するために高コストの操作を伴います。
- Onexception ブロックのない Try ステートメントを回避
- この規則は、ONEXCEPTION ブロックなしでコーディングされている
すべての TRY TO ステートメントにフラグを立てる場合に使用します。
ONEXCEPTION ブロックがない TRY ステートメントをコーディングすると、エラー条件が無視されるロジック・パスが生じる可能性があります。
- Dataitem の使用が必須
- この規則は、フィールドのタイプとして Dataitem パーツを参照しない組み込みフィールドを持つすべての構造化レコードにフラグを立てる場合に使用します。
- Dataitem の使用を制限
- この規則は、フィールドのタイプとして Dataitem パーツを参照する組み込みフィールドを持つすべての構造化レコードにフラグを立てる場合に使用します。
- パーツのビルド記述子によって定義されたシステムの検証
- この規則は、EGL コーディング規則によって処理されるパーツの内部コンパイルを実行する場合に使用します。
その目的は、パーツに関連付けられているビルド記述子で指定されているシステム・タイプによってサポートされていない言語フィーチャーを識別することです。
- ステートメント:
- すべての EGL ステートメント (All EGL statements)
- 希望の EGL ステートメントを選択して、指定したタイプのすべてのステートメントにフラグを立てます。
- タイプ:
- すべての EGL データ型 (All EGL data types)
- 希望の EGL データ型を選択して、指定したタイプのすべてのデータ型にフラグを立てます。