/images/avatar.png

半生戎码

Go编码规范

1. 代码风格

1.1 代码格式

  • 代码都必须用 gofmt 进行格式化。
  • 运算符和操作数之间要留空格。
  • 建议一行代码不超过 120 个字符,超过部分,请采用合适的换行方式换行。但也有些例外场景,例如 import 行、工具自动生成的代码、带 tag 的 struct 字段。
  • 文件长度不能超过 800 行。
  • 函数长度不能超过 80 行。
  • import 规范
    • 代码都必须用goimports进行格式化(建议将代码 Go 代码编辑器设置为:保存时运行 goimports)。
    • 不要使用相对路径引入包,例如 import ../util/net
    • 包名称与导入路径的最后一个目录名不匹配时,或者多个相同包名冲突时,则必须使用导入别名。
	// bad
	"github.com/dgrijalva/jwt-go/v4"

	//good
	jwt "github.com/dgrijalva/jwt-go/v4"
- 导入的包建议进行分组,匿名包的引用使用一个新的分组,并对匿名包引用进行说明。
	import (
		// go 标准包
		"fmt"

		// 第三方包
	    "github.com/jinzhu/gorm"
	    "github.com/spf13/cobra"
	    "github.com/spf13/viper"

		// 匿名包单独分组,并对匿名包引用进行说明
	    // import mysql driver
	    _ "github.com/jinzhu/gorm/dialects/mysql"

		// 内部包
	    v1 "github.com/marmotedu/api/apiserver/v1"
	    metav1 "github.com/marmotedu/apimachinery/pkg/meta/v1"
	    "github.com/marmotedu/iam/pkg/cli/genericclioptions"
	)

1.2 声明、初始化和定义

当函数中需要使用到多个变量时,可以在函数开始处使用var声明。在函数外部声明必须使用 var ,不要采用 := ,容易踩到变量的作用域的问题。

Go 安装、升级、卸载

卸载

如果以前安装过版本,可以先卸载

  1. 如果是用 Ubuntu 用 apt 安装的,用以下命令卸载
sudo apt-get remove golang-go
sudo apt-get remove --auto-remove golang-go
  1. 如果是手动下载安装的,删除相应目录即可

安装

  1. 下载 go