编码规范
-
命名规范
-
大写开头 public 包外可见, 小写 private 包外不可见
-
包名默认与文件夹名称一致,小写 不要下划线
-
文件名 小写 用 下划线 分割 各个单词
-
结构体命名以 驼峰命名 类似 java class
-
接口一般以 er 为后缀结尾
-
变量 urlArray , URLArray 采用驼峰命名, bool ==> isExist , hasConflict, canManage, allowGitHook
-
常量 APP_KEY, APP_VER
-
枚举常量以及注释
type Scheme string const ( HTTP Scheme = "http" HTTPS Scheme = "https" ) /* 返回: int 类型 返回相加的结果 参数: x 加数, y 被加数 */ godoc 可以生成文档, python 可以用 sphinx 生成文档 包也应该有一个包注释 , 一个位于 package 自居之前的 块注释 或 行注释 1. 包的基本简介 (包名, 简介) 2. 创建者, 格式: 创建人 : rtx 名 3. 创建时间, 格式 : 创建时间:yyyyMMdd // util 包, 该包包含了项目共用的一些常量, 封装项目中一些共用函数 // 创建人: hanru // 创建时间: 20190419 结构体采用 下面注释格式 // User, 用户兑现跟, 定义了用户的基础信息 type User struct{ UserName string // 用户名 Email string // 邮箱 } // 函数方法采用如下注释 // NewAttrModel , 属性数据层操作类的工厂方法 // 参数: // ctx : 上下文信息 // 返回值: // 属性操作类指针 func NewAttrModel(ctx *common.Context) *AttrModel{ }
-
import 规范
内置包 第三方包 自己写的包 goimports 会帮忙格式化 import( 内置 第三方 自己写的 ) 用第三方的,或者内置的 采用绝对路径导入 自己项目内部的 可以采用相对路径
-
错误处理
错误处理的原则就是不能丢弃任何有返回 err 的调用, 不要使用 _ 丢弃, 必须全部处理, 接收到的错误, 要么返回 err, 或者使用 log 记录下来 尽早 return: 一旦有错误发生, 马上返回 精良不要使用 panic, 除非你知道你在做什么 错误描述如果是英文必须小写, 不需要标点结尾 采用独立的错误流进行处理 if err != nil { // error handling return // or continue , etc }else{ // normal code }
-