複数のプロジェクトに分割された大規模なソース リポジトリがあります。ソース コードの健全性に関するレポートを作成し、対処が必要な問題領域を特定したいと考えています。
具体的には、サイクロマティックな複雑度の高いルーチンを呼び出し、繰り返しを特定し、糸くずのような静的分析を実行して、疑わしい (したがってエラーの可能性が高い) 構造を見つけたいと考えています。
このようなレポートを作成するにはどうすればよいでしょうか。
複数のプロジェクトに分割された大規模なソース リポジトリがあります。ソース コードの健全性に関するレポートを作成し、対処が必要な問題領域を特定したいと考えています。
具体的には、サイクロマティックな複雑度の高いルーチンを呼び出し、繰り返しを特定し、糸くずのような静的分析を実行して、疑わしい (したがってエラーの可能性が高い) 構造を見つけたいと考えています。
このようなレポートを作成するにはどうすればよいでしょうか。
循環的複雑度を測定するために、traceback.orgで利用できる優れたツールがあります。このページには、結果の解釈方法の概要も示されています。
pylintの場合は+1 。これは、コーディング標準(PEP8または独自の組織のバリアント)への準拠を検証するのに優れており、最終的には循環的複雑度を軽減するのに役立ちます。
循環的複雑度については、 httpsradon
: //github.com/rubik/radonを使用できます。
(pip
インストールに使用: pip install radon
)
さらに、次の機能もあります。
静的分析にはpylintとpycheckerがあります。個人的には、pychecker よりも包括的と思われる pylint を使用しています。
循環的複雑度については、この perl プログラム、または同じことを行う Python プログラムを紹介するこの記事を試すことができます
新しいプロジェクトを理解する必要がある場合、Picana は魅力的に機能します。
PyCAna (Python コード アナライザー) は、コードの実行後にクラス ダイアグラムを作成する、Python 用の単純なコード アナライザーの派手な名前です。
それがどのように機能するかを参照してください: http://pycana.sourceforge.net/
出力:
Pydevのおかげで、pylintをEclipse IDEに非常に簡単に統合し、変更されたファイルを保存するたびにコードレポートを取得できます。
pep8、pyflakes、および循環的複雑度分析を 1 つのツールで提供する flake8 を使用します。
同様のコード スニペットを見つけるのに役立つCloneDiggerというツールがあり ます。