这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
高质量代码
一份高质量的代码应该易读易维护,并能及时监测异常情况简单处理。
- 必要性:高质量意味着代码功能较为完善,尤其是对于异常或错误的正确处理决策方面应该具有极高的可靠性。
- 重要性:项目开发过程中避免不了要阅读他人代码,高质量的代码应该是具有较高可读性的、易维护的,这样可以提高团队开发效率。
代码规范
1. 代码格式
虽然对于代码运行来说,代码格式大多时候并不影响机器阅读,但是较乱的代码会影响人阅读它的效率。如果你不是一个完美主义者并且喜欢手动格式化自己书写的代码的话,笔者建议使用代码格式化工具。
prettier
vs code中可以极其简单的安装该插件,prettier官网
gofmt
一款由go开发团队制定的官方代码风格,可以在Goland中方便配置
基本用法:
gofmt [flags][path ...]
the flags are:
-r 在重新格式化源文件之前,对源应用重写规则
-w 将重写的源文件写入源文件
-s 简化代码
-d 只打印重写的源文件,而不写入源文件
-e 打印错误信息
-l 打印重写的源文件列表
2. 代码注释
注释应该做什么:
- 注释应该解释代码的作用
- 注释应该解释代码的实现细节和原因
- 注释应该解释代码的限制,如什么情况下会出错
- 注释应该提供代码未给出的上下文信息
3. 命名规范
常见的命名法:
- 大驼峰命名法:SettingRepository
- 小驼峰命名法:getUserInfo()
- 蛇形命名法:last_data
命名不一定要把所有的功能变量都写出来,简洁明了的命名永远优于冗长的命名,同时要注意所有缩略词都要大写。
4.流程控制
- 处理代码逻辑应该避免复杂的分支嵌套
- 优先处理异常或错误
- 正常代码流程应该沿着屏幕向下走
5.错误和异常处理
简单的错误指仅出现一次的错误且在其他地方不需要捕获,优先使用errors.New创建匿名变量表示。
错误的Wrap指生成一个error嵌套另一个error的错误链,方便追踪处理异常或错误,这提示我们error尽量携带上下文形成信息链。