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:
parent
e4ec8d27c6
commit
a437dde89f
256
.claude/agents/QUICK-REFERENCE.md
Normal file
256
.claude/agents/QUICK-REFERENCE.md
Normal 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
237
.claude/agents/README.md
Normal 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 Documenter(API 文档专家)
|
||||
**文件**: `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和更新配置。
|
||||
99
.claude/agents/api-documenter.md
Normal file
99
.claude/agents/api-documenter.md
Normal 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. 添加实用的代码示例
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 确保文档准确反映代码实现
|
||||
- 及时更新文档与代码变更保持同步
|
||||
- 提供真实可用的示例
|
||||
- 包含常见问题和注意事项
|
||||
- 使用清晰的语言,避免技术术语过多
|
||||
61
.claude/agents/backend-reviewer.md
Normal file
61
.claude/agents/backend-reviewer.md
Normal 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 切面使用
|
||||
|
||||
## 输出格式
|
||||
|
||||
审查结果应包含:
|
||||
- 🔴 严重问题(必须修复)
|
||||
- 🟡 建议改进(最佳实践)
|
||||
- 🟢 良好实践(值得保留)
|
||||
- 💡 优化建议
|
||||
|
||||
每个问题应提供:
|
||||
- 具体位置(文件路径和行号)
|
||||
- 问题描述
|
||||
- 建议的修复方案
|
||||
- 代码示例(如适用)
|
||||
82
.claude/agents/database-expert.md
Normal file
82
.claude/agents/database-expert.md
Normal 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 示例代码
|
||||
- 📈 预期性能提升
|
||||
|
||||
每个建议应提供:
|
||||
- 问题描述
|
||||
- 影响评估(性能、可维护性)
|
||||
- 优化方案
|
||||
- 优化前后对比
|
||||
- 注意事项
|
||||
69
.claude/agents/frontend-reviewer.md
Normal file
69
.claude/agents/frontend-reviewer.md
Normal 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 设计合理
|
||||
- 合理使用组合式 API(Composition API)
|
||||
- 避免过度嵌套和组件臃肿
|
||||
|
||||
2. **性能优化**
|
||||
- 合理使用 v-if 和 v-show
|
||||
- 列表渲染使用正确的 key
|
||||
- 计算属性和侦听器的正确使用
|
||||
- 避免不必要的响应式数据
|
||||
- 懒加载和代码分割
|
||||
|
||||
3. **TypeScript 使用**
|
||||
- 类型定义完整准确
|
||||
- 避免使用 any
|
||||
- Interface vs Type 的正确选择
|
||||
- 泛型的合理使用
|
||||
|
||||
4. **代码质量**
|
||||
- 遵循 Vue 风格指南
|
||||
- 代码可读性和可维护性
|
||||
- 合理的注释和文档
|
||||
- 错误处理和用户反馈
|
||||
|
||||
5. **用户体验**
|
||||
- 加载状态和骨架屏
|
||||
- 错误提示和友好反馈
|
||||
- 响应式设计和移动端适配
|
||||
- 可访问性(ARIA)
|
||||
|
||||
## 输出格式
|
||||
|
||||
审查结果应包含:
|
||||
- 🔴 严重问题(必须修复)
|
||||
- 🟡 建议改进(最佳实践)
|
||||
- 🟢 良好实践(值得保留)
|
||||
- 💡 优化建议
|
||||
- 🎨 UI/UX 改进建议
|
||||
|
||||
每个问题应提供:
|
||||
- 具体位置(文件路径和行号)
|
||||
- 问题描述
|
||||
- 建议的修复方案
|
||||
- 代码示例(如适用)
|
||||
142
.claude/agents/refactor-expert.md
Normal file
142
.claude/agents/refactor-expert.md
Normal 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. 记录重构决策和理由
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 先保证有足够的测试覆盖
|
||||
- 与团队沟通重构计划
|
||||
- 记录重要的重构决策
|
||||
- 逐步重构,不要一次性大改
|
||||
- 考虑重构的时机和成本
|
||||
126
.claude/agents/test-generator.md
Normal file
126
.claude/agents/test-generator.md
Normal 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
|
||||
- MSW(Mock 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
143
CLAUDE.md
Normal 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
|
||||
Loading…
x
Reference in New Issue
Block a user