P3C代码质量检查测试
本技能基于阿里巴巴Java开发手册P3C规范,对代码进行全面的质量检查测试。
测试范围
本测试技能涵盖以下P3C规范领域:
1. 代码风格规范 (p3c-coding-style)
- - 命名风格:类名、方法名、变量名、常量命名规范
- 代码格式:大括号、缩进、空格、行长度等格式规范
- 常量定义:魔法值、Long类型、常量分类
- 注释规约:Javadoc规范、注释语言、注释同步更新
2. 异常与日志规范 (p3c-exception-logging)
- - 异常处理:异常捕获原则、异常处理要求、NPE防护
- 日志规约:日志框架、日志保存、日志输出、日志级别
3. 高级编程规范 (p3c-advanced-coding)
- - 集合处理:hashCode和equals、subList使用、集合转数组、foreach循环
- 并发处理:线程池、锁性能、死锁预防、并发更新
- 控制语句:switch语句、大括号使用、if-else优化
4. MySQL数据库规范 (p3c-mysql-database)
- - 建表规约:字段要求、表名要求、索引命名
- SQL语句规约:count使用、in操作、分页查询
- 索引规约:唯一索引、join限制、索引长度
- ORM映射规约:查询字段、参数绑定、事务管理
5. OOP编程规范 (p3c-oop-standards)
- - 方法覆写:@Override注解、equals方法、包装类比较
- 序列化:serialVersionUID、toString方法
- 访问控制:类成员访问控制、final关键字使用
6. 安全规约 (p3c-security-rules)
- - 权限控制:水平权限校验、数据脱敏
- SQL注入防护:参数绑定、字符串拼接
- XSS/CSRF防护:安全过滤、防重放限制
- 参数验证:有效性验证、防刷策略
7. 单元测试规范 (p3c-unit-testing)
- - AIR原则:自动化、独立性、可重复性
- 测试粒度:方法级别测试、核心业务测试
- 测试覆盖率:语句覆盖率、分支覆盖率
- BCDE原则:边界值、正确输入、设计文档、错误输入
使用时机
- - 功能开发完成后
- 需求变更后
- Bug修复后
- 回归测试
- 代码提交前
执行方式
本技能使用 Trae IDE 内置工具进行代码质量检查,无需额外脚本:
基本测试流程
- 1. 查找 Java 文件:使用 Glob 工具查找所有 .java 文件
- 读取代码内容:使用 Read 工具读取文件内容
- 代码结构分析:使用 SearchCodebase 进行代码结构分析
- 获取编译诊断:使用 GetDiagnostics 获取编译错误和警告
- 正则匹配检查:使用 Grep 工具配合正则表达式匹配 P3C 规范违规
- 调用子技能:调用以下子技能进行详细检查
- p3c-coding-style
- p3c-exception-logging
- p3c-advanced-coding
- p3c-mysql-database
- p3c-oop-standards
- p3c-security-rules
- p3c-unit-testing
- 7. 生成测试报告:使用 Write 工具生成 Markdown 格式报告
常用 Trae IDE 内置工具
文件查找工具
- - Glob - 查找所有 .java 文件
- LS - 列出目录结构
代码读取工具
- - Read - 读取文件内容
- SearchCodebase - 搜索代码库中的特定模式和结构
代码分析工具
- - Grep - 使用正则表达式搜索代码,匹配 P3C 规则
- GetDiagnostics - 获取 Trae IDE 的语言诊断信息(编译错误、警告等)
报告生成工具
- - Write - 生成 Markdown 格式的测试报告
子技能说明
本技能是聚合技能,会调用以下子技能进行详细检查:
| 子技能 | 描述 | 检查内容 |
|---|
| p3c-coding-style | 代码风格规范 | 命名风格、代码格式、常量定义、注释规约 |
| p3c-exception-logging |
异常与日志规范 | 异常处理、日志规约、NPE防护 |
| p3c-advanced-coding | 高级编程规范 | 集合处理、并发处理、控制语句 |
| p3c-mysql-database | MySQL数据库规范 | 建表规约、SQL语句、索引规约、ORM映射 |
| p3c-oop-standards | OOP编程规范 | 方法覆写、equals/hashCode、包装类、序列化 |
| p3c-security-rules | 安全规约 | 权限控制、SQL注入防护、XSS/CSRF防护、参数验证 |
| p3c-unit-testing | 单元测试规范 | AIR原则、测试粒度、测试覆盖率、BCDE原则 |
测试执行流程
步骤1:代码扫描
使用 Trae IDE 内置工具扫描指定的Java源代码文件或目录:
- - 使用 Glob 查找所有 .java 文件
- 使用 Read 读取文件内容
- 使用 SearchCodebase 进行代码结构分析
- 使用 GetDiagnostics 获取编译诊断信息
步骤2:规范检查
根据P3C规范对代码进行逐项检查。本技能是聚合技能,会调用以下子技能进行详细检查:
子技能调用
- 1. p3c-coding-style - 代码风格规范
- 命名风格:类名、方法名、变量名、常量命名规范
- 代码格式:大括号、缩进、空格、行长度等格式规范
- 常量定义:魔法值、Long类型、常量分类
- 注释规约:Javadoc规范、注释语言、注释同步更新
- 2. p3c-exception-logging - 异常与日志规范
- 异常处理:异常捕获原则、异常处理要求、NPE防护
- 日志规约:日志框架、日志保存、日志输出、日志级别
- 3. p3c-advanced-coding - 高级编程规范
- 集合处理:hashCode和equals、subList使用、集合转数组、foreach循环
- 并发处理:线程池、锁性能、死锁预防、并发更新
- 控制语句:switch语句、大括号使用、if-else优化
- 4. p3c-mysql-database - MySQL数据库规范
- 建表规约:字段要求、表名要求、索引命名
- SQL语句规约:count使用、in操作、分页查询
- 索引规约:唯一索引、join限制、索引长度
- ORM映射规约:查询字段、参数绑定、事务管理
- 5. p3c-oop-standards - OOP编程规范
- 方法覆写:@Override注解、equals方法、包装类比较
- 序列化:serialVersionUID、toString方法
- 访问控制:类成员访问控制、final关键字使用
- 6. p3c-security-rules - 安全规约
- 权限控制:水平权限校验、数据脱敏
- SQL注入防护:参数绑定、字符串拼接
- XSS/CSRF防护:安全过滤、防重放限制
- 参数验证:有效性验证、防刷策略
- 7. p3c-unit-testing - 单元测试规范
- AIR原则:自动化、独立性、可重复性
- 测试粒度:方法级别测试、核心业务测试
- 测试覆盖率:语句覆盖率、分支覆盖率
- BCDE原则:边界值、正确输入、设计文档、错误输入
检查方法
使用 Grep 工具配合正则表达式匹配代码中的P3C规范违规:
- - 强制规范:必须遵守,违反即视为严重问题
- 推荐规范:建议遵守,违反视为一般问题
- 参考规范:可选择性遵守,违反视为轻微问题
步骤3:问题分类
将检查到的问题按严重程度分类:
- - 致命问题:违反强制规范,可能导致严重后果
- 严重问题:违反强制规范,影响代码质量
- 一般问题:违反推荐规范,影响代码可维护性
- 轻微问题:违反参考规范,属于优化建议
步骤4:生成测试报告
使用 Write 工具生成详细的测试报告,包含:
- - 测试范围和测试时间
- 问题统计(按严重程度和规范类别)
-