如何有效的解决代码的圈复杂度
作者:京东零售 杨学刚 背景介绍 不管小型公司还是大型互联网公司,很多项目债台高筑,新功能开发困难。其中一个很大的原因就是代码复杂,可读性差。Sonar开发团队曾上纲上线的戏称开发人员的7宗罪,其中很关键的一条就是“复杂度”。那复杂度有没有一个明确的衡量标准,我们又如何去解决代码的圈复杂度呢?今天我在这里和大家聊一下。 圈复杂度的计算方法 我们先来看一下圈复杂度与代码质量以及测试和维护成本之间的一个关系。 我们可以看到当圈复杂度,在1-10之间的时候,代码是清晰,结构化的。可测试性比较高,维护成本也比较低。随着圈复杂度的升高,代码的状况开始恶化,当大于30的时候,代码已经逐步变为不可读,维护成本非常高。 点边计算法 那圈复杂度是如何计算的呢,常用的第一种方法叫做点边计算法,它圈复杂度的计算方式 V(G) = E − N + 2,我们用下边图来解释一下这个公式: 其中公式之中的E指的是控制流图中边的数量,N指的是控制流图中的节点数量。这两个图形指的就是控制流图。那我们可以计算一下,第一个控制流图的圈复杂度是:4-4+2=2. 节点判定法 除此之外圈复杂度还有一种更为直观的计算方法...

