产品介绍
腾讯云代码分析(Tencent Code Analysis, TCA)起步于 2012 年(内部代号CodeDog),是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
用心关注每行代码迭代、助力维护卓越代码文化!
精准跟踪管理代码分析发现的代码质量缺陷、代码规范、代码安全漏洞、无效代码,以及度量代码复杂度、重复代码、代码统计。
代码分析是通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行分析,验证代码是否满足规范性、安全性、可靠性、可维护性、部分性能等,对代码进行综合分析和度量等指标的一种代码分析技术。
重要
本文档为腾讯云代码分析帮助文档,文档内容仅作参考,以平台具体提供内容为准!
简要架构
TCA 是由 TCA 平台端 + TCA 客户端组成:
平台端主要用于相关配置,存储相关分析结果。
客户端承载代码分析任务,并在其所在的机器上执行分析。TCA 采用分布式客户端架构,可以灵活的将客户端部署到任意地域(需要能够访问 TCA 平台端),例如作为一次性临时节点、常驻节点使用。

主要功能
提示
代码库分析:是指在平台点击接入代码库,登记代码库地址、凭证等信息,启动分析时,客户端节点会获取分析任务,通过 git 命令拉取代码执行代码分析。如代码库在企业内网,但需要在 TCA SAAS 上执行代码分析,可参考内网仓库分析。
源码包分析:是指在平台点击接入源码包,上传源码包(将代码库压缩成源码包),启动分析时会解压源码包执行代码分析。
制品库分析:是指在平台点击接入制品库,上传二进制制品(如 docker image、apk 等),启动分析时会启发式解包执行二进制组件成分分析(SCA)
| 主要功能 | 代码库分析 | 源码包分析 | 制品库分析 |
|---|---|---|---|
| 代码检查 | ✅ | ✅ | ❌ |
| 圈复杂度 | ✅ | ✅ | ❌ |
| 重复代码 | ✅ | ✅ | ❌ |
| 代码统计 | ✅ | ✅ | ❌ |
| 历史趋势 | ✅ | ❌ | ❌ |
| 源码组件成分 | ✅ | ✅ | ❌ |
| 二进制组件成分 | ❌ | ❌ | ✅ |
代码检查
支持进行代码检查,能够检测出代码质量缺陷、代码安全漏洞、代码规范等。通过代码检查精准跟踪并管理发现的代码质量缺陷、代码规范、代码安全漏洞、无效代码等问题。
目前已集成众多自研、知名开源分析工具,并采用了分层分离架构,可以满足团队快速使用自助管理工具。
代码度量
圈复杂度
支持圈复杂度分析,能够检测出代码的圈复杂度,包括方法圈复杂度和文件圈复杂度。圈复杂度也称为条件复杂度或循环复杂度,它可以用来衡量一个模块结构的复杂程度。圈复杂度大说明程序代码的判断逻辑复杂,可能造成代码质量低下且难于测试和维护。
定期分析工程项目中代码的圈复杂度,可以有效地帮助开发与测试逐步优化代码质量。
重复代码
支持重复代码检查,能够检测出代码的重复行数,重复块数及重复率。定期分析工程项目中的重复代码,可以有效地帮助开发团队发现冗余代码,方便开发团队进行代码抽象和重构,降低代码风险,以便于更好的管理和维护代码。
代码统计
支持全量增量展示代码行数统计,包含代码行、注释行和空白行,可以有效地跟踪了解工程项目中代码量持续变化,并可以查看各个语言的占比情况。
历史趋势
支持代码历史趋势分析,能够分析出代码库整体及代码库成员对应的代码量、提交次数、代码检查、重复代码、圈复杂度等变更趋势。
组件成分
支持源码组件分析、二进制软件成分分析,用于分析项目中的软件成分、License 合规风险、安全漏洞、开源组件投毒风险,以及敏感信息泄漏等多维度风险。