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

79 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记

1、高质量编程

什么是高质量?

编写的代码能够达到正确可靠、简洁清晰的目标可以称之为高质量代码。 比如: 各种边界条件是否考虑完备 异常情况处理,稳定性保证 易读易维护

1.1 编程原则

简单性: 消除多余复杂性 以简单清晰的逻辑写代码 可读性: 代码是给人看的,编写可维护代码的第一步是确保代码可读 生产力: 团队整体工作效率非常重要

1.2.1 编码规范-代码格式

推荐使用gofmt自动格式编写代码

1.2.2 注释

注释应该解释代码的作用,代码实现的原因和什么情况会出错 公共符号始终要注释 注释应该提供代码未表达出的上下文信息

1.2.3 命名规范

将deadline替换Wiet降低了变量名的信息量 t常代指任意时间 deadline指截止时间 有特定的含义 这里上面这种命名规范更好一些 image.png

image.png

function 函数名不携带包名的上下文信息,因为包名和函数名总是成对出现的 函数名尽量简单 当名为foo的包某个函数返回类型Foo时 可以省略类型信息而不导致奇异 当名为foo的包某个函数返回类型T时(T不是Foo) 可以在函数名中加入类型信息

image.png

1.2.4 编码规范-控制流程

线性原理,处理逻辑尽量走直线,避免复杂的嵌套分支 正常流程代码沿着屏幕向下移动 提升代码的可维护性和可读性 故障问题大多出现在复杂的条件语句和循环语句中

1.2.5 编码规范-错误和异常处理

简单错误: 是指仅出现一次的错误,且在其他地方不需要捕获该错误 优先使用errors.New来创建匿名变量来直接表示简单错误 如果有格式化需求 使用fmt.Error

错误的Wrap和Unwrap

错误的warp提供了一个error嵌套另一个error的能力,从而生成一个error的跟踪链。 在fmt.Errorf中使用%w 关键字将一个错误关联到一个错误链中

image.png