Golang语言编程规范

参考文献

  • https://github.com/zeromicro/go-zero
  • (主要参考,基本全搬)
  • https://dave.cheney.net/practical-go/presentations/gophercon-singapore-2019.html#_simplicity
  • https://github.com/go-gorm/gorm
  • https://gorm.io/zh_CN/
  • https://github.com/gin-gonic/gin
  • https://gin-gonic.com/zh-cn/docs/
  • https://github.com/beego/beego
  • https://beego.vip/

前序

在我们使用golang开发时,见谅抦佢在其他语言中的一些规范习惯来套用golang开发,虽然不同语言之间的某些规范可能是想通的,但是我们最好能够按照官方的一些demo来熟悉渐渐适应当前语言的编程规范,而不是直接将原来语言的编程规范也随之迁移过来。

命名准则

  • 当变量名称在定义和最后一次使用之间的距离很短时,简短的名称看起来会更好。
  • 变量命名应尽量描述其内容,而不是类型
  • 常量命名应尽量描述其值,而不是如何使用这个值
  • 在遇到for,if等循环或分支时,推荐单个字母命名来标识参数和返回值
  • method、interface、type、package推荐使用单词命名
  • package名称也是命名的一部分,请尽量将其利用起来
  • 使用一致的命名风格

文件命名规范

  • 全小写单词命名
  • 多单词间用下划线_来间隔例如: order_by.go
  • 名称不宜过长

变量命名规范参考

  • 首字母小写
  • 驼峰命名
  • 见名知义,避免拼音替代英文
  • 不建议包含下划线(_)
  • 不建议包含数字

适用范围

  • 局部变量
  • 函数出参、入参

函数、常量命名规范

  • 驼峰式命名
  • 可exported的必须首字母大写
  • 不可exported的必须首字母小写
  • 避免全部大写与下划线(_)组合

import 包引入

  • 单行import不建议用圆括号包裹。
  • 按照官方包,NEW LINE,当前工程包,NEW LINE,第三方依赖包顺序引入。

函数返回

  • 对象避免非指针。(减少大块内存开销?)
  • 遵循有正常值返回则一定无error,有error则一定无正常返回的原则。

错误处理

  • 有err必须处理,如果不能处理必须抛出。
  • 避免下划线_ 接收err

函数体编码

  • 建议一个block结束空一行,如if、for等…
  • return前空一行

你可能感兴趣的:(Go修罗场,golang,开发语言,后端)