什么是圈复杂度

圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立线性路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。

一般指代码中的分支数量,比如有一个if分支,代码复杂度就加1,如果if中有“||”或者“&&”那么代码复杂度就加2,for和while同理。

最佳实践

战略实践

核心思想

1,业务为核心,不能单纯的想着降低复杂度,应该是业务上简化逻辑,然后自然而然的降低复杂度
2,复杂的封装或转换逻辑挪到一个转换中心去统一管理,降低耦合
3,多方法代替一个方法的大量代码,也就是低耦合,高内聚

战术实践

多if-else语句

多if分支语句可以采用switch - case来代替(尤其是条件较为明确的)

修改前圈复杂度为5

  if (item.Type==1) {  
            tenantType = "正式租户";
            }
            else if (item.Type == 1)
            {
            tenantType = "测试租户";
            }
            else if (item.Type == 1)
            {
            tenantType = "最佳实践租户";
             }

修改后圈复杂度为3

 switch (item.Type)
            {
                case 1:
                    tenantType = "正式租户";
                    break;

                case 2:
                    tenantType = "测试租户";
                    break;

                case 3:
                    tenantType = "最佳实践租户";
                    break;
            }