高质量编程

76 阅读1分钟

image.png

原则:

简单性 可读性 生产力

代码格式:

使用gofmt 自动格式化代码

goimports

注释 1.解释代码作用; 2.解释代码如何做的; 3.解释代码实现的原因; 4.解释代码什么情况会出错。

命名规范 略缩词全大写,但当其位于变量开头且不需要导出时,全小写。 最好携带上下文信息。

函数不要携带上下文信息。

包名只由小写字母组成,包含一定的上下文信息。

性能优化

Go语言提供了支持基准性能测试的benchmark。

go test -bench=. -benchmem

slice预分配内存。用mack创建的时候给定容量。用copy替代re-slice。

map预分配内存。提前分配好可以减少拷贝和Rehash。

字符串拼接使用strings.Builder。strings.Builder也可以预分配空间。

空结构体不占用内存。

atomic包

cas操作。cas操作比加锁性能更高。