Golang 编程规范

Golang 编程规范

目录结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<GO_PROJECT>/
    |--pkg/            # 公有代码目录,其他的项目可以直接通过 import 引入这里的代码
    |--internel/       # 私有代码目录,在其他项目引入包含 internal 的依赖时,Go 语言会在编译时报错
    |   |--app/        # 
    |   \--pkg/        #
    |--cmd/            # 可执行组件目录,该目录下的每一个子目录都应该包含我们希望有的可执行文件
    |   |--mod1/       # 不应该在 /cmd 目录中放置太多的代码,应该将公有代码放置到 /pkg 中,
    |   \--mod2/       # 将私有代码放置到 /internal 中并在 /cmd 中引入这些包,保证 main 函数中的代码尽可能简单和少。
    |--api/            # 对外提供的各种不同类型的 API 接口
    |   |--api1
    |--scripts/
    |--Makefile
    |--go.mod
    |--README.md
  • pkg

  • internel

  • cmd

命名规范

Interface规范

  • 使用值类型进行接口参数传递

  • 接口实现使用值类型接收器

1

Struct规范

注释规范

  • bug注释
1
2
// BUG(astaxie):This divides by zero. 
var i float = 1/0

接收器

  • mutexstruct必须是指针receivers

参考

  1. Uber Go语言编码规范 | Tony Bai

  2. Go编码规范指南 - Go语言中文网 - Golang中文社区

updatedupdated2024-05-102024-05-10