代码规范和性能调优 | 青训营笔记

141 阅读2分钟

这是我参加「第五届青训营」笔记创作活动的第二天

概述

    1、代码规范
    2、性能调优

一、代码规范

1、编程原则

编程遵循简单性、可读性两个原则,保证团队工作效率

命名遵循降低阅读理解代码成本的原则,尽量包含上下文信息,名称简洁

2、编码规范

注释

注释应该解释代码,包括代码的功能,代码的实现,代码实现的原因和代码对出错的处理等必要的细节,增强代码的可读性

公共符号
实现过程
解释代码实现的外界因素

需要注意的是注释保证的是必要的信息,以供使用者更好的使用,冗余的信息不必注释

变量

变量尽量简洁
对于特定的缩略词尽量采用全大写的方式,如xxxHTTP等
变量尽量携带必要的信息

函数

函数不包含包携带的信息
函数名尽量简短
函数返回的类型与包名相同时,可以省略类型信息

包名仅有小写字母组成,包含上下文信息
不能与标准库同名
不用常用变量名作为包名
缩写谨慎使用

控制流程

避免嵌套
优先处理/返回错误情况,尽早返回
保证代码的缩进

错误处理

panic用于处理真正异常的情况,大多用在初始化和main中,在其他函数中尽量避免使用
使用error时,尽可能提供简明的错误信息链,方便处理错误
recover仅用在defer函数中,无法在嵌套中生效

二、性能调优

性能调优建议:

1、预分配内存,如slicemap等函数,预先分配内存
2、字符串拼接尽可能避免使用+,使用strings.Builder替代
3、使用空结构体节省内存
4、锁操作应该用于保护一段逻辑,数值的变化使用atomic包实现

关于性能调优

1、性能调优依靠数据而不是猜测
2、对主要瓶颈处理的优先级高于细枝末节
3、适度优化

性能排查可以使用性能分析工具----pprof

pprof工具的可视化界面依赖于Graphviz