Go语言编码规范

注:相关的文章虽然在网上一大堆了,但是自己总结终究是自己所得,哈哈哈,另外虽然刚入职那会儿研究了某些大厂的明文风格要求,但是我的代码风格真的乱得根一坨【自己脑补】一样,哎,菜鸡本菜,索性现在补齐了
代码格式规范
goland自带规范格式操作,仅需control + alt + L,就这么简单,给你搞得规规矩矩的,缩进工整。
包相关
1. 包名要求小写,简洁,准确,无下划线,越短越好,尽量不要与标准库重名,禁止通过中划线连接多个单词
2. 另外在导入包时请务必使用绝对路径,不要使用相对路径,真心怕你修改文件层级时你的包找不着北了。
3. 当导入多个包时要求尽量把包划分为三类,标准库包,程序内部包,第三方包,然后同一类包按照字母序排序,不同类包之间最好换行加空行分割
4. 多个包导入格式如下:
import(
"fmt"
"os"
)
5. 请勿:
	import “fmt"
	import "os"
6. 另外当导入的包名最后一层级重复或者名字太长时记得重命名
7. 包注释只需在一个文件头声明即可,尽量加上
	1)包的基本简介(包名,简介)
	2)创建者,格式: 创建人: rtx 名
	3)创建时间,格式:创建时间: yyyyMMdd
变量命名
1. 驼峰式,首字母根据变量的作用域(访问控制)首字母大小写,要求,全局变量也就是函数外变量用var定义,不要闲得D疼“:=”,不然分分钟报错,同时定义多个变量时如下:
var (
		name  string
		age   int
	)
请不要如下:
var name string
var age  int
虽然看起来没什么,但是真的看起来你好没技术啊【蒙面哭笑】
2. 如果变量为bool类型请用类似于is、ok、have之类命名
函数规范
1. 驼峰式,根据访问控制(包内包外)首字母大小写
2. 若无必要, 请不要返回具有变量名的返回值
3. 函数名尽量动词开头,当然,这点全凭喜好
4. 越简单越重要的函数放在最前面,另外具有调度性质的函数放在最前面,便于查阅
5. 注释很重要,尤其在有复杂逻辑处理的函数里,函数头上一行应该添加必要的函数说明,不然那个代码真的只为你服务,问题是怕你一周后回来查看连你自己都看不懂(亲身体验),注释要求如下
	1)简要说明,格式说明:以函数名开头,“,”分隔说明部分
	2)参数列表:每行一个参数,参数名开头,“,”分隔说明部分
	3)返回值: 每行一个返回值
6. 参数类型不是map,slice或者chan需要采用传"指针"类型而不是传"值"类型,传递指针可以避免变量的值拷贝而造成的空间浪费,另外函数内改变改变量的值,可以传递到函数外,因此“一改具改,内外同步”, 当然了,改之前请三思哈
7. 参数类型是map,slice或者chan,不要用指针传递, 至于为什么,因为底层实现此三者本身就是指针
8. 错误处理的原则就是不能丢弃任何有返回err的调用,不要采用_丢弃,必须全部处理。接收到错误,要么返回err,要么实在不行就panic,或者使用log记录下来
9. 函数返回值存有数据量较大时, 采用返回"指针"类型而不是返回"值"类型,同样,为了避免返回存有较多数据的结构体或数据类型时拷贝造成的空间浪费
接口规范
1. 驼峰式,根据访问控制(包内包外)首字母大小写,或者 type alias 来定义大写开头的 type 给包外访问
2. 单个函数的接口名以"er"作为后缀,例如type Reader interface {…}
3. 两个函数的接口名综合两个函数名,例如type WriteFlusher interface {…}
4. 三个以上函数的接口名,类似于结构体名,例如type Car interface {…}
5. 若是API接口则强列要求写明注释,函数作用、参数、返回值等
文件命名
1. 除说明文件,如README.md之类的文件外,文件名小写
2. 若是文件名由多个单次构成,使用下划线“_”隔开	
3. 文件名以功能为指引,不需要再出现模块名
4. 目录名必须小写,允许中划线'-',但头尾不能,同时目录名不要包含下划线“_”,虽然可以
结构体相关
1. 驼峰式,根据访问控制(包内包外)首字母大小写
2. 初始化格式为多行,请不要写在一行,显得杂乱无章
3. 数据库数据结构体,配置文件(yaml,json)数据结构体请在结构体成员变量后面加上注释或者结构体标签
常量
1. 常量命名字母全大写,单词间以下划线“_”分割,且在上一行添加注释
2. 如果是枚举类型的常量,需要先创建相应类型
其他
1. 尽量使用代码管理工具,GitHub,gitlab等,在每次提交代码前必须,必须哈pull一遍
2. 尽量少使用全局变量
3. 尽量不要用main()方法测试代码,最好自己写一个test用例,单元测试,模块测试,功能测试,自己写(别整黑盒白盒哈,啥乱七八糟的,哈哈哈)
4. 使用go module管理第三方包,熟悉 Go 语言各特征,避免低效用法
5. 待补充,欢迎留言补充哦........
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值