代码分析

代码分析能够在不运行代码的情况下,通过使用词法分析、语法分析、控制流、数据流分析等多种先进技术对程序代码进行扫描分析。通过代码分析能够验证与度量代码质量是否满足规范性、安全性、稳定性及可维护性等多种要求。我们关注每个团队的代码迭代体验、期望助力您创造卓越的代码文化。

CODING 代码分析的优势

1. 把控代码质量
轻松监管代码综合质量趋势,能够自动呈现代码的具体质量问题并提示消除。

2. 综合代码管理
针对静态分析预测所产生的误报,可以轻松进行误报管理。支持对第三方代码进行过滤管理、并且还能够对存量和增量代码进行批次管理。

3. 兼容主流语言
CODING 代码分析在自研的基础上集成了多个业界知名开源工具,包含圈复杂度、重复代码检测、二次开发等功能,并能够根据规则有效性提供出基础扫描规则包,可轻松复用。

支持的语言包括:C、C++、Java、JavaScript、Objective-C、PHP、Python、C#、Kotlin、Go、Lua、Html、Css、VisualBasic。

功能介绍

代码检查

在不运⾏代码的情况下对代码进行逐行分析。检查过程中运用了词法分析、语法分析、控制流、数据流分析等技术。不仅如此,还能够检测代码是否符合规范性、安全性、可靠性、可维护性、潜在 Bug 数量控制等团队标准化指标。常见的检查项包括:空指针异常、资源释放、未使用代码、死循环、高危函数、魔法数字等。

代码度量

圈复杂度

圈复杂度是一种代码复杂度的衡量标准,它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立执行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数,即合理的预防错误所需要测试的最少路径条数。

圈复杂度的指导意义是什么?

  • 圈复杂度高的模块和方法,其缺陷个数往往也多,需重点关注。
  • 可用于指导测试用例设计,创建数量与被测代码圈复杂度值相等的测试用例,以此提升用例对代码的分支覆盖率。
  • 在持续集成环境中,可评估模块或函数的复杂度和增长值。

如何处理圈复杂度较高的函数?

  • 重构函数:提炼函数,替换算法。
  • 简化条件表达式:逆向表达,分解条件,合并条件,合并条件,以多态取代条件式。
  • 简化函数调用:读写分离,参数化方法,以明确函数取代参数。

重复代码检测

重复代码意味着相同代码出现在不同的地方,不利于关键源码的定位。如果需要修改的地方有多处代码重复则意味着要做许多繁杂的工作,容易出错。代码冗余对于个人或团队而言都不是一个好的现象,保持代码的简洁对于效率的提升显而易见,如无必要,勿增实体。

代码统计

代码统计可以帮你统计各个目录下的代码数量及变更情况。

了解完全部功能,立即快速入门

上一篇Git 仓库设置
文档是否对您有用?
感谢反馈有用
感谢反馈没用