这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
什么是高质量编程?编写的代码能够达到正确可靠、简洁清晰的目标可以称之为高质量代码。也就是满足以下条件:各种边界条件是否考虑完备、异常情况处理,稳定性保证、易读易维护。这是张雷老师的看法,简略,但是让我受益匪浅。
同时老师也展开了以下几点来说明:
一、代码格式:
一些常见的IDE都能够自动格式化代码来统一风格。而我用的是GoLand,也方便来统一风格。
二、注释:
注释应该起到以下作用:
解释代码的作用。
解释代码实现的过程。
解释为什么要这样子实现。
解释什么情况下代码会出错。
但是我们也不要为了写注释而写注释,写不到点子上。比如一些方法我们通过方法名就能知道个大概了,而编写代码的人也在这里写了注释,对这个函数的作用进行了解释。但是并没有写的很具体,而是将这个方法名复述了一遍。那么这样的注释起到的作用也就并不是很大,我们也不建议大家写。
三、命名规范:
尽量做到以下几点:
能简洁就尽量简洁
缩略词全大写,但是当其位于变量开头且不用导出时,使用全小写。
变量定义距离使用的地方越远时(比如一些全局变量),应该携带更多的上下文信息。
四、控制流程:
避免嵌套,抽取掉冗余的部分。
保持正常代码路径为最小缩进。
五、错误和异常处理:
一些简单错误优先使用errors.New创建匿名变量来表示。
在fmt.Errorf中使用:%w来将一个错误关联到错误链中。
判断一个错误是否为特定错误时,应该使用errors.Is()。
业务代码中不建议使用panic,如果问题可以被屏蔽或解决,建议使用error来代替panic。
recover只能在当前goroutine的被defer的函数中生效。