問題タブ [cql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aggregate - NDepend CQL カウント クエリ
特定のクラスのパブリック メソッドのテーブルと、NDepend CQL での各メソッドの使用数のクエリを実行したいと考えています。現在、クエリは次のようになっています。
CQL でクエリを集約することは可能ですか?
code-analysis - NDepend を使用してフォーム イベントを処理するすべてのメソッドを検索する
フォーム イベントを処理するフォーム クラス内のすべてのメソッドを表示する NDepend の CQL クエリを作成するのを誰かが手伝ってくれるかどうか疑問に思っていました。したがって、次のようなすべてのメソッドを見つけられるようにしたいと思います。
いくつかのオプションを調べましたが、必要なものを実際に見つけることができません。
NDepend を使い始めたばかりなので、まだあまり慣れていませんが、今まで NDepend なしでどうやって生きてきたのか、1 つだけわかっています。
idisposable - 欠落している IDisposable 実装に対する NDepend CQL クエリ
この質問が探しているクエリは、IDisposable の実装に関するすべての小さな問題を見つけるのに十分ではないことを認識していますが、早期警告はすべて重要なので、取得できるものを取り上げます。
IDisposable を実装していないが、実装しているフィールドが 1 つ以上あるすべてのクラスをリストする NDepend の CQL クエリを誰かが思いついたかどうかを知りたいです。バグ (つまり、誰かが IDisposable 実装のフィールド タイプをチェックするのを忘れた)、またはコードの進化 (つまり、どこかのフィールドで使用されるクラスに IDisposable が追加される) によって、クラスがこのクエリの結果リストに含まれる可能性があります。すべての使用状況が更新されることなく後日)。
IDisposable を実装していないすべてのクラスを検索する単純なクエリは次のとおりです。
ただし、これはもちろん、クラスが上記のルールの IDisposable を実装する必要があるかどうかをチェックしません。
誰かそのようなクエリを持っていますか?私はまだCQLに慣れてきているので、この部分はわかりません。
ndepend - 最も役立つ NDepend CQL クエリ
私が働いているクライアントは、FXCop の代替として NDepend の使用を開始しました。「アーキテクト」は、実際には使用できない CQL クエリのリストをまとめました。これは、NDepend Web サイトからのアドバイスから得たものです。
What "I think" が役に立たないクエリの例
つまり、10 行のコードごとに少なくとも 2 行のコメントが必要です。
そこで私が集めようとしているのは、開発者として使用できる便利な一連のクエリです。
それに応じて投票できるように、回答ごとに 1つのクエリ (説明付き)のみを提供してください。 それに応じて投票できるように、回答ごとに 1つのクエリ (説明付き) のみを提供してください。
code-metrics - 保守性指標を取得するには?
cql を使用して保守性インデックスを作成するにはどうすればよいですか? NDepend はこの数を計算しますか?
ありがとう!
アレハンドラ
c# - NDepend コード品質メトリクス - カスタム CQL - ブラウンフィールド開発
私は、最初に.NET 1.1用に開発されたブラウンフィールドプロジェクトに取り組んでおり、その後、.NET 3.5を少し加えて.NET 2.0にレトロフィットしました。
最適化とモダナイゼーションの変曲点を見つけるために、どのような指標を使用すればよいか興味があります。
「従来の」.NET コードのクリーンアップとリファクタリングに役立つ、優れた CQL クエリはありますか?
c# - タイプ属性に対するNDependメソッドのクエリを制限する方法
標準の「メソッドが大きすぎます」クエリの修正バージョンを使用して、NDependに長いメソッドを識別させようとしています。
開発者がほとんど制御できない長いメソッドを報告したくないので、DebuggerNonUserCode
属性とを使用して生成されたコードを除外しますInitializeComponent()
。
残念ながら、生成されたタイプのメソッドも報告されるため、まだいくつかの誤検知が発生します。問題は、型自体にはDebuggerNonUserCode
属性がありますが、メソッドにはないため、生成されているにもかかわらず、出力に含まれていることです。
タイプとメソッド間の結合のようなものを探しています。属性を持たないすべてのタイプを指定して、DebuggerNonUserCode
それらに対してクエリを実行しますが、CQLでこれを表現する方法がわかりません。
一部のアセンブリでは、フルネームで簡単にフィルタリングできますが、残念ながら、一部のアセンブリでは、開発者が作成したタイプと生成されたタイプが混在しています。残念ながら、IsGeneratedByCompiler
この場合も使用できません。
私の質問
ndepend - アセンブリワイルドカードからタイプをクエリするNdependCQL
Webアプリケーションが直接使用している低レベルのフレームワークタイプを判別するには、関連するすべてのアセンブリを定義する必要があります。
アセンブリのリストをワイルドカード化する構文が見つかりません。これをショートカットする方法はありませんか?フレームワークレベルのアセンブリがたくさんあります。
つまり、Company.System.Framework。*
ndepend - 他のアセンブリ/タイプによって使用されているフレームワーク アセンブリの NDepend クエリ メソッド/タイプ
ベース フレームワーク アセンブリ内のどの型またはメソッドが、アプリケーション システム内の他のアセンブリによって使用されているかを特定しようとしています。それを行うためのストレートカットクエリが見つからないようです。
私がしなければならないことは、最初にフレームワークアセンブリを直接使用しているアセンブリを特定し、次にそれらを2番目のクエリで手動でリストすることです
これを照会するためのより良い/より高速な方法はありますか?
さらに、クエリ結果は、一致した型のみに注目されます。エクスポートされた依存関係グラフまたはマトリックスには、それらの詳細のみが表示されます。これらの型またはメソッドを表示し、それらを消費している他のアセンブリからの依存型/メソッドを表示するグラフをレンダリングする方法がわかりませんか?
アップデート
次のようなクエリは使用できません
IBM.Data.DB2 アセンブリー内で難読化された型を使用すると、結果が非常に奇妙な結果を返すためです。
私たちのコードは、これらの型と列挙型を直接使用しません。
properties - NDepend を使用してどのプロパティ ゲッターに副作用があるかを調べるにはどうすればよいですか?
VisualStudio のよくある問題は、プロパティ ゲッターの不思議な呼び出しです。これらに副作用がある場合 (最も一般的な形式はif (foo == null) foo = new foo(); return foo;
)、デバッガーの [ローカル] ウィンドウと [ウォッチ] ウィンドウがブレーク ポイントに到達することなくプロパティを呼び出すという事実により、デバッグ時に予期しない影響が生じる可能性があります。
これには簡単な解決策があります。属性でプロパティにタグを付けるだけです
では、大規模なコード ベースで副作用が発生する可能性のあるゲッターを見つけるにはどうすればよいでしょうか。
NDependは、この種のツールとして最適です。その CQL 言語を使用すると、たとえば、含まれているインスタンスの状態を直接変更するすべてのプロパティを見つけることができます。
これは、フィールドを直接変更する getter のみを検索しますInitialize()
。メソッドを呼び出すなどして間接的に変更する getter を検索するにはどうすればよいですか?