第六届字节跳动青训营笔记篇(二) | 青训营

64 阅读2分钟

1.所有的测试文件以_test.go结尾,func TestXxx(*testing.T),初始化逻辑放到TestMain中

2.衡量代码的测试水准为代码覆盖率

3.一般覆盖率:50% ~ 60%,较高覆盖率80%+,测试分支相互独立、全面覆盖,测试单元粒度足够小,函数单一职责

4.快速Mock函数,为一个函数打桩,为一个方法打桩

5.基准测试:优化代码,需要对当前代码分析,内置的测试框架提供了基准测试的能力

6.数据层:数据Model,外部数据的增删改查;逻辑层:业务Enity,处理核心业务逻辑输出;视图层:视图view,处理和外部的交互逻辑

7.Router的实现步骤:初始化数据索引,初始化引擎配置,构建路由,启动服务

8.编写的代码能够达到正确可靠、简洁清晰的目标可称之为高质量代码

9.高质量代码的编程原则:简单性,可读性,生产力

10.高质量的GO代码的编码规范:代码格式,注释,命名规范,控制流程,错误和异常处理

11.公共符号始终要注释,包中声明的每个公共的符号,变量,常量,函数以及结构都需要添加注释;任何既不明显也不简短的公共功能必须予以注释;无论长度或复杂程度如何,对库中的任何函数都必须进行注释

12.推荐使用的gofmt自动格式化代码:能自动格式化Go语言代码为官方统一风格,常见IDE都支持方便的配置

13.注释的作用:解释代码的作用,解释代码如何做的,解释代码实现的原因,解释代码什么情况会出错

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

15.函数名不携带包名的上下文信息,尽量简短,当名为foo的包某个函数返回类型Foo时,可以省略类型信息,当其返回类型T时,可以在函数名中加入类型信息

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

17.控制流程语句:避免嵌套,保持正常流程清晰;尽量保持正常代码路径为最小缩进,提升代码的可维护性和可读性

18.异常处理时,error尽可能提供简明的上下文信息链,方便定位问题,panic用于真正异常的情况,recover生效范围,在当前goroutine的被defer的函数中生效