这是我参与「第五届青训营 」伴学笔记创作活动的第三天
高质量编程
高质量指 正确可靠,简洁清晰
需要考虑,边界条件,稳定性,易读和易维护
1.如何编写更简洁清晰的代码
代码格式固定
注释
公共符号必须要有注释
解释代码是如何做的
解释代码的逻辑结构
解释代码的限制条件
注释要补充代码未表达的信息
命名规范
目的还是降低阅读和理解成本
1.变量命名
2.函数命名
例如
两个命名格式第一个会好点,因为他本身就在http包里面
3.包命名
控制流程
1.避免嵌套
2.优先处理错误情况和特殊情况,尽早检查到,减少额外的
错误和异常处理
1.简单错误
处理方法例如
2.复杂错误
业务代码中尽量不使用panic,用error代替panic
recover的使用
recover只在当前goroutine的被defer的函数中生效
1
2.常用go语言性能优化
评估代码性能 go test -bench=. -benchmem 该命令为官方带的评测工具
1.slice预分配内存,make初始化的时候提供切片容量
2.在原有基础上创建切片可能会导致大内存没释放
3。map内存预分配
4.字符串处理
用+号,性能最差
用strings.builder时间最短
用bytebuffer
5.空结构体
使用可以节省内存
6.atomic包
7.小结
3.go程序分析工具
pprof工具
pprof功能简介
pprof排查实战
top 查看调用函数占比例资源最多的函数
list根据表达式查找代码行
web 调用函数关系可视化
heap堆内存
pprog检查协程goroutine
pprof检查锁操作
block(阻塞)的检查
pprof采样过程和原理
cpu原理
heap,堆内存采样
协程采样
lock操作采样
4.性能优化的原则和流程
性能调优实战
一些基础概念
业务服务优化
流程
评估手段
高并发优化