likes
comments
collection
share

Go 项目文件命名规范

作者站长头像
站长
· 阅读数 40

目录名规范

  • 采用全小写单词,如 cmd, internal
  • 必要时可用中划线分隔,如 kube-scheduler
  • 项目名遵循同样规范,如 userapi, kubernetes
  • 避免使用下划线命名,如 third_party

正确示例

cmd
internal
pkg
task
kube-scheduler
kube-controller-manager

反向示例

CMD
kubeScheduler
KubeScheduler
kube_scheduler

包名规范

  • 简短清晰,小写单一单词,避免冗余和蛇形命名。
  • 避免缩写产生歧义,如 strconv, syscall
  • 不使用用户常见名,如避免 buf 作为包名。
  • 不使用复数形式,如 net/url 而非 net/urls
  • 避免使用通用名称如 common, util
  • 不同目录中可有相同包名,如 runtime/pprofnet/http/pprof

正确示例

controller
stringset
tabwriter

反例

MyUtil
util
time // 与标准库重名
tabWriter
TabWriter
tab_writer

文件名规范

  • 多数情况下采用小写单词,必要时用下划线分隔(蛇形命名法)。
  • 测试文件以 _test.go 结尾。
  • "隐藏文件" 以 ._ 开头。
  • 特定操作系统或架构的文件使用特定后缀,如 name_linux.go

正确示例

router.go
middleware.go
webshell.go

反面示例

routers.go // 复数
fooBar.go
Service.go

总结

  • 采用 lowercase 而非 camelCasePascalCase
  • 目录名必要时使用 kebab-case,文件名使用 snake_case
  • 命名选择存在模糊地带,根据项目和团队习惯调整。
转载自:https://juejin.cn/post/7389912762049593396
评论
请登录