95 lines
6.7 KiB
Markdown
95 lines
6.7 KiB
Markdown
# 迭代复盘 - syncObjectData 同步进度跟踪实现
|
||
|
||
## 目标 vs 结果指标对比
|
||
|
||
| 指标 | 目标值 | 实际值 | 达成率 | 分析 |
|
||
|------|--------|--------|--------|------|
|
||
| 功能完成数 | 5 个文件 | 5 个文件 | 100% | 按计划完成了所有代码文件的创建和修改 |
|
||
| 代码质量 | 编译通过 | 待验证 | 待验证 | 代码已生成,待编译验证 |
|
||
| 测试覆盖率 | 功能测试通过 | 待测试 | 待测试 | 待进行功能测试 |
|
||
| 文档完整性 | 100% | 100% | 100% | 完成了需求文档、架构决策、提示词资产、会话记录、变更记录 |
|
||
|
||
## 3 条有效 Prompt 模式
|
||
|
||
### 模式 1: 分阶段提示词设计
|
||
|
||
- **描述**: 将提示词按照开发阶段进行结构化设计,每个阶段都有明确的目标、输入引用、输出格式和约束条件
|
||
- **适用场景**: 复杂功能的开发,需要多个步骤完成的情况
|
||
- **示例**: 本次开发的提示词资产(002-sync-progress-tracking.md)按照目标、输出格式、约束、Rule Set、验收标准、风险等结构进行设计
|
||
- **效果**: 提示词结构清晰,目标明确,约束条件完整,生成的代码符合预期
|
||
|
||
### 模式 2: 引用真源文档
|
||
|
||
- **描述**: 在提示词中明确引用相关的需求文档、架构决策和设计文档,确保生成的代码与文档保持一致
|
||
- **适用场景**: 需要遵循特定架构决策和设计规范的场景
|
||
- **示例**: 提示词中引用了 REQ-002.md 和 0002-sync-progress-tracking.md,确保生成的代码符合架构决策
|
||
- **效果**: 生成的代码与架构决策保持一致,避免了代码与文档不一致的问题
|
||
|
||
### 模式 3: 明确输出格式和路径
|
||
|
||
- **描述**: 在提示词中明确指定输出文件的格式、路径和具体内容,避免生成的代码结构不符合预期
|
||
- **适用场景**: 需要生成多个代码文件,且文件结构有特定要求的场景
|
||
- **示例**: 提示词中明确指定了 5 个 Java 文件的路径、类名、方法名和字段名
|
||
- **效果**: 生成的代码文件结构清晰,符合项目规范,减少了后续修改的工作量
|
||
|
||
## 3 条踩坑与改进
|
||
|
||
### 踩坑 1: 需求变更导致架构决策和提示词需要同步更新
|
||
|
||
- **现象**: 用户在开发过程中调整了需求(不需要定时清理任务,同步任务完成后立即清除进度信息),导致架构决策和提示词需要同步更新
|
||
- **原因分析**: 需求变更后,没有及时更新架构决策和提示词,导致后续生成的代码可能不符合最新需求
|
||
- **改进措施**: 在需求变更后,立即更新架构决策和提示词,确保文档的一致性
|
||
- **避免思路**: 建立需求变更的自动同步机制,当需求文档更新时,自动提示更新相关的架构决策和提示词
|
||
|
||
### 踩坑 2: 提示词中没有明确说明不将同步进度数据同步到数据库
|
||
|
||
- **现象**: 初始提示词中包含了定时清理配置类,用户明确说明不需要将同步进度数据同步到数据库
|
||
- **原因分析**: 提示词中没有明确说明不将同步进度数据同步到数据库,导致生成了不必要的定时清理配置类
|
||
- **改进措施**: 在提示词中明确说明不将同步进度数据同步到数据库,避免生成不必要的代码
|
||
- **避免思路**: 在提示词中明确说明技术约束和设计决策,避免生成不符合需求的代码
|
||
|
||
### 踩坑 3: 进度更新频率可能影响同步性能
|
||
|
||
- **现象**: 在 syncFullData 方法中,每个批次完成后都调用 updateProgress,如果批次数量很多,可能会影响同步性能
|
||
- **原因分析**: 没有考虑进度更新频率对性能的影响,每个批次完成后都更新进度可能导致频繁的进度更新操作
|
||
- **改进措施**: 可以考虑降低进度更新频率,例如每 N 个批次更新一次进度,或者使用节流机制控制更新频率
|
||
- **避免思路**: 在提示词中明确说明性能要求,例如进度更新操作对同步性能影响 < 5%,并在代码实现中考虑性能优化
|
||
|
||
## Visual Debt
|
||
|
||
记录哪些代码修改了但还没来得及同步到 Canvas:
|
||
|
||
- [ ] Authentication.canvas 需要更新 - 添加 SyncProgress 实体类、ISyncProgressService 接口、SyncProgressServiceImpl 实现类、进度查询接口
|
||
- [ ] 其他 Canvas 文件: 无
|
||
- **具体修改**:
|
||
- 添加 SyncProgress 实体类节点
|
||
- 添加 ISyncProgressService 接口节点
|
||
- 添加 SyncProgressServiceImpl 实现类节点
|
||
- 在 DataiIntegrationObjectController 节点中添加进度查询接口
|
||
- 在 DataiIntegrationObjectServiceImpl 节点中添加进度跟踪集成
|
||
|
||
## AI Tooling
|
||
|
||
Trae 读取 Canvas 时的表现:
|
||
|
||
- **理解程度**: Trae 能够理解 Canvas 中的节点关系和调用链,但在处理复杂的嵌套逻辑时可能需要更详细的说明
|
||
- **复杂逻辑**: Trae 能够理解基本的嵌套逻辑,但对于非常复杂的业务逻辑,可能需要分步骤说明
|
||
- **改进建议**: 建议在 Canvas 中添加更多的注释和说明,特别是对于复杂的业务逻辑和状态转换
|
||
|
||
## 模板更新记录
|
||
|
||
| 日期 | 模板名称 | 更新内容 | 更新原因 |
|
||
|------|----------|----------|----------|
|
||
| 2026-01-16 | 002-sync-progress-tracking.md | 删除定时清理配置类,明确说明同步任务完成后立即清除进度信息 | 用户调整需求,不需要定时清理任务 |
|
||
| 2026-01-16 | 0002-sync-progress-tracking.md | 更新架构决策,删除定时清理任务,明确说明不将同步进度数据同步到数据库 | 用户调整需求,不需要定时清理任务和数据库存储 |
|
||
|
||
## 技能练习记录
|
||
|
||
| 技能领域 | 练习内容 | 练习效果 | 改进方向 |
|
||
|----------|----------|----------|----------|
|
||
| 需求定义与入库 | 创建 REQ-002.md 需求文档,更新文档索引 | 成功创建了需求文档,明确了需求和验收标准 | 需要更早地与用户确认需求细节,避免后续需求变更 |
|
||
| 架构决策 | 创建 0002-sync-progress-tracking.md 架构决策记录,对比备选方案 | 成功创建了架构决策记录,选择了内存存储方案 | 需要更深入地分析备选方案的优缺点,提供更全面的决策依据 |
|
||
| 提示词资产化 | 创建 002-sync-progress-tracking.md 提示词资产,明确输出格式和约束 | 成功创建了提示词资产,生成了符合预期的代码 | 需要在提示词中更明确地说明技术约束和性能要求 |
|
||
| 代码生成 | 创建 5 个 Java 文件,集成进度跟踪功能 | 成功创建了所有代码文件,集成了进度跟踪功能 | 需要验证代码的编译和运行情况,确保代码质量 |
|
||
| 变更记录与归档 | 创建 0012-sync-progress-tracking.md 变更记录,更新 CHANGELOG.md | 成功创建了变更记录,更新了文档索引 | 需要更详细地记录测试结果和审核信息 |
|