Files
Inbox/Go项目实战/03_基础设施/01_错误处理/Phase 0 基础设施构建执行清单 (Execution Checklist).md
2025-12-11 07:24:36 +08:00

2.3 KiB
Raw Blame History

tags, aliases, date created, date modified
tags aliases date created date modified
📋 Phase 0: 基础设施构建执行清单 (Execution Checklist)
星期三, 十二月 10日 2025, 11:15:25 上午 星期三, 十二月 10日 2025, 11:41:27 中午

📋 Phase 0: 基础设施构建执行清单 (Execution Checklist)

  • Step 1: internal/pkg/ecode/code.go - 定义错误码注册表

    • 核心职责: 仅定义 int 类型的 const 常量。包括基础设施类10000+和业务类20000+)错误码。
    • 依赖: 无 (Root Node)。
    • 注意: 需严格遵循文档中的“五位数字”分段规则。
  • Step 2: internal/pkg/ecode/msg.go - 定义错误文案映射

    • 核心职责: 初始化全局 map[int]string,提供 GetMsg(code) 方法。
    • 依赖: Step 1 (code.go 中的常量)。
    • 注意: 使用 sync.RWMutex 保护并发读写(虽然主要是读),文案必须是“用户安全”的。
  • Step 3: internal/pkg/ecode/error.go - 实现核心错误实体

    • 核心职责: 定义 struct Error,实现 error 接口,提供 New(), Error(), Code() 等方法。支持 WithDetails 等动态扩展。
    • 依赖: Step 1 & Step 2。
    • 注意: 这是 Service 层唯一允许引用的错误对象。
  • Step 4: internal/pkg/app/options.go - 定义响应配置模式

    • 核心职责: 定义 type Option func(*Response) 及常用的 Option 实现(如 WithTraceID)。
    • 依赖: 无(或仅依赖标准库)。
    • 注意: 先于 response.go 实现,以便主逻辑直接使用配置项,符合“开闭原则”。
  • Step 5: internal/pkg/app/response.go - 实现 HTTP 响应封装

    • 核心职责: 定义 Response 结构体,封装 New, Success, Error 方法。处理 JSON 序列化、TraceID 注入、以及将 error 接口清洗为 ecode 的逻辑。
    • 依赖: Step 3 (ecode), Step 4 (options), Gin Context
    • 注意: 需实现“双层信息架构”日志记录原始错误HTTP Body 返回安全文案。
  • Step 6: internal/pkg/app/responder.go - 定义 Responder 接口

    • 核心职责: 定义 Responder 接口,解耦具体实现,方便未来 Mock 测试。
    • 依赖: app/response.go (实现关系)。