这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
一、本堂课重点内容:
本堂课主要是讲述了Go 高质量编程与性能调优,在本次的学习中,我们首先学习了什么是高质量编程以及Go语言中的一些编码规范,接着我们学习了性能调优部分,了解了什么是性能调优,学习了性能分析工具pprof,最后完成了一个性能调优案例。
二、Go的高质量编程:
gofmt
设置界面
一些参数解释
-cpuprofile string
将CPU配置文件写入此文件
-d
不将重新格式化的源打印到标准输出。
如果一个文件的格式与gofmt的不同,则将差异部分打印到标准输出。
-e
打印所有(包括虚假)错误。
-l
不将格式化的源打印到标准输出。
如果文件的格式与 gofmt 不同,则将其名称打印到标准输出。
-r rule(string)
在重新格式化之前,对源应用重写规则(例如,'a[b:len(a)] -> a[b:]')
-s
尝试简化代码(在应用重写规则后,如果有的话)。
-w
不将重新格式化的源打印到标准输出。
如果文件的格式与 gofmt 不同,则用 gofmt 的版本覆盖它。
如果在覆盖期间发生错误,原始文件将从自动备份中恢复
命名规范 对于variable,function,package的命名基本都要求简洁,同时要包含必要的信息,同时不能与Go语言自带的重复。
这里需要注意的是
- 包(package)只由小写字母组成,不包含大写字母和下划线等字符。
- 变量(variable)缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写
- 函数(function)首字母为大写的时候,这个方法对于所有包都是Public,其他包随意调用。当方法的首字母为小写时,这个方法是Private,其他包是无法访问的。
三、Go的性能调优:
性能调优原则
- 要依靠数据不是猜测
- 要定位最大瓶颈而不是细枝末节
- 不要过早优化
- 不要过度优化
四、课后个人总结:
今天这节课讲述了Go 高质量编程与性能调优,虽然相对于前面的课可能实践性没有那么强,但是通过本次课的学习我们可以了解从如何写代码到如何写好代码,并且评估自己写的代码并进行改进。总体来讲,这次的课程是非常具有实践意义和理论意义的。