SuperAPI AI 工具集

go-best-practices

通用与其它

查看项目

更新于 10-15 21:05

技能介绍

用途:该技能在读取或编写 Go 文件(.go、go.mod)时启用,提供 Go 语言惯用法的最佳实践,遵循类型优先、函数式与错误处理模式,仅覆盖语言特定惯用法。

主要能力:

  1. 让非法状态不可表示:用类型系统在编译期阻止无效状态。为领域原语定义自定义类型(如 UserID、OrderID 等不同字符串类型,防止 ID 混用),并为类型附加方法。
  2. 接口用于行为契约:按需定义接口而非按已有实现定义,遵循“接受接口、返回结构体”。
  3. 枚举与穷尽 switch:使用 iota 定义枚举,并在 switch 中处理 default 返回错误以覆盖未处理状态。
  4. 函数式选项:通过 ServerOption 等选项函数实现灵活构造,如 NewServer(WithPort(3000), WithTimeout(time.Minute))。
  5. 嵌入实现组合:通过嵌入 Timestamps 等结构体让类型获得字段。
  6. Go 错误处理:用 %w 包装错误以保留错误链,支持 errors.Is / errors.As。
  7. 结构化日志:使用 log/slog 输出结构化键值对日志。

使用方式:在涉及 Go 文件读写时应用上述模式;具体安装或调用命令资料未提供。

适用场景:Go 项目开发中的类型设计、接口定义、枚举处理、构造选项、错误包装与日志记录。

限制:仅覆盖 Go 语言特定惯用法,不涉及其他语言;资料未提供收费、平台、效果等更多信息。