CQLinq
CQLinq
CQLinq は CppDepend のコードクエリ言語です。LINQ(Language Integrated Query)をベースとしており、クエリを記述してコードベースを探索し、コードスメルを見つけ、コーディング標準を適用できます。
CQLinq を使用すると、特定の基準に一致する型、メソッド、フィールド、その他のコード要素を見つけるクエリを記述できます。また、特定の条件が満たされたときに警告するルールを記述することもできます。
CQLinq は、コードの探索、リファクタリング、品質保証のための強力なツールです。CppDepend ではあらゆる種類の分析タスクに広く使用されています。
CQLinq入門
CQLinqを始めるには、を使用できます クエリとルールエクスプローラー CppDepend のパネル。このパネルには、コードベースに対して実行できる事前定義済みのクエリとルールのリストが含まれています。
を使って独自のクエリも書けます CQLinqエディタ エディターには構文の強調表示、コード補完、エラー チェック機能があり、クエリを迅速かつ正確に記述できます。
CQLinq クエリは、SQL に似た構文で、C# スタイルの構文で記述されます。単純な CQLinq クエリの例を次に示します:
from m in Application.Methods where m.NbLinesOfCode > 30 select m
このクエリは、アプリケーション内で 30 行を超えるコードを持つすべてのメソッドを検出します。
クエリ例
コードベースを探索するために使用できる CQLinq クエリの例を次に示します:
5 つを超えるパラメーターを持つすべてのパブリック メソッドを検索
from m in Application.Methods where m.IsPublic && m.NbParameters > 5 select m
特定のインターフェイスを実装するすべての型を検索
from t in Application.Types
where t.Implement("MyNamespace.IMyInterface")
select t呼び出されないすべてのメソッドを検索
from m in Application.Methods where m.NbMethodsCallingMe == 0 && m.IsPublic select m
コードルール
CQLinqはの記述にも使用可能 コードルール コード ルールは、特定の条件が満たされたときに警告を生成するクエリです。
コード ルールを作成するには、CQLinq クエリを記述して warnif または failif 句を先頭に。例を示します:
warnif count > 0 from m in Application.Methods where m.CyclomaticComplexity > 20 select m
このルールは、循環的複雑度が 20 を超えるすべてのメソッドに対して警告を生成します。
メトリクスと集約
CQLinqは幅広いをサポート メトリクス クエリで使用できます。これには、コード行数、循環的複雑度、継承の深さなどのコードメトリクスや、アフェレント結合度やエフェレント結合度などの依存関係メトリクスが含まれます。
も使用できます 集約関数 クエリで使用して、コードベース全体の統計を計算します。例を次に示します:
from m in Application.Methods
select new { m, m.NbLinesOfCode, m.CyclomaticComplexity }