datai/docs/archive/retros/2026-01-26-009-retro.md

3.2 KiB
Raw Blame History

name description
RETRO-2026-01-26-009 国际化资源管理复盘报告

复盘报告: 国际化资源管理

元数据 (Metadata)

目标 vs 结果指标对比

目标指标

指标名称 目标值 实际值 达成率 状态
代码生成完整度 100% 100% 100% 达成
缓存机制实现 双层缓存 Redis+本地 100% 达成
导入逻辑覆盖 唯一性处理 Upsert 100% 达成
文档一致性 100% 100% 100% 达成

结果分析

  • 代码生成完整度: 通过精细化的 Prompt成功生成了包含 @Excel 注解、唯一性校验和缓存刷新的全套代码。
  • 缓存机制实现: 明确指定了 Key 格式与失效策略,生成的代码逻辑闭环。

3 条有效 Prompt 模式

模式 1: 强制注解约束

描述: 在 Prompt 中明确指定必须使用的注解(如 @Excel),避免生成的代码缺失关键元数据。 示例:

- 必须使用 `@Excel` 注解实现导入导出。

效果: 生成的 Entity 类直接具备了 EasyExcel/POI 的导出能力,无需二次修改。

模式 2: 逻辑伪代码化

描述: 对于复杂的业务逻辑(如 upsert用伪代码或详细步骤描述。 示例:

- 校验唯一性,若已存在则根据策略(覆盖/跳过)处理... 建议:提供 `updateSupport` 参数...

效果: Service 层生成的导入逻辑包含了 updateSupport 参数处理,符合预期。

模式 3: 上下文显式链接

描述: 在 Prompt 开头显式列出所有相关文档的相对路径。 效果: 增强了 AI 对项目上下文的理解,生成的代码包名、基类继承关系准确无误。

3 条踩坑与改进

踩坑 1: 唯一性校验的并发问题

问题描述: 当前的 upsert 逻辑基于查后写Check-then-Act在高并发下可能仍有冲突。 改进措施: 在数据库层添加唯一索引(已做),并在代码中捕获 DuplicateKeyException 进行重试或友好提示。 Action Item:

  • 在 Service 实现中添加 try-catch 块处理唯一索引冲突异常。

踩坑 2: 缓存一致性的边界

问题描述: 仅删除了特定 lang+module 的缓存,若存在全量查询缓存可能未失效。 改进措施: 在增删改操作后,广播失效事件或清除相关联的列表缓存。 Action Item:

  • 审查 refreshCache 逻辑,确保覆盖所有查询维度的缓存 Key。

踩坑 3: 导入大文件的内存压力

问题描述: 虽然使用了 POI但若不显式开启 streaming 模式,大文件仍可能 OOM。 改进措施: 强制要求使用 EasyExcel 或 POI 的 SAX 模式。 Action Item:

  • 验证生成的 Excel 工具类是否默认启用了流式处理。

技能练习记录

  • 本次复盘验证了 skill-prompt-engineering 在复杂 CRUD 场景下的有效性。
  • 下一步需强化 skill-verification-commit 中的自动化测试生成能力。