1
0
Files
nex/openspec/changes/implement-viper-config/tasks.md
lanyuanxiaoyao d92db73937 refactor: 后端代码质量优化 - 复用公共库、使用标准库、类型安全错误判断
## 高优先级修复
- stats_service_impl: 使用 strings.SplitN 替代错误的索引分割
- provider_handler: 使用 errors.Is(err, gorm.ErrDuplicatedKey) 替代字符串匹配
- client: 重写 isNetworkError 使用 errors.As/Is 类型安全判断
- proxy_handler: 使用 encoding/json 标准库解析 JSON(extractModelName、isStreamRequest)

## 中优先级修复
- stats_handler: 添加 parseDateParam 辅助函数消除重复日期解析
- pkg/errors: 新增 ErrRequestCreate/Send/ResponseRead 错误类型和 WithCause 方法
- client: 使用结构化错误替代 fmt.Errorf
- ConversionEngine: logger 依赖注入,替换所有 zap.L() 调用

## 低优先级修复
- encoder: 删除 joinStrings,使用 strings.Join
- adapter: 删除 modelInfoRegex 正则,使用 isModelInfoPath 字符串函数

## 文档更新
- README.md: 添加公共库使用指南和编码规范章节
- specs: 同步 delta specs 到 main specs(error-handling、structured-logging、request-validation)

## 归档
- openspec/changes/archive/2026-04-20-refactor-backend-code-quality/
2026-04-20 16:42:48 +08:00

53 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. 依赖管理
- [ ] 1.1 在 go.mod 中添加 Viper、pflag、validator 依赖
- [ ] 1.2 移除 gopkg.in/yaml.v3 依赖Viper 内置 YAML 支持)
- [ ] 1.3 运行 go mod tidy 更新依赖树
## 2. 配置结构体重构
- [ ] 2.1 为 Config 结构体添加 validate tag 验证规则
- [ ] 2.2 更新 Validate() 方法使用 validator 库进行验证
- [ ] 2.3 添加配置摘要打印方法 PrintSummary()
## 3. 配置加载逻辑重构
- [ ] 3.1 创建 setupDefaults() 函数设置默认配置值
- [ ] 3.2 创建 setupFlags() 函数定义和绑定 CLI 参数
- [ ] 3.3 创建 setupEnv() 函数绑定环境变量
- [ ] 3.4 创建 setupConfigFile() 函数读取配置文件
- [ ] 3.5 重构 LoadConfig() 函数,按顺序调用上述函数
- [ ] 3.6 添加 LoadConfigFromPath() 函数支持自定义配置文件路径
## 4. 主程序修改
- [ ] 4.1 在 main.go 中添加 CLI 参数解析逻辑
- [ ] 4.2 修改配置加载流程,使用新的 LoadConfig()
- [ ] 4.3 添加配置摘要打印调用
## 5. 测试更新
- [ ] 5.1 更新 TestDefaultConfig 测试新的默认值设置方式
- [ ] 5.2 更新 TestConfig_Validate 测试新的验证规则
- [ ] 5.3 添加 CLI 参数配置测试
- [ ] 5.4 添加环境变量配置测试
- [ ] 5.5 添加配置优先级测试
- [ ] 5.6 添加配置摘要输出测试
- [ ] 5.7 确保所有测试通过
## 6. 文档更新
- [ ] 6.1 更新 README.md 配置说明部分
- [ ] 6.2 添加 CLI 参数使用示例
- [ ] 6.3 添加环境变量配置示例
- [ ] 6.4 添加配置优先级说明
## 7. 验证与清理
- [ ] 7.1 运行完整测试套件,确保所有测试通过
- [ ] 7.2 本地测试:使用 CLI 参数启动应用
- [ ] 7.3 本地测试:使用环境变量启动应用
- [ ] 7.4 本地测试:混合使用 CLI 参数和环境变量
- [ ] 7.5 验证配置摘要输出正确
- [ ] 7.6 清理代码,移除不再使用的函数和导入