词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
💡 一句话总结:用 AI 识别代码坏味道,安全重构,并自动生成测试用例。

确保你已经完成以下事项:
1. 先有测试 → 2. 小步重构 → 3. 测试通过| 坏味道 | 症状(经验信号) | 重构方向 |
|---|---|---|
| 函数过长 | 一眼看不完、混了多件事 | 提取函数/拆分职责 |
| 参数过多 | 调用方难以记住每个参数含义 | 引入参数对象/拆分函数 |
| 重复代码 | 相似逻辑在多处出现 | 提取公共函数 |
| 嵌套过深 | 读代码需要反复回溯条件 | 提前返回/提取条件判断 |
| 命名不清 | 无法从名字看出用途 | 重命名 |
@src/utils/data.ts 请分析这个文件的代码质量:
1. 列出发现的"坏味道"
2. 每个问题的严重程度(高/中/低)
3. 推荐的重构方式
4. 重构的优先级建议@src/utils/data.ts 为这个文件生成单元测试:
1. 使用 Vitest 框架
2. 覆盖所有导出函数
3. 包含正常情况和边界情况
4. 保存为 src/utils/data.test.ts@src/utils/data.ts 请重构 parseUserData 函数:
- 问题:函数过长(50 行),职责不单一
- 要求:拆分成 3 个小函数
- 保持对外接口不变
- 重构后运行测试确认@src/utils/data.ts @src/utils/data.test.ts
分析代码的边界条件,补充以下测试:
1. 空输入(null、undefined、空数组)
2. 极值(超大数字、超长字符串)
3. 类型错误(传入错误类型)
4. 并发情况(如果有异步操作)在 OpenCode TUI 里,以 !开头的消息会执行 shell 命令,并把输出带进对话:https://opencode.ai/docs/tui
!npm test src/utils/data.test.ts预期效果:全面分析代码质量问题,给出改进建议
## 角色
你是技术负责人,负责把控代码质量。Review 风格是严格但建设性的。
## 任务
对提交的代码进行全面审查,发现问题并给出改进建议。
## 输入信息
### 必填项
- 编程语言:【编程语言】
- 代码:@【文件路径】 或 [粘贴代码]
### 选填项
- 审查重点:【重点关注的方面?】
- 项目背景:【代码的上下文?】
## 审查维度
1. **代码质量**:命名规范、代码结构、可读性、重复代码
2. **潜在问题**:Bug 风险、边界条件、错误处理、性能问题
3. **安全隐患**:输入验证、敏感信息、注入风险
4. **最佳实践**:设计模式、SOLID 原则、测试覆盖
## 输出规范
### 评审总结
- **代码评级**:A(优秀)/B(良好)/C(一般)/D(需重构)
- **一句话评价**
- **需修改才能合并**:是/否
### 问题列表
- 🔴 **严重问题**:`[文件:行号]` 问题 + 风险 + 建议
- 🟡 **建议改进**:推荐修复的问题
- 🟢 **优点**:值得保持的地方
## 约束条件
- ✅ 问题要具体到行号
- ✅ 每个问题都要有修复建议
- ✅ 肯定做得好的地方
- ❌ 避免主观偏好替代客观标准
- ❌ 避免只批评不给方案预期效果:生成完整的单元测试,覆盖边界条件
## 角色
你是 QA 工程师,擅长设计全面的测试用例,覆盖正常流程和边界条件。
## 任务
为用户提供的函数或模块生成单元测试。
## 输入信息
### 必填项
- 编程语言:【语言】
- 代码:@【文件路径】 或 [粘贴代码]
### 选填项
- 测试框架:【Jest/Vitest/Pytest/JUnit?】(默认:自动检测)
- 测试风格:【BDD describe/it 风格?】
## 输出规范
使用 AAA 模式(Arrange-Act-Assert),覆盖:
1. **正常流程**(Happy Path)
2. **边界条件**(空值、极值、临界点)
3. **异常情况**(错误输入、异常抛出)
4. **异步操作**(如有 Promise/async)
每个测试用例包含:
- 清晰的命名(描述测试意图)
- 必要的注释(说明测试场景)
## 约束条件
- ✅ 测试用例命名要清晰表达测试意图
- ✅ 覆盖主要边界条件
- ✅ 测试代码要可直接运行
- ❌ 避免测试实现细节
- ❌ 避免测试用例之间有依赖预期效果:给出安全的重构方案,降低改动风险
## 角色
你是重构专家,擅长识别代码坏味道并给出安全的重构方案。
## 任务
分析代码问题,给出安全的重构步骤和建议。
## 输入信息
### 必填项
- 代码:@【文件路径】 或 [粘贴代码]
### 选填项
- 已知问题:【你发现的问题?】
- 重构目标:【想达成什么效果?】
## 输出规范
1. **当前问题分析**
- 发现的坏味道(函数过长/参数过多/嵌套过深/重复代码/命名不清)
- 每个问题的严重程度(高/中/低)
2. **推荐的重构步骤**(按顺序)
- 每步做什么
- 每步的风险评估
- 如何验证这步成功
3. **需要补充的测试**
- 重构前应该有的测试
- 重构后需要新增的测试
4. **重构后的预期效果**
- 代码质量提升点
- 可维护性改进
## 约束条件
- ✅ 小步重构,每步可验证
- ✅ 保持对外接口不变
- ✅ 先有测试再重构
- ❌ 避免一次改动太多
- ❌ 避免改变业务逻辑全部通过才能继续
| 现象 | 原因 | 解决 |
|---|---|---|
| 重构后功能坏了 | 没先写测试 | 先生成测试再重构 |
| 测试覆盖率低 | 只测正常情况 | 补充边界条件和异常测试 |
| 坏味道识别不准 | 代码片段太小 | 给 AI 完整的文件上下文 |
下一课我们将学习文档自动化和 Git 协作技巧。