- 所有可执行文件的路径放在
cmd/
目录下,子目录名即为可执行文件名, - 所有可执行文件的私有包放在各自子目录的
internal/
目录下 - 所有公共包放在
pkg/
目录下 - 文档放在
docs/
目录下 - 数据库迁移脚本放在
migrations/
目录下
- 代码风格参考
- 命名
- 可执行程序名:小写字母,单词之间用减号
-
分隔 - 包名:1 到 2 个单词,全小写字母,不使用下划线,命名时采用单数形式,不要使用复数形式
- 目录名:应该和可执行程序名或包名一致
- 文件名:小写字母,单词之间用下划线
_
分隔 - 函数、变量、常量名:驼峰命名法,除极其特别的情况外,不使用下划线
_
- 可执行程序名:小写字母,单词之间用减号
- 注释
pkg/
目录下的包应该有注释,注释应该包含包的功能、使用方法、示例等pkg/
目录下的包的导出函数、常量、变量、结构体和接口在不能通过函数名看出功能的情况下,应该有注释,注释应该包含函数的功能、参数、返回值、示例等,internal/
目录下的包,以及main
包可以不用注释
- 尽量避免使用全局变量,全局变量会增加代码的复杂度
- 尽量避免使用
panic
,panic
会导致程序崩溃,应该使用error
返回错误 - Getters 可以不用加
Get
前缀,直接以名词命名即可 - 命名时不要重复,例如 AppLogger.ConfigAppLogger() 应该改为 AppLogger.Config()
- 尽量避免使用
fmt.Println
,应该使用logger
包