【Python CI】圈复杂度 lizard

1. 圈复杂度

1.1 什么是圈复杂度?

引用[1]
圈复杂度是 Thomas J. McCabe 在 1976年开创的软件指标,用来判断程序的复杂度。这个指标度量源代码中线性独立的路径或分支的数量。根据 McCabe 所说,一个方法的复杂度最好保持在10 以下。这是因为对人类记忆力的研究表明,人的短期记忆只能存储 7 件事(偏差为正负 2)。

如果开发人员编写的代码有 50 个线性独立的路径,那么为了在头脑中描绘出方法中发生的情况,需要的记忆力大约超过短期记忆容量的 5倍。简单的方法不会超过人的短期记忆力的极限,因此更容易应付,事实证明它们的错误更少。Enerjy 在 2008年所做的研究表明,在圈复杂度与错误数量之间有很强的相关性。复杂度为 11 的类的出错概率为 0.28,而复杂度为 74的类的出错概率会上升到 0.98。

1.2 计算原理

TODO

2. lizard

Git源码链接 https://github.com/terryyin/lizard

  • 默认递归分析文件夹
  • 支持15中开发语言: C/C++ (works with C++14); Java; C# (C Sharp); JavaScript (With ES6 and JSX); Objective-C; Swift; Python; Ruby; TTCN-3; PHP; Scala; GDScript;Golang; Lua; Rust
2.1 依赖安装

方式一 pip安装

pip install lizard

方式二 源码安装

python setup.py install --install-dir=/path/to/installation/directory/

方式三 直接运行
直接将lizard.py及依赖的目录移动到待检测的文件目录中, 直接在命令行中运行以下命令,控制台数据结果表格

python lizard.py 
2.2 使用

命令行使用

lizard 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值