139 lines
7.8 KiB
Markdown
139 lines
7.8 KiB
Markdown
# 复盘文档
|
||
|
||
## 元数据
|
||
- 需求编号:2026-01-26-002-02
|
||
- 创建时间:2026-01-26
|
||
- 创建人:AI Assistant
|
||
- 状态:已完成
|
||
|
||
## 复盘概述
|
||
本次复盘对前端国际化-核心模块的开发过程进行了全面回顾,从需求定义到变更记录的每个阶段都进行了分析,总结了成功经验、改进点、问题分析和行动计划,旨在提高后续开发过程的效率和质量。
|
||
|
||
## 目标与实际产出对比
|
||
|
||
### 目标
|
||
- 实现布局(Layout)国际化,包括侧边栏菜单、顶部导航、标签页
|
||
- 实现认证模块(Auth)国际化,包括登录页、注册页
|
||
- 实现全局公共文本国际化,包括 HTTP 错误处理、错误码字典
|
||
- 遵循 SSOT 流程,确保所有开发活动都有文档依据
|
||
- 生成符合项目规范的代码
|
||
|
||
### 实际产出
|
||
- 成功实现了布局国际化,包括侧边栏菜单标题翻译、顶部导航国际化、标签页动态更新
|
||
- 成功实现了认证模块国际化,包括登录页和注册页的表单验证规则国际化
|
||
- 成功实现了全局公共文本国际化,包括 HTTP 错误处理和错误码字典改造
|
||
- 严格按照 SSOT 流程执行,每个阶段都有相应的文档
|
||
- 生成的代码符合项目规范,包含单元测试
|
||
- 完整记录了会话过程,包括对话记录、生成的文档和代码、关键决策等
|
||
|
||
## 成功经验
|
||
|
||
### 1. SSOT 流程的严格执行
|
||
从需求定义到变更记录的每个阶段都严格按照项目规则执行,确保了所有开发活动都有文档依据,提高了代码的可追溯性和可维护性。每个阶段都生成了相应的文档,包括需求文档、设计文档、决策记录、提示词、变更日志等,形成了完整的文档链。
|
||
|
||
### 2. 详细的提示词设计
|
||
阶段 5 生成的提示词包含了详细的输出格式要求、代码规范要求和测试要求,确保了生成的代码符合项目规范和需求。提示词引用了真源(需求文档、设计文档、决策记录),明确了需要生成的文件、路径、格式,以及代码规范、命名规范、注释规范等要求。
|
||
|
||
### 3. 完整的会话记录
|
||
阶段 7 记录了完整的会话过程,包括对话记录、生成的文档和代码、关键决策等,确保了会话的可追溯性和完整性。会话记录包含了从阶段 1 到阶段 6 的所有对话,以及所有生成的文档和代码文件的链接。
|
||
|
||
### 4. 正确的技术选型
|
||
选择了 vue-i18n@9 作为国际化库,与 Vue 3 Composition API 完美兼容,性能优秀。vue-i18n@9 是 Vue 3 官方推荐的国际化库,支持 Composition API,与项目的技术栈完美匹配。
|
||
|
||
### 5. 合理的架构决策
|
||
在阶段 3 做出了四个关键决策,包括侧边栏菜单标题翻译策略(静态翻译)、标签页标题更新策略(监听语言切换事件)、错误码字典改造策略(Value 改为 Translation Key)、表单验证规则国际化策略(message 使用 Translation Key),为代码生成提供了明确的指导。
|
||
|
||
## 改进点
|
||
|
||
### 1. 阶段间的过渡可以更流畅
|
||
在阶段转换时,可以更主动地向用户解释下一阶段的目的和流程,提高用户的理解和参与度。当前的做法是直接进入下一阶段,用户可能不清楚下一阶段的具体内容和目标。
|
||
|
||
### 2. 代码生成前的验证可以更严格
|
||
在生成代码前,可以增加对设计文档和决策记录的再次验证,确保代码生成的准确性。当前的做法是直接根据提示词生成代码,可能在生成过程中忽略了一些细节。
|
||
|
||
### 3. 单元测试的覆盖率可以提高
|
||
当前生成的单元测试只测试了翻译资源文件,可以增加对组件和工具函数的单元测试。例如,可以测试侧边栏菜单项的翻译功能、标签页的动态更新功能、错误码的翻译功能等。
|
||
|
||
## 问题分析
|
||
|
||
本次执行过程中没有遇到明显的问题,整体执行顺利。所有阶段都按照计划完成,生成的代码符合需求,文档完整准确。
|
||
|
||
## 行动计划
|
||
|
||
### 1. 针对改进点 1:阶段间的过渡可以更流畅
|
||
- **行动**:在阶段转换时,增加对下一阶段的目的和流程的解释
|
||
- **责任人**:AI Assistant
|
||
- **时间**:立即执行
|
||
|
||
### 2. 针对改进点 2:代码生成前的验证可以更严格
|
||
- **行动**:在生成代码前,增加对设计文档和决策记录的再次验证
|
||
- **责任人**:AI Assistant
|
||
- **时间**:立即执行
|
||
|
||
### 3. 针对改进点 3:单元测试的覆盖率可以提高
|
||
- **行动**:在后续的代码生成中,增加对组件和工具函数的单元测试
|
||
- **责任人**:AI Assistant
|
||
- **时间**:下一个迭代
|
||
|
||
## 提取模式
|
||
|
||
### 有效的 Prompt 技巧
|
||
|
||
#### 1. 具体的输出格式要求
|
||
在提示词中明确指定需要生成的文件、路径、格式等,可以提高生成代码的准确性和规范性。例如:
|
||
```
|
||
必须包含的文件:
|
||
- src/locales/zh-CN.ts - 中文翻译文件
|
||
- src/locales/en-US.ts - 英文翻译文件
|
||
- src/layout/components/Sidebar/SidebarItem.vue - 侧边栏菜单项
|
||
```
|
||
|
||
#### 2. 引用真源
|
||
在提示词开头引用需求文档和设计文档的链接,可以确保生成的代码符合需求和设计要求。例如:
|
||
```
|
||
引用真源:
|
||
- 需求文档:[2026-01-26-002-02-前端国际化-核心模块](../requirements/2026-01-26-002-02-前端国际化-核心模块.md)
|
||
- 设计文档:[2026-01-26-002-02-前端国际化-核心模块-设计](../design/2026-01-26-002-02-前端国际化-核心模块-设计.md)
|
||
- 决策记录:[2026-01-26-002-02-ADR-前端国际化-核心模块实现策略决策](../decisions/2026-01-26-002-02-ADR-前端国际化-核心模块实现策略决策.md)
|
||
```
|
||
|
||
#### 3. 详细的代码规范要求
|
||
在提示词中明确指定代码规范、命名规范、注释规范等,可以提高生成代码的质量和可读性。例如:
|
||
```
|
||
代码规范要求:
|
||
- 必须使用 Vue 3 Composition API
|
||
- 必须使用 `<script setup>` 语法
|
||
- 必须使用 TypeScript 类型定义
|
||
- 必须遵循若依框架规范
|
||
- 必须遵循 Element Plus 使用规范
|
||
```
|
||
|
||
### 避免的坑
|
||
|
||
#### 1. 不要使用模糊的描述
|
||
在提示词中使用模糊的描述(如"请生成高质量的代码"),会导致生成的代码不符合预期。应该使用具体的描述,明确指定需要生成的内容和要求。
|
||
|
||
#### 2. 不要忽略测试要求
|
||
在提示词中忽略测试要求,会导致生成的代码缺少单元测试,降低代码的质量和可靠性。应该在提示词中明确指定测试要求,包括测试覆盖率、测试用例、测试框架等。
|
||
|
||
#### 3. 不要违反项目规则
|
||
在代码生成过程中违反项目规则(如不遵循若依框架规范),会导致生成的代码不符合项目要求,需要重新生成。应该严格遵守项目规则,确保生成的代码符合项目规范。
|
||
|
||
## 模板迭代
|
||
|
||
经过本次复盘,发现当前的提示词模板在单元测试要求方面可以更具体,特别是针对组件和工具函数的单元测试。计划在下一个迭代中更新提示词模板,增加更具体的单元测试要求,包括:
|
||
|
||
- 组件单元测试:测试组件的渲染、交互、国际化等功能
|
||
- 工具函数单元测试:测试工具函数的逻辑、边界条件、异常处理等
|
||
- 测试覆盖率:单元测试覆盖率不低于 80%
|
||
- 测试用例:包含正常场景和异常场景
|
||
- 测试框架:使用 Vitest 进行测试
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/2026-01-26-002-02-前端国际化-核心模块.md)
|
||
- [设计文档](../design/2026-01-26-002-02-前端国际化-核心模块-设计.md)
|
||
- [决策记录](../decisions/2026-01-26-002-02-ADR-前端国际化-核心模块实现策略决策.md)
|
||
- [提示词](../prompts/2026-01-26-002-02-prompt-前端国际化-核心模块.md)
|
||
- [变更日志](../changelog/2026-01-26-002-02-changelog.md)
|
||
- [会话记录](../sessions/2026-01-26-002-02-session.md)
|