## Uber Go语言编码规范
# [uber_go_guide_cn](https://github.com/xxjwxc/uber_go_guide_cn)
## [go 语言中文网 完整翻译版 ](https://studygolang.com/articles/23941)
## 目录
- [介绍](#介绍)
- [指导原则](#指导原则)
- [指向interface的指针](#指向interface的指针)
- [接收器(receiver)与接口](#接收器(receiver)与接口)
- [零值Mutex是有效的](#零值Mutex是有效的)
- [在边界处拷贝Slices和Maps](#在边界处拷贝Slices和Maps)
- [使用defer做清理](#使用defer做清理)
- [Channel的size要么是1,要么是无缓冲的](#Channel的size要么是1,要么是无缓冲的)
- [枚举从1开始](#枚举从1开始)
- [错误类型](#错误类型)
- [错误包装(Error Wrapping)](#错误包装(Error-Wrapping))
- [处理类型断言失败](#处理类型断言失败)
- [不要panic](#不要panic)
- [使用go.uber.org/atomic](#使用go.uber.org/atomic)
- [性能](#性能)
- [优先使用strconv而不是fmt](#优先使用strconv而不是fmt)
- [避免字符串到字节的转换](#避免字符串到字节的转换)
- [规范](#规范)
- [相似的声明放在一组](#相似的声明放在一组)
- [import组内的包导入顺序](#import组内的包导入顺序)
- [包名](#包名)
- [函数名](#函数名)
- [导入别名](#导入别名)
- [函数分组与顺序](#函数分组与顺序)
- [减少嵌套](#减少嵌套)
- [不必要的else](#不必要的else)
- [顶层变量声明](#顶层变量声明)
- [对于未导出的顶层常量和变量,使用_作为前缀](#对于未导出的顶层常量和变量,使用_作为前缀)
- [结构体中的嵌入](#结构体中的嵌入)
- [使用字段名初始化结构体](#使用字段名初始化结构体)
- [本地变量声明](#本地变量声明)
- [nil是一个有效的slice](#nil是一个有效的slice)
- [小变量作用域](#小变量作用域)
- [避免裸参数](#避免裸参数)
- [使用原始字符串字面值,避免转义](#使用原始字符串字面值,避免转义)
- [初始化结构体引用](#初始化结构体引用)
- [格式化字符串放在Printf外部](#格式化字符串放在Printf外部)
- [命名Printf样式的函数](#命名Printf样式的函数)
- [模式](#模式)
- [测试Tables](#测试Tables)
- [功能选项](#功能选项)
## 说明:由于go语言中文网的排版问题,请还是移步到github查看方便许多
## [uber_go_guide_cn](https://github.com/xxjwxc/uber_go_guide_cn)