vb.net の静的コード アナライザーを作成して、会社の標準コーディング ガイドラインに準拠しているかどうかを確認することに関心があります。どこから始めなければならないかアドバイスしてください。
8 に答える
独自の静的コード アナライザーを作成するのではなく、 FxCopを使用することをお勧めします。代わりに、必要に応じてカスタム FxCop ルールを作成します。時間を大幅に節約できます。 http://www.binarycoder.net/fxcop/
Mono の Gendarme を使用することをお勧めします。これは非常に優れたツールであり、多くの組み込みルールがあります。また、素敵な HTML レポートも生成します。
より多くのアーキテクチャの洞察が必要な場合は、NDepend を使用してください。このツールは私を驚かせるだけではありません。FxCop よりもはるかに多くのことができます。商用ですが、無料の試用版があります
FXCopはコーディングの問題/間違いの良い出発点であり、StyleCopは (明らかに) コーディング スタイルに適していますが、これら 2 つのいずれも機能しない場合は、自分でパーサーを作成するか、.Net Framework でVBCodeProviderクラスを使用できます。
FxCop を使用してください。これは個人的に取り組みたいプロジェクトではありません。関連する構文解析/字句規則と考えられるキャッチは正気ではありません。少し正気を保ちながらそれを行うと想像できる唯一の方法は、極端な表現力のおかげで Lisp を使用することですが、やはり、FxCop を使用するのが最善です。
なんらかの (独断的な?) 理由でカスタムの社内ツールを作成する必要がある場合は、基本的なルール チェックのみを行う Lisp プログラムを作成することをお勧めします。包括的にしようとしないでください。ソフトウェアの解析機能に関して、AI 研究者が取り組んでいるフロンティアのようなものを話しているのです。
Lisp を使用して、明らかな違反者の可能性を見つけるか、非準拠コードの点で Lisp が得意とするものを見つけてから、簡単な人間の目のスキャンにかけます。Lisp を使用してパーサーを作成する場合は、マクロを悪用することを強くお勧めします。
最適なオプションは、FxCop または StyleCop を使用し、必要に応じてカスタム ルールを作成することです。
まずはFxCopから。そこで試していることができない場合は、NStatic や NDepend などを試してください。
非常に難しい作業になるというポスターの 1 つに同意しますが、Microsoft がサードパーティの Windows ドライバー分析ツールで行ったように、Lisp ではなく F# から始めます。
http://arstechnica.com/journals/microsoft.ars/2005/11/10/1796
F# は Lisp の表現力を共有しており (ほとんど)、VB.NET と同じように CLR で動作するため、すべてが簡単になります。