高质量编程及编码规范|青训营

57 阅读1分钟

这节课主要介绍代码规范化,性能评估的原则与流程。

高质量编程

高质量编程简介

编写的代码正确可靠、简洁清晰。边界条件考虑完备,异常情况处理,稳定性保证。易读易维护。

简单性:消除多余复杂程序逻辑,方便修复改进

可读性:确保代码可读

生产力:生产效率

——go语言开发者Dave Cheney

编码规范

代码格式: gofmt自动格式化代码 以及goimports 注释: 注释代码作用/代码如何做的/实现原因/代码什么情况出错/公共符号始终要注释

命名规范: variable 缩略词使用ServeHTTP,缩略词全大写 xmlHTTPRequest 变量距离携带上下文信息

function: 函数名不携带包名信息 函数名尽量简短 foo的包某函数返回类型Foo,可省略类型信息 foo的包某个函数返回类型T,可加类型信息

http包中创建服务的函数命名使用前者更好 image.png

package: 全小写字母 不与标准库同名,如sync,strings 尽量满足: 使用单数非负数 buf-》bufio encodings->encoding format-》fmt

控制流程: 避免if else嵌套 image.png 保持正常代码路径为最小缩进

错误和异常处理: 简单错误 errors.new(“”) 格式化需求使用fmt.Errorf

错误的wrap和unwrap image.png

image.png

panic: 不建议业务代码使用panic 不包含recover会造成程序崩溃

defer会在返回前先输出

性能优化建议

性能调优实战

性能调优简介

字符串处理

atomic包仅仅保护一个变量 sync.Mutex保护逻辑而不仅仅保护变量

性能分析pprof实战

性能调优案例