青训营学习笔记第四篇之高质量编程 | 青训营

56 阅读3分钟

高质量编程

前言

真正的开发过程中几乎都是团队一起合作开发的,在开发过程中是需要一起合作共赢的,但是代码不是汉字,许多人的代码都是具有个人编程习惯的,这样的话不管是为了合作便利还是以后的检查,高质量代码编程都是非常重要的,所以这一章就是记录高质量编程。

定义

什么是高质量?

  • 编写的代码能够达到正确可靠,简介清晰的目标就可称为高质量代码

但是这只是一个笼统的定义,真正的情况下我们还要考虑很多东西,比如各种边界条件是否考虑完备,异常情况处理,稳定性保证,是否易读易维护等等

编程原则

编程情况千变万化,各种语言的特性和语法各不相同,但是高质量编程遵循的原则是相通的

  • 简单性:没有人会喜欢复杂,消除“多余的复杂性”,以简单清晰的逻辑编写代码,如果复杂的无法理解的代码就无法修复改进
  • 可读性:代码是写给人看的,能够成功被他人理解及阅读是非常重要的,对团队合作开发,维护也是至关重要的。编写可维护的代码的第一步就是确保代码的可读
  • 生产力:团队整体工作效率是非常重要的,编写高效的,可维护的代码,提高开发效率,提高生产力

如何高质量的编写代码

  1. 代码格式

    • 推荐使用gofmt自动格式化代码
    • gofmt是Go语言官方提供的工具,能自动格式化Go语言代码为官方统一风格,常见的IDE都支持方便的配置
  2. 注释

    注释的功能:

    • 解释代码作用
    • 解释代码如何做的
    • 解释代码实现的原因
    • 解释代码什么情况下会出错
    • 公共符号始终要注释

老师引用的名言名句很有深意,我们共勉:好的代码有很多注释,坏的代码需要很多注释。

  1. 命名规范

    • 简洁胜于冗长
    • 缩略词全大写,但是当其位于变量开头且不需要导出时,使用全小写
    • 变量距离其被使用的地方越远,则需要携带越多的上下文信息
    • 函数名不携带包名的上下文信息,因为包名和函数总是成对出现的
    • 函数名尽量简短
    • 包名只由小写字母组成,不包含大写字母和下划线等字符
    • 简短并包含上下文信息
    • 不要与标准库同名
  2. 控制流程

    • 避免嵌套,保持正确流程清晰
    • 尽量保持正常代码路径为最小缩进,提高代码的可维护性和可读性
    • 故障问题大多出现在复杂的条件语句和循环语句中
  3. 错误和异常处理

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