Go语言之安装环境及编程规范、代码格式化

前言

Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。

go是非常年轻的一门语言,它的主要目标是“兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性”

Go最不方便的在于早期版本没有泛型,但是从1.18起也加入了泛型。

go适合做什么

  • 服务端开发
  • 分布式系统,微服务
  • 网络编程
  • 区块链开发
  • 内存KV数据库,例如boltDB、levelDB
  • 云平台

推荐文档:http://www.topgoer.com/

安装GO环境

下载地址:https://studygolang.com/dl

推荐安装:go1.18.7.windows-amd64.msi

因为从1.18起才支持的泛型。

安装后查看

1
go version

成功显示

go version go1.18.7 windows/amd64

设置环境变量GOPROXY=https://goproxy.cn

image-20210412110225584

编程规范

  1. 编程规范好,可避免语言陷阱,可有利团队协作,有利项目维护。
  2. 正常的Go编程规范有两种:编译器强制的(必须的),gofmt格式化非强制的(非必须)。
  3. Go宣告支持驼峰命名法,排斥下划线法。
  4. 自定义原则:
    1. 统一工作区间,避免目录及文件名随意
    2. 规范变量/结构体/方法及接口名
    3. 规范注释
    4. 单元测试/程序效率等建议

两个等级: (S)建议,(M)必须。

  • (M)一个目录只包含一个包,模块复杂拆分子模块/子目录
  • (M)提交代码时gofmt格式化代码,golint检查代码(使用IDE时默认这两个工具会自动用到)
  • (S)json字符串建议使用反单引号
  • (M)文件名必须小写,允许下划线_,但头尾不能。避免与_test.go或者系统相关_386.go等冲突
  • (S)文件名以功能为指引,不需要再出现模块名
  • (M)目录名必须小写,允许中划线-,但头尾不能 不建议目录名出现下划线_
  • (M)包名必须全部小写,无下划线,越短越好,尽量不要与标准库重名,禁止通过中划线连接多个单词
  • (S)包名尽量与目录名一致
  • (M)函数名和结构体名必须为(驼峰命名法),最好不带特殊字符如划线等
  • (S)函数名建议动词或者动宾结构单词,结构体建议名词或者动名词
  • (S)常量和枚举名(大驼峰命名法),不允许下划线,第三方包例外。
  • (M)函数参数(小驼峰命名法),不能有下划线
  • (S)函数参数按紧密程度安排位置,同类型参数应该相邻
  • (S)参数不大于5个
  • (M)变量名不允许下划线,局部变量(小驼峰命名法),全局变量(大驼峰命名法)
  • (S)避免全局变量多使用,for循环可用单字母
  • (M)接口名(大驼峰命名法),不能下划线,名词
  • (M)复杂功能请多写注释备注,注释表达需清晰,不要啰嗦。注释标准暂时不强制,最好参考godoc,如包注释使用/**/,(大驼峰命名法),注释后空一行,函数注释写在函数上方等。
  • (S)建议少使用main方法测试,而是使用_test.go做测试

总而言之

文件名和目录名,包名都必须小写。

公有方法名、枚举名、接口名、常量、全局变量使用大驼峰命名法

私有方法名、局部变量和方法的参数使用小驼峰命名法

提示

Go语言中根据首字母的大小写来确定可以访问的权限。

无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用

可以简单的理解成:首字母大写是公有的,首字母小写是私有的

IDEA中格式化

新版本IDEA已经自带Actions on Save,可以忽略下面的设置。

安装 File Watchers 插件和Save Actions插件

image-20221006152001041

设置 Tools=>File Watchers 点击添加
image-20221006152735189

弹出的窗口按下图配置

image-20221006160513108

其中

Program 选择go安装目录下的gofmt

Argnuments 输入 -w $FilePath$

取消自动保存,否则会一更改就触发格式化。

注意

页面修改保存时才会格式化,如果没有格式化,重启IDEA即可。

要在保存的时候触发格式化

image-20221006160625585