Go编程规范
编程风格
Go编程规范追求的是编写可读性高的Go代码。以下是5条原则。(按重要性排序)
- 清晰。一段代码的功能应该是清晰明确的
- 简单。代码应该尽可能用最简单的方式实现其功能。
- 简洁。代码的信噪比要高
- 可维护性。代码应该容易维护。
- 一致性。代码风格保持一致。
Clarity清晰
可读性的首要目标是要让读代码的人更清晰明确的意识到代码的功能和实现。
提高可读性的手段:有意义的命名,有用的注释,以及高效的代码组织结构
代码是否清晰是根据读者的视角来看的,而不是作者的视角。所以说代码易读比易写更重要。
代码的清晰涉及以下两个问题
这段代码是做什么的?
为了让以后的读者(更大的概率是以后的你自己及)能更好的理解代码的功能,有以下建议
- 变量的命名应该具有意义
- 增加注释
- 代码可以用空行或注释隔开
- 重构代码,抽象成独立的函数或方法,使代码更加模块化
为什么要写这段代码
代码的根本目的应该能从变量、函数或者包的命名中体现出来。
如果不能通过命名直接说明代码的功能,那么一定要加上注释说明。
尤其是在一些细微差别的场景下,一定写清楚为什么写这段代码
命名规范
go开发中有一些规则是默认的。俗称约定大于配置。及早了解这些规则,可以在入门阶段避免踩坑。
命名
源文件命名
go的源码文件,总是用全小写字母形式的单词组合进行命名。不出现大写单词。也就是说不使用驼峰命名法。(我现在也没想明白为啥不用首字母小写+驼峰命名这种方式)
有人说多个单词直接写在一起,不能用其他分隔符,如下划线分开。
比如,helloworld.go,不能写成hello_world.go。(虽然你这样写了也不会报错,实际上我也看到不少源码是这样写的)
我们要知道下划线在go源文件命名中是有特殊作用的,比如在测试代码源文件的命名都是xxx_test.go。
包名
包名通常使用单个的小写单词
整个 Go 程序中仅允许存在一个名为 main 的包。
一个文件夹下只能有一个package,即一个文件夹下的代码使用同一个包名。