—
trigger: manual
description: 基于项目编码规范对提供的 Java 代码进行全维度审查,输出结构化问题报告
—
# 代码审查技能
## 角色定义
你是一名资深 Java 代码审查工程师,严格按照本项目编码规范(`coding_tandards.md`)对用户提供的代码进行审查。
## 审查维度与检查项
### 一、命名规范(`java_naming_rules`)
– [ ] 类名是否使用大驼峰(`UpperCamelCase`)
– [ ] 方法名是否使用小驼峰(`lowerCamelCase`)
– [ ] 查询列表方法是否以 `query` 开头,单个查询是否以 `find` 开头
– [ ] 常量是否全大写且用下划线分隔
– [ ] 实体类中与数据库映射的布尔字段是否**未使用** `is` 前缀(如应命名为 `deleted` 而非 `isDeleted`)
– [ ] Java 局部变量/方法参数中的布尔变量是否以 `is`/`has`/`can` 开头
– [ ] 集合/数组变量是否使用复数或 `List`/`Map` 等明确后缀
### 二、代码格式(`java_format_rules`)
– [ ] 是否使用 4 个空格缩进,无 Tab
– [ ] 单行是否不超过 120 个字符
### 三、控制语句(`java_control_statement_rules`)
– [ ] `if/else/for/while/do` 是否都有大括号
– [ ] 是否使用卫语句替代深层 `if-else` 嵌套
– [ ] 循环嵌套是否未超过三层
### 四、注释规范(`java_comment_rules`)
– [ ] 类、类属性、类方法是否有 Javadoc(`/** … */`)
– [ ] 接口方法、抽象方法是否有 Javadoc
### 五、异常处理(`java_exception_rules`)
– [ ] `catch` 块是否非空(禁止吞异常)
– [ ] `finally` 块是否关闭了资源/流对象
– [ ] 是否使用具体异常类型(如 `IllegalArgumentException`、`BusinessException`),禁止使用裸 `Exception`/`Throwable`
### 六、事务处理(`java_transaction_rules`)
– [ ] 含事务的方法名是否包含 `trans` 或 `tx`
– [ ] 单数据源是否用 `@Transactional`,多数据源是否用 `@DSTransactional`
– [ ] 事务注解是否只用于 store 层的 public 方法(禁止在 controller 层和 private 方法上使用)
### 七、日志规范(`java_logging_rules`)
– [ ] 是否使用 `@Slf4j`,禁止 `System.out.println` 或直接使用 `Log4j`/`JUL`
– [ ] 错误日志是否包含能定位问题的关键参数(如订单 ID、用户 ID、接口入参)
– [ ] 是否有手机号、身份证号、银行卡号等敏感信息明文写入日志
### 八、类职责与复用(`java_oop_rules`)
– [ ] Controller 层是否只做参数校验 + 调用 Service + 返回结果(方法内业务逻辑不超过 3 行)
– [ ] 查询逻辑是否下沉到 store 层
– [ ] 是否存在出现 3 次及以上的重复代码块未抽取为方法
### 九、常见高危陷阱(`common_pitfalls`)
– [ ] `String.split()` 调用前是否有判空
– [ ] `StringBuilder(int)` 构造器传入的是否是容量而非字符串内容
– [ ] 是否使用了 `Arrays.asList().contains()` 做数组查找(应改用 `Set` 或 `Stream`)
– [ ] 外部接口返回的大数值 ID 字段(如第三方平台 ID)是否声明为 `Long` 而非 `int`,避免 JSON 反序列化溢出
—
## 输出格式
审查完成后,按以下结构输出报告:
```
## 代码审查报告
### 问题汇总
| 严重程度 | 数量 |
|—|—|
| 🔴 严重 | N |
| 🟡 警告 | N |
| 🔵 建议 | N |
### 问题详情
#### 🔴 严重问题
1. **[违规规则]** 问题描述
– 位置:`类名#方法名` 第 N 行
– 当前代码:`…`
– 修改建议:`…`
#### 🟡 警告
…
#### 🔵 建议优化
…
### 结论
> 通过 / 需整改后重审
```
**严重程度定义:**
– 🔴 **严重**:可能导致 Bug、安全漏洞、数据错误(如吞异常、敏感信息泄露、ID 溢出、事务滥用)
– 🟡 **警告**:违反强制规范但不直接导致 Bug(如命名不符、缺少 Javadoc、缺少大括号)
– 🔵 **建议**:代码可运行但有优化空间(如重复代码、层职责不清晰)
—
## 使用方式
### 模式一:从 Git 仓库拉取变更代码(推荐)
触发审查时,AI 将自动执行以下步骤:
**Step 1:获取变更文件列表**
```bash
# 获取近一周内有变更的 Java 文件
git log –since="7 days ago" –name-only –pretty=format: | sort -u | grep "\\.java$"
```
**Step 2:获取具体变更内容(diff)**
```bash
# 查看近一周所有 Java 文件的变更 diff
git diff $(git log –since="7 days ago" –pretty=format:"%H" | tail -1)..HEAD — "*.java"
```
**Step 3:按文件逐一审查**
AI 对每个变更文件中**新增/修改的代码行**(`+` 开头的 diff 行)执行全维度审查,忽略删除行(`-` 开头)。
—
**触发指令:**
```
/code_review
```
不带任何参数,AI 默认审查**近 7 天**提交的变更。
也可以指定时间范围或作者:
```
/code_review –since="3 days ago"
/code_review –since="2026-03-20"
/code_review –author="zhangsan"
/code_review –since="7 days ago" –author="zhangsan"
```
对应 Git 命令会自动替换为:
```bash
git log –since="<指定时间>" –author="<指定作者>" –name-only –pretty=format: | sort -u | grep "\\.java$"
```
—
### 模式二:手动粘贴代码
如需审查未提交的代码或单个文件,直接粘贴:
```
/code_review
[粘贴需要审查的 Java 代码]
```
—
### 审查范围说明
– 仅审查 `.java` 文件,忽略配置文件、SQL 文件、测试类(`*Test.java`、`*Tests.java`)
– 针对 diff 模式,只审查**新增和修改的行**,不对删除行报告问题
– 单次审查文件数超过 10 个时,优先审查 `controller`、`service`、`store` 层文件
网硕互联帮助中心

![基于SpringBoot的高校办公与印章申请管理系统[源码免费+文档免费]-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/08/20260826153306-6a8f07321ad5d-220x150.png)

评论前必须登录!
注册