SuperAPI AI 工具集

go-patterns

设计与创作

查看项目

更新于 10-15 21:51

技能介绍

用途:这是一个提供现代 Go 模式、惯用法与最佳实践的技能,重点覆盖 Go 1.18 及之后引入的特性。当需要编写地道的 Go 代码、在 Go 中实现设计模式、使用泛型/模糊测试/工作区等现代特性、重构代码使其更地道、讲解 Go 最佳实践或按惯用法进行代码评审时启用。

主要能力:

  • 现代 Go 特性:泛型(类型参数、类型约束、泛型数据结构如栈、map 工具函数 Keys/Values)、工作区(go.work 文件、多模块开发、本地依赖替换、简化跨模块测试与 monorepo 支持)。
  • 设计模式:函数式选项模式(Option 函数、WithHost/WithPort/WithTimeout/WithLogger)、构建器模式(链式 Where/OrderBy/Limit/Offset/Build)、策略模式(PaymentStrategy 接口与多种实现)、观察者模式(Subject 的 Attach/Detach/Notify)。
  • 惯用写法:错误处理(哨兵错误配合 errors.Is、自定义错误类型配合 errors.As、用 %w 包装错误)、接口模式(小接口、接口组合、接口隔离)、context 模式(用 http.NewRequestWithContext、超时 context、context 值存取)。
  • 最佳实践清单:接受接口返回结构体、让零值可用、组合优于继承、显式处理错误、用 defer 清理、读多写少优先 sync.RWMutex、用 context 做取消和超时、保持接口小、为导出标识符写文档、使用 go fmt 与 go vet。

使用方式:资料未提供该技能的具体安装命令或调用步骤,暂未提供。assets/ 目录包含完整代码示例(examples/)、设计模式实现(patterns/)和常见错误(antipatterns/);references/ 目录包含官方 Go 文档链接、Effective Go 指南、Go 箴言与社区最佳实践。

适用场景:编写或重构 Go 代码、代码评审、教学讲解、选择设计模式实现方案。

限制:资料未说明支持的 Go 版本下限以外的限制、依赖要求、平台或收费信息,暂未提供。