本次提交对项目进行了大规模重构,主要调整了服务层架构,以实现更清晰的职责划分和更好的可维护性。 具体变更包括: - 移除 `src/api/llm.js` 文件,相关 API 密钥管理逻辑已迁移到 `src/services/model/manager.js` 中。 - 移除 `src/config/llm.js` 文件,LLM 配置逻辑已迁移到 `src/services/model/manager.js` 和 `src/services/llm/service.js` 中。 - 移除 `src/services/llm.js` 文件,LLM 服务逻辑已迁移到 `src/services/llm/service.js` 中。 - 移除 `src/services/promptManager.js` 文件,提示词模板管理逻辑已迁移到 `src/services/prompt/service.js` 中,历史记录管理已迁移到 `src/services/history/manager.js` 中。 - 重构 `src/components/ModelManager.vue` 组件,使用新的模型管理服务。 - 重构 `src/App.vue` 组件,使用新的服务层架构。 - 修改 `tests/unit/services/llm.test.js` 文件,适应新的服务层架构。 - 修改 `tests/integration/services/llm/common.test.js`, `tests/integration/services/llm/custom.test.js`, `tests/integration/services/llm/deepseek.test.js`, `tests/integration/services/llm/gemini.test.js` 文件,适应新的服务层架构。 - 修改 `tests/unit/App.test.js` 文件,适应新的服务层架构。 - 修改 `src/components/OutputPanel.vue` 组件,添加复制选中内容功能。 - 更新 `experience.md`,记录重构经验。 - 更新 `scratchpad.md`,添加重构计划和日志。 本次重构的主要目标是: - 更清晰的职责划分:将模型管理、LLM 服务、提示词模板管理和历史记录管理分离到独立的模块中。 - 更好的可维护性:通过模块化设计,降低代码耦合度,提高代码可读性和可维护性。 - 更高的可扩展性:新的架构更易于添加新的模型和功能。 本次重构对现有功能没有影响,所有测试均已通过。
2.1 KiB
2.1 KiB
项目进度记录
第二阶段:核心服务迁移(预计3天)
Model Manager
- ✅ 实现基本功能
- ✅ 添加错误处理
- ✅ 编写单元测试
LLM Service
- ✅ 实现基本功能
- ✅ 添加错误处理
- ✅ 编写单元测试
Template Manager
- ✅ 实现基本功能
- ✅ 添加错误处理
- ✅ 编写单元测试
History Manager
- ✅ 实现基本功能
- ✅ 添加错误处理
- ✅ 编写单元测试
Prompt Service
- ✅ 实现基本功能
- ✅ 优化提示词
- ✅ 迭代优化
- ✅ 测试提示词
- ✅ 历史记录管理
- ✅ 添加错误处理
- ✅ 服务依赖错误
- ✅ 优化错误
- ✅ 迭代错误
- ✅ 测试错误
- ✅ 编写单元测试
- ✅ 优化提示词测试
- ✅ 迭代优化测试
- ✅ 测试提示词测试
- ✅ 历史记录测试
下一步计划
第三阶段:新功能实现(预计2天)
- 实现提示词模板管理
- 模板列表
- 模板编辑
- 模板验证
- 实现提示词版本管理
- 版本历史
- 版本对比
- 版本回滚
- 实现提示词测试用例管理
- 测试用例创建
- 测试用例执行
- 测试结果分析
第四阶段:测试和文档(预计2天)
- 集成测试
- 端到端测试
- 性能测试
- 压力测试
- 文档完善
- API文档
- 使用文档
- 部署文档
- 代码优化
- 代码重构
- 性能优化
- 安全加固
经验总结
核心服务迁移阶段
-
模块化设计
- 将功能拆分为独立的服务模块
- 定义清晰的接口和类型
- 使用依赖注入降低耦合
-
错误处理
- 为每个服务定义专门的错误类型
- 实现统一的错误处理机制
- 提供详细的错误信息
-
测试策略
- 编写完整的单元测试
- 使用 mock 对象模拟依赖
- 测试各种边界情况
-
代码质量
- 使用 TypeScript 强类型
- 遵循 SOLID 原则
- 保持代码风格一致
-
文档维护
- 及时更新进度文档
- 记录重要决策
- 总结经验教训