这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天。
一、本堂课重点内容:
- 如何编写更简洁清晰的代码
- 常用go语言程序优化手段
- 熟悉go程序性能分析工具
- 了解工程中性能优化的原则和流程
二、详细知识点介绍:
高质量编程原则:
- 简单性;
- 可读性(确保可维护);
- 生产力。
编码规范:
- 代码格式:推荐使用gofmt自动格式化代码;Goland可设置保存代码时自动格式化;goimports;
- 注释:注释应该解释代码作用、如何做的、实现的原因、什么情况会出错;包中声明的每个公共的符号:变量、常量、函数以及结构都需要添加注释;任何既不明显,也不简短的公共功能,必须予以注释;无论长度或复杂度如何,对库中的任何函数都必须进行注释;
- 命名规范:a.变量命名(variable):简洁;缩略词全大写,位于变量开头且不需要导出时,使用全小写;全局变量命名尽量携带更多上下文信息;b.函数命名(function):函数名不携带包名上下文信息;当函数返回类型与包名一致时,可省略类型信息;当函数返回类型与包名不一致时,要在函数名中加入类型信息;c.包命名(package):只由小写字母组成;简短并包含一定上下文信息;不要与标准库同名;
- 控制流程:避免嵌套;尽量保持正常代码路径为最小缩进;
- 错误和异常处理:a.简单错误:仅出现一次且在其他地方不需要捕获该错误;优先使用error.New创建匿名变量来直接表示简单错误;若有格式要求,使用fmt.Error;b.复杂错误:使用错误的包装(Wrap)和解包(Unwrap);
三、课后个人总结:
- 编码规范中的流程控制需要多实践。
四、引用参考: