test-p3c-code-quality

star 36

执行代码质量检查测试,基于阿里巴巴P3C规范对代码进行全面检查,包括命名规范、异常处理、并发安全、数据库规范、OOP规范、安全规约和单元测试规范。Invoke when user needs to verify code quality against P3C standards.

jie023 By jie023 schedule Updated 2/5/2026

name: "test-p3c-code-quality" description: "执行代码质量检查测试,基于阿里巴巴P3C规范对代码进行全面检查,包括命名规范、异常处理、并发安全、数据库规范、OOP规范、安全规约和单元测试规范。Invoke when user needs to verify code quality against P3C standards."

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 文件
  2. 读取代码内容:使用 Read 工具读取文件内容
  3. 代码结构分析:使用 SearchCodebase 进行代码结构分析
  4. 获取编译诊断:使用 GetDiagnostics 获取编译错误和警告
  5. 正则匹配检查:使用 Grep 工具配合正则表达式匹配 P3C 规范违规
  6. 调用子技能:调用以下子技能进行详细检查
    • 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 - 获取 VS Code 的语言诊断信息(编译错误、警告等)

报告生成工具

  • 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 工具生成详细的测试报告,包含:

  • 测试范围和测试时间
  • 问题统计(按严重程度和规范类别)
  • 问题详情列表
  • 改进建议

输入参数

执行测试时需要提供以下参数:

  1. 代码路径:要检查的Java源代码文件或目录路径
  2. 业务名称:用于生成报告路径和文件名
  3. 测试内容:描述本次测试的具体内容
  4. 测试接口/模块名称:被测试的接口或模块名称

测试报告格式

测试报告将生成到以下路径:

doc/{业务名称}/测试报告/{测试内容}/{测试接口名称}_{时间戳}.md

报告包含以下内容:

报告头部

  • 测试时间
  • 测试人员
  • 测试范围
  • 测试工具

问题统计

  • 问题总数
  • 致命问题数量
  • 严重问题数量
  • 一般问题数量
  • 轻微问题数量

问题分类统计

按P3C规范类别统计问题分布

问题详情列表

每个问题包含:

  • 问题编号
  • 严重程度
  • 规范类别
  • 规则描述
  • 代码位置(文件名、行号)
  • 问题说明
  • 修改建议

改进建议

  • 高优先级改进项
  • 中优先级改进项
  • 低优先级改进项

质量评估

  • 代码质量评分
  • 符合度百分比
  • 风险评估

使用示例

示例1:检查单个文件

输入:
- 代码路径:e:\project\src\main\java\com\example\UserService.java
- 业务名称:用户管理
- 测试内容:代码质量检查
- 测试接口名称:UserService

输出:
- 报告路径:doc/用户管理/测试报告/代码质量检查/UserService_20250103143025.md

示例2:检查整个模块

输入:
- 代码路径:e:\project\src\main\java\com\example\order\
- 业务名称:订单系统
- 测试内容:代码质量检查
- 测试接口名称:OrderModule

输出:
- 报告路径:doc/订单系统/测试报告/代码质量检查/OrderModule_20250103143025.md

检查规则说明

强制规范检查

  • 命名规范:类名、方法名、变量名是否符合规范
  • 代码格式:大括号、缩进、空格是否符合规范
  • 异常处理:是否正确处理异常,避免NPE
  • 并发安全:线程池使用、锁使用是否正确
  • 数据库规范:字段定义、SQL语句是否符合规范
  • 安全规范:是否有SQL注入、XSS等安全漏洞
  • 单元测试:是否遵循AIR原则

推荐规范检查

  • 注释完整性:是否有必要的Javadoc注释
  • 代码可读性:命名是否清晰,逻辑是否简洁
  • 性能优化:是否有性能优化建议
  • 代码复用:是否存在重复代码

参考规范检查

  • 代码风格:是否符合团队编码风格
  • 最佳实践:是否使用了推荐的最佳实践
  • 优化建议:是否有进一步优化的空间

注意事项

  1. 报告路径:确保doc目录存在且有写入权限
  2. 代码编码:确保源代码文件使用UTF-8编码
  3. 依赖解析:对于复杂的依赖关系,可能需要额外的配置
  4. 误报处理:某些规则可能存在误报,需要人工审核
  5. 优先级处理:优先处理致命和严重问题

质量评分标准

  • 优秀:90分以上,无致命和严重问题
  • 良好:80-89分,无致命问题,严重问题不超过3个
  • 合格:70-79分,致命问题不超过1个,严重问题不超过5个
  • 需改进:60-69分,致命问题不超过2个,严重问题不超过10个
  • 不合格:60分以下,存在较多严重问题

最佳实践

  1. 定期检查:建议在代码提交前进行P3C规范检查
  2. 持续集成:将P3C检查集成到CI/CD流程中
  3. 问题跟踪:将检查到的问题录入缺陷管理系统
  4. 团队培训:定期进行P3C规范培训,提高团队代码质量意识
  5. 规范更新:及时更新P3C规范版本,保持与最新标准一致

现在,请提供以下信息开始测试:

  1. 代码路径(文件或目录)
  2. 业务名称
  3. 测试内容描述
  4. 测试接口/模块名称
Install via CLI
npx skills add https://github.com/jie023/trae-setting --skill test-p3c-code-quality
Repository Details
star Stars 36
call_split Forks 9
navigation Branch main
article Path SKILL.md
More from Creator