美文网首页
代码质量管控 -- 复杂度检测

代码质量管控 -- 复杂度检测

作者: you的日常 | 来源:发表于2021-12-23 11:26 被阅读0次

1. 导读

你们是否也有过下面的想法?

  • 重构一个项目还不如新开发一个项目
  • 这代码是谁写的,我真想

你们的项目中是否也存在下面的问题?

  • 单个项目也越来越庞大,团队成员代码风格不一致,无法对整体的代码质量做全面的掌控
  • 没有一个准确的标准去衡量代 码结构复杂的程度,无法量化一个项目的代码质量
  • 重构代码后无法立即量化重构后代码质量是否提升

针对上面的问题,本文的主角 圈复杂度 重磅登场,本文将从圈复杂度原理出发,介绍圈复杂度的计算方法、如何降低代码的圈复杂度,如何获取圈复杂度,以及圈复杂度在公司项目的实践应用。

2. 圈复杂度

2.1 定义

圈复杂度 (Cyclomatic complexity) 是一种代码复杂度的衡量标准,也称为条件复杂度或循环复杂度,它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数。简称 CC 。其符号为 VG 或是 M 。

圈复杂度 在 1976 年由 Thomas J. McCabe, Sr. 提出。

圈复杂度大说明程序代码的判断逻辑复杂,可能质量低且难于测试和维护。程序的可能错误和高的圈复杂度有着很大关系。

2.2 衡量标准

代码复杂度低,代码不一定好,但代码复杂度高,代码一定不好。

圈复杂度 代码状况 可测性 维护成本
1 - 10 清晰、结构化
10 - 20 复杂
20 - 30 非常复杂
>30 不可读 不可测 非常高

3. 计算方法

3.1 控制流程图

控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式表示一个过程内所有基本块执行的可能流向, 也能反映一个过程的实时执行过程。

下面是一些常见的控制流程:

image.png
image.png
image.png

相关文章

  • 代码质量管控 -- 复杂度检测

    1. 导读 你们是否也有过下面的想法? 重构一个项目还不如新开发一个项目 这代码是谁写的,我真想 你们的项目中是否...

  • 工程项目施工质量管控最佳实践

    如工程项目采购的质量管控最佳实践所述,传统工程项目质量管控包括项目设计的质量管控、采购阶段的质量管控和现场施工及调...

  • (一)施工管理的组织

    一、 基本概念 项目管理核心:目标控制(投资、成本、进度、质量) 三控三管一协调三控:投资、质量、进度三管:合同、...

  • 质量管控培训

    采购质量前提把控是基础,品管质量管控是监督,如需产品及项目顺利执行,生产是第一,却也少不了品管部的监控。 一、常用...

  • 在淘宝,我们是这样衡量代码质量的

    简介:越高级别的程序员往往越看重代码质量。** 本篇文章主要聊一下在团队开发过程中,如何做到代码质量的管控与提升。...

  • Learning note 1

    如何评价代码的质量? 性能 可读性 拓展性 如何分析代码的时间复杂度和空间复杂度?(The most import...

  • 项目质量管控理念

    老张在前文国内工程项目质量管理普遍现状中提到了当前国内项目质量管控方面的不足。有不足就需要改进,但质量管控的改进,...

  • idea插件

    Java代码规范与质量检测插件SonarLint

  • 代码质量管控的四个阶段

    前言: 破窗效应:在烂代码上继续生产烂代码的心理负担小很多 传染性:烂代码传递着一种不在意质量,只看业务成果的负面...

  • 如何管控IT项目质量?

    引子 今天部门开会讨论这事儿,有了机会做次梳理。 如何定义项目质量? 什么是质量?产品或服务满足程度的度量,分级:...

网友评论

      本文标题:代码质量管控 -- 复杂度检测

      本文链接:https://www.haomeiwen.com/subject/obcukltx.html