Go 高质量编程与性能调优 | 青训营笔记

98 阅读2分钟

Go 高质量编程与性能调优 | 青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天,本节课主要讲了关于高质量编程的定义和原则,分享了代码格式、注释、命名规范、控制流程、错误和异常处理五方面的常见编码规范。

1.高质量编程

1.1 简介

高质量:编写的代码正确可靠,简洁清晰

编程原则:简单性、可读性、生产力

1.2 编码规范

1.2.1 代码格式

最好使用gofmt自动格式化代码

1.2.2注释

善于使用注释,如解释代码作用、实现原因、公共符号以及什么情况下代码会出错

1.2.3命名规范

一些命名的常用规范,如要简洁,略缩词全大写(但其位于变量开头且不需要导出时全小写),变量距离其被使用的地方越远,则需要携带越多的上下文信息。

函数名不携带包名的上下文信息,函数尽量简短,当foo的包某个函数返回类型Foo时,可以省略类型信息而不导致歧义。

包只由小写字母组成,不包含大写字母和下划线等字符,简短并包含一定的上下文信息,不要与标准库重名。

即核心目标是降低阅读理解代码的成本,重点考虑上下文信息,设计简洁清晰的名称。

1.2.4控制流程

避免嵌套,保持正常流程清晰,尽量保持正常代码路径为最小缩进。

即处理逻辑最好走直线,避免复杂的嵌套分支,提升代码可维护性与可行性。

1.2.5错误和异常处理

简单错误(只出现一次):优先使用errors.New创建匿名变量来直接表示简单错误。

错误的Wrap和Unwrap:提供了一个error嵌套另一个error的能力,从而生成一个error的跟踪链。

错误判定:判定一个错误是否为特定错误用error.Is

在错误链上获取特定种类的错误,使用error.As

panic/recover

1.3性能优化建议

Benchmark、Slice、Map、字符串处理、空结构体、atomic包的优化方法介绍。

2.性能优化实践

性能分析工具pprof:观察CPU、浏览器查看指标、Heap、goroutine、mutex、block

性能调优案例-业务服务优化。

3.总结

此前未接触过此类实践,课下仍需时间进行复习与整理。