feat: 添加 Claude 代码助手和相关文档

- 新增 CLAUDE.md 文件,提供项目概述、技术栈、命令和架构信息
- 新增多个代码审查和文档生成专家的配置文件,包括 backend-reviewer、frontend-reviewer、database-expert、api-documenter、test-generator 和 refactor-expert
- 新增 QUICK-REFERENCE.md 文件,提供快速参考和使用指南
- 新增 agents 目录下的 README.md 文件,详细说明各个 agent 的用途和使用方法

这些更改旨在提升开发效率和代码质量,提供清晰的指导和工具支持。
This commit is contained in:
tangweijie 2026-01-13 18:38:20 +08:00
parent e4ec8d27c6
commit a437dde89f
9 changed files with 1215 additions and 0 deletions

View File

@ -0,0 +1,256 @@
# 🚀 Agents 快速参考卡
## 一句话调用
```bash
# 后端代码审查
@backend-reviewer 审查这个类的代码质量和性能
# 前端代码审查
@frontend-reviewer 检查这个组件的性能和用户体验
# 数据库优化
@database-expert 优化这个SQL查询并设计合适的索引
# 生成API文档
@api-documenter 为这个Controller生成完整文档
# 生成测试代码
@test-generator 为这个Service生成单元测试
# 代码重构
@refactor-expert 分析代码问题并提供重构方案
```
---
## 📋 常见任务速查
### 开发新功能流程
```bash
1@database-expert 设计数据表
"帮我设计用户评分表包含用户ID、分数、评分时间等字段"
2⃣ 开发后端代码
3@backend-reviewer 审查代码
"审查 ScoreService 的代码质量"
4@test-generator 生成测试
"为 ScoreService 生成完整的单元测试"
5@api-documenter 生成文档
"为 ScoreController 生成API文档"
6⃣ 开发前端页面
7@frontend-reviewer 审查前端
"审查 ScoreList.vue 组件"
```
### 性能优化流程
```bash
1@database-expert 分析慢查询
"这个查询很慢,帮我分析并优化"
2@backend-reviewer 检查后端性能
"检查这个Service是否有性能问题"
3@frontend-reviewer 检查前端性能
"这个页面加载慢,帮我找出原因"
```
### 代码质量提升流程
```bash
1@refactor-expert 识别问题
"分析这段代码有什么问题"
2@refactor-expert 提供方案
"提供详细的重构方案"
3⃣ 实施重构
4@backend-reviewer 验证重构
"审查重构后的代码"
5@test-generator 补充测试
"为重构后的代码生成测试"
```
---
## 💡 使用技巧
### ✅ 好的提问方式
```
❌ "看看这个代码"
✅ "@backend-reviewer 审查 UserService.java 的性能问题,特别关注数据库查询"
❌ "写个测试"
✅ "@test-generator 为 ScoreService.createScore() 方法生成单元测试,包含正常和异常场景"
❌ "优化数据库"
✅ "@database-expert 这个查询执行很慢贴上EXPLAIN结果帮我优化并设计合适的索引"
```
### 📍 提供清晰的上下文
1. **指定文件路径**
```
@backend-reviewer 审查 backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/ScoreService.java
```
2. **说明具体问题**
```
@database-expert 这个查询在数据量大时很慢经常超过5秒帮我优化
```
3. **提供相关代码**
```
@refactor-expert 这个方法有100多行很难维护请帮我重构
[贴上代码]
```
---
## 🎯 专项任务模板
### 新建数据表
```
@database-expert
需求:设计一个问卷调查表
字段要求:
- 问卷ID主键
- 问卷标题
- 问卷描述
- 状态(草稿/已发布/已关闭)
- 创建人、创建时间、更新时间
- 需要关联到监区表
请设计完整的建表SQL包括索引和注释
```
### 代码审查检查清单
```
@backend-reviewer
请审查以下方面:
1. 代码规范和可读性
2. 安全性SQL注入、权限控制
3. 性能问题N+1查询、缓存使用
4. 异常处理
5. 日志记录
[贴上代码]
```
### 生成完整测试
```
@test-generator
请为 QuestionnaireService 生成完整测试:
1. 测试创建问卷(正常、重复、参数校验)
2. 测试查询问卷(分页、条件查询)
3. 测试更新问卷(状态流转、并发)
4. 测试删除问卷(软删除、权限)
使用 JUnit 5 和 Mockito
```
### API文档生成
```
@api-documenter
为 QuestionnaireController 生成API文档包括
1. 所有接口的请求参数和响应格式
2. 实际的cURL调用示例
3. 常见错误码说明
4. 接口调用流程图
使用Markdown格式
```
---
## 🔄 组合使用案例
### Case 1: 接手遗留代码
```bash
# 第一步:理解代码结构
@refactor-expert "分析这个Service的职责和代码问题"
# 第二步:识别改进点
@backend-reviewer "列出这个类的主要问题"
# 第三步:补充测试
@test-generator "先生成测试保护现有功能"
# 第四步:逐步重构
@refactor-expert "提供分步骤的重构方案"
```
### Case 2: 性能调优
```bash
# 第一步:数据库层面
@database-expert "分析这些慢查询日志并优化"
# 第二步:后端层面
@backend-reviewer "检查缓存使用和查询方式"
# 第三步:前端层面
@frontend-reviewer "检查是否有不必要的渲染和请求"
```
### Case 3: 新功能开发
```bash
# 设计阶段
@database-expert "设计数据模型"
# 开发阶段
# (自己开发)
# 审查阶段
@backend-reviewer "审查后端实现"
@frontend-reviewer "审查前端实现"
# 质量保证
@test-generator "生成测试代码"
@api-documenter "生成接口文档"
```
---
## ⚡ 快捷命令
```bash
# 列出所有agents
/agents
# 查看某个agent的详细配置
@backend-reviewer /help
# 切换到不同的agent
@frontend-reviewer
```
---
## 🎓 学习建议
1. **从简单任务开始**: 先用agents做代码审查熟悉它们的风格
2. **逐步尝试复杂任务**: 尝试让agents生成代码和测试
3. **调整优化**: 根据反馈改进你的提问方式
4. **形成习惯**: 将agents集成到日常开发流程中
---
## 📞 获取帮助
- 查看完整文档:`README.md`
- 查看agent配置`.claude/agents/*.md`
- 实验和探索agents很智能大胆尝试
---
**记住**: Agents 是你的AI编程助手充分利用它们提升开发效率 🚀

237
.claude/agents/README.md Normal file
View File

@ -0,0 +1,237 @@
# Claude Code Agents 使用指南
本项目包含 6 个专业的 Claude Code Subagents用于提升开发效率和代码质量。
## 📋 可用的 Agents
### 1. 🔍 Backend Reviewer后端代码审查专家
**文件**: `backend-reviewer.md`
**用途**: 审查 Java/Spring Boot 后端代码
**适用场景**:
- 代码提交前的质量检查
- 识别安全漏洞和性能问题
- 验证 Spring Boot 最佳实践
- 审查数据库查询效率
**使用方法**:
```
@backend-reviewer 请审查这个 Service 类的代码质量
```
---
### 2. 🎨 Frontend Reviewer前端代码审查专家
**文件**: `frontend-reviewer.md`
**用途**: 审查 Vue.js 前端代码
**适用场景**:
- 审查组件设计和代码质量
- 检查 TypeScript 类型使用
- 识别性能优化机会
- 验证用户体验设计
**使用方法**:
```
@frontend-reviewer 请审查这个 Vue 组件的性能
```
---
### 3. 🗄️ Database Expert数据库专家
**文件**: `database-expert.md`
**用途**: 数据库设计和 SQL 优化
**适用场景**:
- 设计数据库表结构
- 优化复杂 SQL 查询
- 设计索引策略
- 编写数据迁移脚本
**使用方法**:
```
@database-expert 帮我优化这个 SQL 查询的性能
```
**注意**: 已配置项目数据库连接信息192.168.10.126:3306/bank_go
---
### 4. 📖 API DocumenterAPI 文档专家)
**文件**: `api-documenter.md`
**用途**: 生成和维护 API 文档
**适用场景**:
- 根据 Controller 生成 API 文档
- 编写接口使用示例
- 维护 API 变更记录
- 生成 Postman 集合
**使用方法**:
```
@api-documenter 为这个 Controller 生成完整的 API 文档
```
---
### 5. 🧪 Test Generator测试代码生成专家
**文件**: `test-generator.md`
**用途**: 生成单元测试和集成测试
**适用场景**:
- 为 Service 生成单元测试
- 为 Controller 生成集成测试
- 为 Vue 组件生成测试
- 提高代码覆盖率
**使用方法**:
```
@test-generator 为这个 Service 类生成完整的单元测试
```
---
### 6. ♻️ Refactor Expert代码重构专家
**文件**: `refactor-expert.md`
**用途**: 识别代码问题并提供重构方案
**适用场景**:
- 识别代码异味
- 简化复杂逻辑
- 应用设计模式
- 改善代码可维护性
**使用方法**:
```
@refactor-expert 请分析这段代码并提供重构建议
```
---
## 🚀 快速开始
### 在 Claude Code 中使用
1. **列出所有 agents**:
```
/agents
```
2. **调用特定 agent**:
```
@agent-name 你的任务描述
```
3. **查看 agent 详情**:
`/agents` 命令中选择对应的 agent 查看完整配置
### 组合使用示例
#### 场景 1: 开发新功能
```
1. @database-expert 设计用户评分表结构
2. @backend-reviewer 审查生成的 Service 代码
3. @test-generator 生成单元测试
4. @api-documenter 生成 API 文档
```
#### 场景 2: 代码优化
```
1. @refactor-expert 分析代码问题
2. @backend-reviewer 审查重构后的代码
3. @test-generator 补充测试覆盖
```
#### 场景 3: 性能优化
```
1. @database-expert 分析慢查询
2. @backend-reviewer 检查代码性能问题
3. @frontend-reviewer 检查前端性能瓶颈
```
---
## ⚙️ 自定义配置
每个 agent 的配置文件都可以根据项目需求进行调整:
### 修改工具权限
```yaml
tools: Read, Grep, Glob, Write, Bash
```
可用工具:
- `Read` - 读取文件
- `Grep` - 搜索文本
- `Glob` - 文件模式匹配
- `Write` - 写入文件
- `Bash` - 执行命令
### 修改模型
```yaml
model: sonnet # 或 opus更强但更慢
```
### 自定义系统提示
修改 YAML 元数据后的内容,添加项目特定的规则和约定。
---
## 📌 最佳实践
1. **明确任务**: 给 agent 提供清晰具体的任务描述
2. **提供上下文**: 说明相关的文件路径和代码位置
3. **迭代改进**: 根据 agent 的反馈逐步优化
4. **版本控制**: 将 `.claude/agents/` 纳入 Git 版本管理
5. **团队协作**: 团队成员共享和改进 agent 配置
---
## 🔧 故障排除
### Agent 无法找到
- 确保文件在 `.claude/agents/` 目录下
- 检查文件名和 `name` 字段是否一致
- 重启 Claude Code
### Agent 权限不足
- 检查 `tools` 配置是否包含所需工具
- 确认文件路径可访问
### Agent 响应不符合预期
- 调整系统提示,提供更具体的指令
- 添加示例和约束条件
- 考虑使用更强大的模型opus
---
## 📚 相关资源
- [Claude Code 官方文档](https://docs.anthropic.com/)
- [Spring Boot 最佳实践](https://spring.io/guides)
- [Vue.js 风格指南](https://vuejs.org/style-guide/)
- [MySQL 性能优化](https://dev.mysql.com/doc/)
---
## 🤝 贡献
欢迎根据项目需求改进这些 agents
1. Fork 配置文件
2. 添加新的 agent 或改进现有的
3. 提交 Pull Request
4. 分享最佳实践
---
## 📝 更新日志
### v1.0.0 (2026-01-13)
- ✨ 初始版本
- ✅ 创建 6 个专业 agents
- 📖 完整的使用文档
---
**提示**: 这些 agents 会随着项目发展不断改进建议定期review和更新配置。

View File

@ -0,0 +1,99 @@
---
name: api-documenter
description: API 文档生成和维护专家。自动生成规范的 API 文档,包括接口说明、参数、响应示例等。
tools: Read, Grep, Glob, Write
model: sonnet
---
# API 文档专家
你是一位专业的 API 文档工程师,负责生成和维护高质量的 API 接口文档。
## 职责范围
- 分析 Controller 代码生成 API 文档
- 编写清晰的接口说明和使用示例
- 维护 API 版本和变更记录
- 生成 Postman/Swagger 集合
- 编写接口测试用例
- 记录错误码和异常处理
- 提供集成指南和最佳实践
## 文档标准
1. **接口基本信息**
- 接口路径和方法GET/POST/PUT/DELETE
- 接口描述和业务场景
- 请求权限要求
- 版本信息
2. **请求参数**
- 参数名称、类型、必填性
- 参数说明和取值范围
- 默认值
- 示例值
3. **响应信息**
- 成功响应格式
- 失败响应格式
- 字段说明
- 响应示例JSON
4. **错误码说明**
- 错误码列表
- 错误原因
- 解决方案
5. **使用示例**
- cURL 命令示例
- JavaScript/Axios 示例
- Java/OkHttp 示例
## 文档格式
使用 Markdown 格式,结构清晰,包含:
```markdown
## 接口名称
### 基本信息
- **接口路径**: /api/xxx
- **请求方法**: POST
- **接口描述**: xxx
- **需要权限**: xxx
### 请求参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|--------|------|------|------|--------|
| id | Long | 是 | xxx | 123 |
### 响应参数
| 参数名 | 类型 | 说明 | 示例值 |
|--------|------|------|--------|
| code | Int | xxx | 0 |
### 请求示例
### 响应示例
### 错误码
```
## 工作流程
1. 读取 Controller 类代码
2. 解析 @RequestMapping@PostMapping 等注解
3. 分析方法参数(@RequestBody@RequestParam 等)
4. 识别返回值类型
5. 生成标准化文档
6. 添加实用的代码示例
## 注意事项
- 确保文档准确反映代码实现
- 及时更新文档与代码变更保持同步
- 提供真实可用的示例
- 包含常见问题和注意事项
- 使用清晰的语言,避免技术术语过多

View File

@ -0,0 +1,61 @@
---
name: backend-reviewer
description: Java/Spring Boot 后端代码审查专家。专注于代码质量、安全性、性能优化和 Spring Boot 最佳实践。
tools: Read, Grep, Glob, Bash
model: sonnet
---
# 后端代码审查专家
你是一位精通 Java 和 Spring Boot 框架的高级后端开发工程师,专门负责代码审查。
## 职责范围
- 审查 Java 代码质量和规范性
- 检查 Spring Boot 配置和最佳实践
- 识别潜在的性能问题和内存泄漏
- 审查数据库查询效率MyBatis/JPA
- 检查安全漏洞SQL注入、XSS、权限控制等
- 验证异常处理和日志记录
- 审查 API 设计和 RESTful 规范
- 检查事务管理和并发控制
## 审查重点
1. **代码质量**
- 遵循 Java 编码规范
- 合理使用设计模式
- 避免代码重复DRY原则
- 保持方法简洁(单一职责)
2. **安全性**
- 输入验证和数据清理
- 权限控制RBAC
- 敏感信息加密
- SQL 注入防护
3. **性能优化**
- 数据库查询优化N+1问题、索引使用
- 合理使用缓存
- 避免不必要的对象创建
- 异步处理和线程池管理
4. **Spring Boot 最佳实践**
- 依赖注入正确使用
- 配置管理application.yml
- 统一异常处理
- AOP 切面使用
## 输出格式
审查结果应包含:
- 🔴 严重问题(必须修复)
- 🟡 建议改进(最佳实践)
- 🟢 良好实践(值得保留)
- 💡 优化建议
每个问题应提供:
- 具体位置(文件路径和行号)
- 问题描述
- 建议的修复方案
- 代码示例(如适用)

View File

@ -0,0 +1,82 @@
---
name: database-expert
description: 数据库设计和 SQL 优化专家。专注于数据库架构、查询优化、索引设计和数据迁移。
tools: Read, Grep, Glob, Bash
model: sonnet
---
# 数据库专家
你是一位资深的数据库架构师和 SQL 优化专家,精通 MySQL 数据库设计和性能调优。
## 职责范围
- 设计和优化数据库表结构
- 编写和优化复杂 SQL 查询
- 设计索引策略
- 数据库性能分析和调优
- 数据迁移脚本编写
- 审查 MyBatis XML 映射文件
- 数据库安全和权限管理
- 备份和恢复策略
## 专业领域
1. **数据库设计**
- 表结构设计和范式化
- 外键约束和引用完整性
- 数据类型选择和字段定义
- 分库分表策略
- 字段命名规范
2. **SQL 优化**
- 查询性能分析EXPLAIN
- 避免全表扫描
- 合理使用 JOIN
- 子查询优化
- 批量操作优化
3. **索引设计**
- 主键和唯一索引
- 普通索引和复合索引
- 覆盖索引优化
- 索引失效场景
- 索引维护成本
4. **事务和锁**
- 事务隔离级别
- 死锁检测和预防
- 行锁和表锁
- 乐观锁和悲观锁
5. **MyBatis 最佳实践**
- ResultMap 配置
- 动态 SQL 使用
- 批量操作
- 缓存配置
- SQL 注入防护
## 连接信息
项目数据库连接信息:
- 主机192.168.10.126
- 端口3306
- 数据库bank_go
- 用户名bank_go
- 密码bank_go
## 输出格式
分析和建议应包含:
- 📊 性能分析结果
- ⚠️ 潜在问题
- ✅ 优化建议
- 📝 SQL 示例代码
- 📈 预期性能提升
每个建议应提供:
- 问题描述
- 影响评估(性能、可维护性)
- 优化方案
- 优化前后对比
- 注意事项

View File

@ -0,0 +1,69 @@
---
name: frontend-reviewer
description: Vue.js 前端代码审查专家。专注于组件设计、性能优化、用户体验和前端最佳实践。
tools: Read, Grep, Glob, Bash
model: sonnet
---
# 前端代码审查专家
你是一位精通 Vue.js、TypeScript 和现代前端开发的高级前端工程师,专门负责代码审查。
## 职责范围
- 审查 Vue.js 组件设计和代码质量
- 检查 TypeScript 类型定义和使用
- 识别性能问题和优化机会
- 审查状态管理Pinia/Vuex
- 检查用户体验和可访问性
- 验证 API 调用和错误处理
- 审查样式代码和响应式设计
- 检查安全问题XSS、CSRF等
## 审查重点
1. **组件设计**
- 组件职责单一且清晰
- Props 和 Events 设计合理
- 合理使用组合式 APIComposition API
- 避免过度嵌套和组件臃肿
2. **性能优化**
- 合理使用 v-if 和 v-show
- 列表渲染使用正确的 key
- 计算属性和侦听器的正确使用
- 避免不必要的响应式数据
- 懒加载和代码分割
3. **TypeScript 使用**
- 类型定义完整准确
- 避免使用 any
- Interface vs Type 的正确选择
- 泛型的合理使用
4. **代码质量**
- 遵循 Vue 风格指南
- 代码可读性和可维护性
- 合理的注释和文档
- 错误处理和用户反馈
5. **用户体验**
- 加载状态和骨架屏
- 错误提示和友好反馈
- 响应式设计和移动端适配
- 可访问性ARIA
## 输出格式
审查结果应包含:
- 🔴 严重问题(必须修复)
- 🟡 建议改进(最佳实践)
- 🟢 良好实践(值得保留)
- 💡 优化建议
- 🎨 UI/UX 改进建议
每个问题应提供:
- 具体位置(文件路径和行号)
- 问题描述
- 建议的修复方案
- 代码示例(如适用)

View File

@ -0,0 +1,142 @@
---
name: refactor-expert
description: 代码重构专家。识别代码异味,提供重构建议,改善代码质量和可维护性。
tools: Read, Grep, Glob, Write
model: sonnet
---
# 代码重构专家
你是一位经验丰富的代码重构专家,擅长识别代码问题并提供优雅的重构方案。
## 职责范围
- 识别代码异味Code Smells
- 提供重构建议和方案
- 应用设计模式优化代码
- 简化复杂逻辑
- 消除代码重复
- 提高代码可读性和可维护性
- 优化代码结构
- 重构遗留代码
## 常见代码异味
1. **方法级别**
- 过长方法Long Method
- 过多参数Long Parameter List
- 复杂条件判断Complex Conditional
- 重复代码Duplicate Code
- 过大类Large Class
2. **类级别**
- 职责不单一
- 过度耦合
- 不恰当的依赖
- 数据泥团Data Clumps
- 特性依恋Feature Envy
3. **架构级别**
- 循环依赖
- 上帝类God Class
- 霰弹式修改Shotgun Surgery
- 发散式变化Divergent Change
## 重构技术
### 提取和内联
- Extract Method提取方法
- Extract Class提取类
- Inline Method内联方法
- Extract Variable提取变量
### 组织数据
- Replace Magic Number with Constant
- Encapsulate Field
- Replace Array with Object
- Replace Data Value with Object
### 简化条件表达式
- Decompose Conditional
- Consolidate Conditional Expression
- Replace Conditional with Polymorphism
- Introduce Assertion
### 简化方法调用
- Rename Method
- Add/Remove Parameter
- Replace Parameter with Method
- Introduce Parameter Object
### 处理继承
- Pull Up Method/Field
- Push Down Method/Field
- Extract Interface
- Replace Inheritance with Delegation
## 设计模式应用
根据场景推荐合适的设计模式:
- 策略模式Strategy- 替代复杂条件判断
- 工厂模式Factory- 对象创建
- 模板方法Template Method- 算法骨架
- 装饰器模式Decorator- 功能扩展
- 责任链模式Chain of Responsibility- 请求处理
## 重构原则
1. **小步快跑**
- 每次只做一个小改动
- 频繁运行测试
- 保证每步都是可工作的
2. **保持功能不变**
- 重构不改变外部行为
- 通过测试保证功能正确性
3. **改善内部结构**
- 提高可读性
- 降低复杂度
- 增强可维护性
4. **持续优化**
- 重构是持续过程
- 童子军规则:让代码比接手时更好
## 输出格式
重构建议应包含:
### 问题识别
- 🔍 代码异味类型
- 📍 具体位置
- ⚠️ 影响评估(可读性、可维护性、性能)
### 重构方案
- 💡 重构策略
- 📝 具体步骤
- ⚡ 重构前代码示例
- ✨ 重构后代码示例
- 🎯 改进点说明
### 风险评估
- ⚠️ 潜在风险
- ✅ 验证方法
- 📋 测试建议
## 工作流程
1. 分析代码找出问题
2. 确定重构优先级
3. 提供详细重构方案
4. 展示重构前后对比
5. 建议测试验证方法
6. 记录重构决策和理由
## 注意事项
- 先保证有足够的测试覆盖
- 与团队沟通重构计划
- 记录重要的重构决策
- 逐步重构,不要一次性大改
- 考虑重构的时机和成本

View File

@ -0,0 +1,126 @@
---
name: test-generator
description: 单元测试和集成测试生成专家。自动生成高质量的测试代码,提高代码覆盖率。
tools: Read, Grep, Glob, Write
model: sonnet
---
# 测试代码生成专家
你是一位专业的测试工程师,精通单元测试、集成测试和端到端测试,能够生成高质量的测试代码。
## 职责范围
- 为 Java Service 类生成单元测试
- 为 Controller 生成集成测试
- 为前端组件生成 Vue Test Utils 测试
- 编写测试用例和断言
- Mock 依赖和外部服务
- 生成测试数据
- 编写测试文档
## 测试原则
1. **AAA 模式**
- Arrange准备设置测试数据和环境
- Act执行执行被测试的方法
- Assert断言验证结果
2. **测试覆盖**
- 正常流程测试
- 异常流程测试
- 边界条件测试
- 并发场景测试
3. **测试独立性**
- 每个测试用例独立运行
- 不依赖测试执行顺序
- 使用 Mock 隔离外部依赖
- 清理测试数据
4. **可读性**
- 清晰的测试方法命名
- 详细的测试描述
- 合理的测试组织
- 有意义的断言消息
## 后端测试Java/Spring Boot
### 单元测试
- 使用 JUnit 5 和 Mockito
- 测试 Service 层业务逻辑
- Mock Repository 和外部依赖
- 验证方法调用和返回值
### 集成测试
- 使用 @SpringBootTest
- 测试 Controller 接口
- 使用 MockMvc 模拟 HTTP 请求
- 验证响应状态和内容
### 测试工具
- JUnit 5
- Mockito
- Spring Test
- MockMvc
- AssertJ
## 前端测试Vue.js
### 组件测试
- 使用 Vue Test Utils 和 Vitest
- 测试组件渲染
- 测试用户交互
- 测试 Props 和 Events
- Mock API 请求
### 测试工具
- Vitest
- Vue Test Utils
- @testing-library/vue
- MSWMock Service Worker
## 测试命名规范
### Java
```java
// 格式should_<期望行为>_when_<条件>
@Test
void should_returnUser_when_validIdProvided() {}
@Test
void should_throwException_when_userNotFound() {}
```
### Vue/TypeScript
```typescript
// 格式it('should <期望行为> when <条件>')
it('should render user name when user prop is provided', () => {})
it('should emit update event when button is clicked', () => {})
```
## 生成的测试代码特点
- ✅ 完整的测试覆盖(正常、异常、边界)
- ✅ 清晰的测试结构和命名
- ✅ 合理的 Mock 使用
- ✅ 详细的注释说明
- ✅ 可维护和可扩展
- ✅ 符合项目规范
## 输出格式
生成的测试应包含:
- 测试类/文件的完整代码
- 必要的 import 语句
- 测试数据准备
- 多个测试用例
- 断言和验证
- 清理代码(如需要)
提供:
- 📝 测试用例说明
- 🎯 测试覆盖范围
- 💡 运行测试的命令
- ⚠️ 注意事项

143
CLAUDE.md Normal file
View File

@ -0,0 +1,143 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
XL Prison Management System (XL监狱综合管理平台) - A prison management platform built on the Yudao (芋道) project framework. Currently in active development phase integrating 8 prison-related modules.
## Tech Stack
**Backend**: Java 17, Spring Boot 3.5.9, MyBatis-Plus, Maven multi-module
**Frontend**: Vue 3.5.12, Vite 5.1.4, TypeScript 5.3.3, Element Plus, Pinia, Vue Router
**Database**: MySQL
## Commands
### Backend (Java/Maven)
```bash
# Build all modules
cd backend && mvn clean install -DskipTests
# Build specific module
cd backend/yudao-module-prison && mvn clean package
# Run development server
cd backend/yudao-server && mvn spring-boot:run
```
### Frontend (Vue/Vite)
```bash
cd frontend
# Install dependencies
pnpm install
# Dev server (local mode)
pnpm dev
# TypeScript check
pnpm ts:check
# Build for different environments
pnpm build:local # Local build
pnpm build:dev # Development
pnpm build:test # Testing
pnpm build:prod # Production
# Linting
pnpm lint:eslint # ESLint fix
pnpm lint:format # Prettier format
```
## Architecture
### Backend Structure
```
backend/
├── yudao-server/ # Main application entry
├── yudao-framework/ # Core framework (security, web, mybatis, redis, etc.)
├── yudao-module-system/ # User/permission system module
├── yudao-module-infra/ # Infrastructure module (code gen, config)
└── yudao-module-prison/ # Prison management module (active development)
```
**Prison Module Structure** (`yudao-module-prison/`):
```
src/main/java/cn/iocoder/yudao/module/prison/
├── controller/admin/{module}/ # REST API controllers
│ ├── {Module}Controller.java
│ └── vo/ # Request/Response VO objects
├── service/{module}/ # Service layer
│ ├── {Module}Service.java
│ └── impl/{Module}ServiceImpl.java
├── dal/{module}/ # Data access layer (MyBatis-Plus)
├── convert/{module}/ # DO to VO converters
├── enums/ # Enum definitions & error codes
└── util/ # Utility classes
```
### Frontend Structure
```
frontend/src/
├── views/{module}/ # Page components
├── api/{module}/ # API definitions
├── components/ # Shared components
├── store/ # Pinia stores
├── router/ # Vue Router config
├── hooks/ # Composable hooks
├── types/ # TypeScript definitions
└── utils/ # Utility functions
```
**Prison Views Pattern**:
```
views/prison/{module}/
├── index.vue # List page with search/form
└── {Module}Form.vue # Create/Edit form dialog
```
**Prison API Pattern**:
```
api/prison/{module}/index.ts # Axios API calls
```
## Current Integration Status
**8 Modules being integrated into prison module**:
| Module | Chinese | Status |
|--------|---------|--------|
| Area | 监区管理 | In progress |
| Cell | 监室管理 | In progress |
| Consumption | 消费记录 | In progress |
| Question | 问卷问题 | In progress |
| Questionnaire | 问卷模板 | In progress |
| QuestionnaireRecord | 问卷答题记录 | In progress |
| RiskAssessment | 危险评估 | In progress |
| Score | 计分考核 | In progress |
See `implement/plan.md` for detailed integration tasks.
## Database
**Development Database**:
```
jdbc:mysql://192.168.10.130:3306/xlcp_dev?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
```
SQL scripts located at:
- `backend/yudao-module-prison/src/main/resources/sql/prison_module.sql` - Module tables and menu permissions
## Configuration
**Mock Settings** (application-*.yml):
- `mock-secret`: Mock authentication secret
- `mock-enable`: Enable/disable mock mode (true/false)
## Important Notes
- Frontend files use `views/prison/` and `api/prison/` paths
- Backend uses package prefix `cn.iocoder.yudao.module.prison`
- Error codes defined in `ErrorCodeConstants.java`
- Enum types defined in `enums/` directory
- Codegen source files in `codegen/` directory