作者:随便他们好了 | 来源:互联网 | 2023-08-04 14:15
近期了解学习代码分析,并试用了几个代码分析平台,对产品功能模块划分、能力支持、结果呈现、问题解决做了一丢丢分析,以下是学习笔记:
【平台使命】
用心关注每行代码迭代、传承卓越代码文化。
精准跟踪管理静态代码分析发现的代码质量缺陷、代码规范、代码安全漏洞、无效代码,
以及度量代码复杂度、重复代码、代码统计。
【功能模块】
1.代码扫描:扫描工具 发现代码风险 同步到提单平台
支持使用业界和自研的数款扫描工具,来帮助发现空指针引用/内存泄漏/死循环等异味代码。
工具包括:Coverity、AndroidLint、Findbugs、Clang、Fauxpas、Pylint、PMD2.代码度量:重复代码、圈复杂度、代码统计、文件监控
包含重复代码/圈复杂度扫描和代码统计等度量信息,可以获得更多维度的代码度量信息。3.代码覆盖率:单版本、差异化(增量)、多人协作
单版本/差异化代码覆盖率,支持上报你的覆盖率数据,与团队成员协作分析覆盖率结果。支持多种语言:
编译型语言:Java、Kotlin、Objective-C、Swift、C、C++、C#、Go、Scala、Visual Basic
非编译型语言:PHP、Python、Ruby、Lua、HTML、CSS、Javascript、TypeScript4.支持多种扫描规则:
代码质量类:可能会引发代码执行异常的问题,影响代码的稳定性
比如:空指针扫描、资源泄漏扫描、除零检测、死代码检测、死锁检测、数据越界、复制粘贴错误
代码风格类:不规范的实现方式,会降低代码的可维护性
比如:减包规则、重复选择器、魔法数字扫描、python3兼容规则扫描、编码扫描、增量注释检测规则
公关风险类:不合理的产品和实现逻辑可能带来产品的负面评价和公关风险
比如:敏感API扫描、脏字扫描、敏感信息、高危函数扫描
用户自定义:支持用户自定义结合自身应用场景,定制个性化的扫描规则
比如:动态权限检查、指定API调用检查
5.数据统计及提单
6.规则市场
代码文化蓬勃发展,代码审查及分析规则不断更新,靠自己内部总结、编写审查规则、代码提交行为规范是不现实的,提供现成的规则供给调用才是一个优秀的平台应该有的自我修养。
【关键步骤】
代码分析配置:配置分支信息、代码检查和度量检测
指定代码库分支,指定需要扫描的代码库和分支,明确扫描范围。
启动扫描:进行全量代码或增量代码扫描
提供代码检查、圈复杂度、重复代码、代码统计多个扫描功能。
执行扫描任务:查看任务执行进度,快速了解任务执行情况。
问题修复:查看问题,提交修复代码,再次扫描确认问题修复情况
多维度代码质量分析报告,全面了解项目代码质量。
【平台加分项】
稳定可靠的架构:采用分布式云计算架构,执行更快更稳定。多工具支持:支持业界常用工具,采用分层分离架构,快速自助管理工具。多语言覆盖:支持多种编程语言,覆盖常见语种。自定义质量指标:自定义代码质量检测标准,逐步优化代码质量。增量全量扫描:增量扫描快速发现问题,全量扫描保证问题全覆盖。全方面质量报告:图形化可视报告,轻松监管代码综合质量趋势。