关于 golang-base-practices
面向 Go 开发者的实践指南,涵盖代码生成、审查与重构。53 条规则按优先级组织,并附有示例和参考资料。
主要功能
- 0153 条分优先级规则
- 02涵盖框架与数据库实践
- 03涵盖错误处理和并发
- 04包含测试与性能建议
- 05提供示例及参考资料
适用场景
- 01创建 Go 项目或微服务
- 02审查代码并进行重构
- 03设计数据库操作与迁移
- 04改进测试覆盖和并发代码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cexll/ golang-base-practices-skills --skill golang-base-practices安装后在 Claude Code 中输入/golang-base-practices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdrules/concurrency-sync-primitives.mdconcurrency-channel-size.mddb-goose-migrations.mdconcurrency-goroutine-lifecycle.mdconcurrency-context-cancel.mddb-connection-pool.mdconcurrency-errgroup.mdconcurrency-race-detection.mdconcurrency-channel-patterns.mddb-gorm-transactions.mderror-api-response.mdddd-interface-layer.mdddd-project-layout.mdddd-domain-layer.mddb-gorm-setup.mdddd-infrastructure-layer.mddb-gorm-hooks.mdddd-application-layer.mdddd-dependency-injection.mderror-custom-types.mderror-handling-check.mdframework-gin-simple.mderror-sentinel.mderror-wrap-context.mdframework-kratos-complex.mdframework-middleware.mdidiomatic-blank-identifier.mderror-panic-recover.mdframework-graceful-shutdown.md详细介绍
Golang 基础实践
全面的 Go 开发最佳实践指南,按优先级组织,适用于代码生成、审查和重构。包含 53 条规则,参考了 Effective Go、Google Go Style Guide、Uber Go Style Guide 和 Go Code Review Comments。
适用场景
在以下场景中参考这些指南:
- 创建新的 Go 项目或微服务
- 构建 API 接口(REST/gRPC)
- 执行数据库操作和迁移
- 进行代码审查和重构
- 优化性能和并发
- 提高测试覆盖率
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 框架选择 | 严重 | framework- |
| 2 | 数据库和 ORM | 严重 | db- |
| 3 | DDD 项目结构 | 高 | ddd- |
| 4 | 错误处理 | 高 | error- |
| 5 | 并发模式 | 高 | concurrency- |
| 6 | Go 惯用实践 | 中 | idiomatic- |
| 7 | 测试实践 | 严重 | testing- |
| 8 | 性能优化 | 中 | performance- |
| 9 | Lint 和工具链 | 中 | lint- |
快速参考
1. 框架选择(严重)
framework-gin-simple- 简单项目使用 Ginframework-kratos-complex- 复杂微服务使用 Go-Kratosframework-middleware- 中间件设计模式framework-graceful-shutdown- 优雅关闭服务器
2. 数据库和 ORM(严重)
db-gorm-setup- GORM 初始化和配置db-gorm-hooks- GORM Hook 使用指南db-gorm-transactions- 事务处理模式db-goose-migrations- 使用 Goose 进行数据库迁移db-connection-pool- 连接池配置
3. DDD 项目结构(高)
ddd-project-layout- 标准项目目录结构ddd-domain-layer- 领域层设计ddd-application-layer- 应用层设计ddd-infrastructure-layer- 基础设施层设计ddd-interface-layer- 接口层设计ddd-dependency-injection- 依赖注入模式
4. 错误处理(高)
error-wrap-context- 使用上下文包装错误error-sentinel- 哨兵错误定义error-custom-types- 自定义错误类型error-handling-check- 始终检查错误返回值error-api-response- API 错误响应规范error-panic-recover- Panic 和 recover 使用指南
5. 并发模式(高)
concurrency-goroutine-lifecycle- Goroutine 生命周期管理concurrency-channel-patterns- Channel 使用模式concurrency-channel-size- Channel 缓冲区大小选择concurrency-context-cancel- Context 取消信号传播concurrency-errgroup- errgroup 并发控制concurrency-sync-primitives- sync 包原语的使用concurrency-race-detection- 竞态条件检测
6. Go 惯用实践(中)
idiomatic-naming- 命名约定idiomatic-comment- 文档注释指南idiomatic-interface- 接口设计(优先使用小接口)idiomatic-receiver- 接收者命名和选择idiomatic-struct-init- 结构体初始化idiomatic-functional-options- 函数式选项模式idiomatic-defer- defer 使用指南idiomatic-slice-map- Slice 和 Map 操作idiomatic-zero-value- 零值的使用idiomatic-embedding- 类型嵌入idiomatic-blank-identifier- 空标识符的使用
7. 测试实践(严重)
testing-coverage-99- 99% 测试覆盖率目标testing-table-driven- 表驱动测试testing-mock- Mock 和接口抽象testing-helper- 测试辅助函数指南testing-benchmark- 基准测试testing-integration- 集成测试规范testing-testify- testify 断言库的使用
8. 性能优化(中)
performance-strconv- 使用 strconv 代替 fmtperformance-prealloc- 容器预分配
9. Lint 与工具链(中)
lint-golangci- golangci-lint 配置lint-gofmt- 代码格式化lint-govet- 静态分析lint-staticcheck- 高级静态检查lint-revive- 可自定义的 linter
如何使用
如需详细说明和代码示例,请查阅 rules/ 目录中的具体规则文件:
rules/framework-gin-simple.md
rules/db-gorm-setup.md
rules/testing-table-driven.md
每个规则文件都包含:
- 规则说明及其重要性
- 带有分析的错误示例
- 带有说明的正确示例
- 补充背景和参考资料
核心原则
- KISS - 保持简单,避免过度设计
- YAGNI - 仅实现当前需要的功能
- 显式优于隐式 - 代码意图应清晰明了
- 处理所有错误 - 绝不忽略错误返回值
- 99% 测试覆盖率 - 高质量代码的基础
评论
支持 Markdown