这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记 这篇笔记记录在高质量编程课堂上的相关知识点
小知识点
1.命名 package 只写小写字母
2.控制流程 if else嵌套
if err:=doSomething; err != nil{
return err
}
if err:=doAnotherting; err!= nil{
return nil
}
return nil
3.错误异常处理
-
简单错误:优先用 errors.New("xxxxx") 创建匿名变量,表示简单错误
有格式化要求 用 fmt.Errorf() 根据参数格式化字符串,返回一个包含该字符串的错误
-
错误的 Wrap 和 UnWrap Wrap提供一个 error嵌套另一个error,生成跟踪链
例:fmt.Errorf("xxx %w", err) 关联错误至链中
-
errors.Is 判定是否为特定错误
errors.As 获取特定种类的错误
性能分析工具 pprof
1.运行程序后,使用浏览器 localhost:6060/debug/pprof/
2.排查cpu问题
- go tool pprof "http://localhost:6060/debug/pprof/profile?seconds=10"
3.使用web可视化
- go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/cpu" 查看cpu
- go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/heap" 查看堆
- go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/goroutine" 查看协程
- go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/mutex" 查看锁
- go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/block" 查看阻塞