我有一个跨多个项目的大型源存储库.我想制作一份关于源代码健康状况的报告,找出需要解决的问题领域.
具体来说,我想调出具有高圈复杂度的例程,识别重复,并且可能运行一些类似lint的静态分析来发现可疑(因而可能是错误的)构造.
我该如何构建这样的报告?
为了测量圈复杂度,traceback.org提供了一个很好的工具.该页面还提供了如何解释结果的良好概述.
pylint为+1.它非常适合验证对编码标准的遵守情况(无论是PEP8还是您自己的组织的变体),这最终有助于降低圈复杂度.
对于圈复杂度,您可以使用radon
:https://github.com/rubik/radon
(使用pip
安装它:pip install radon
)
此外,它还具有以下功能:
原始指标(包括SLOC,注释行,空行和&c.)
Halstead指标(所有这些)
可维护性索引(Visual Studio中使用的索引)
对于静态分析,有pylint和pychecker.我个人使用pylint,因为它似乎比pychecker更全面.
对于圈复杂度,您可以尝试这个perl程序,或者本文介绍了一个python程序来做同样的事情
当您需要了解新项目时,Pycana就像魅力一样!
PyCAna(Python代码分析器)是一个简单的python代码分析器的名称,它在执行代码后创建一个类图.
看看它是如何工作的:http: //pycana.sourceforge.net/
输出:
alt text http://pycana.sourceforge.net/relations.png
感谢Pydev,您可以非常轻松地将pylint集成到Eclipse IDE中,并在每次保存修改后的文件时获取代码报告.
使用flake8,它在一个工具中提供pep8,pyflakes和圈复杂度分析