这是我参与「第五届青训营 」笔记创作活动的第4天
1.高质量的编程
简介 什么是高质量?
写出的代码能够达到正确可靠、简单明了的目标,才称得上是高质量的代码。
各种边界条件是否齐全。
异常情况处理,稳定保障。
易于阅读和维护。
2.编程原则
实际应用场景千变万化,每种语言的特点和语法各不相同,但高质量编程所遵循的原则是一致的。 编写高质量的代码其实可以遵循一个统一的原则:保证代码的简洁性和可读性,提高团队生产力。
简单
剔除“冗余的复杂性”,用最简单、最清晰的逻辑编写代码。 无法理解的代码无法修复和改进。
可读性
代码是写给人类阅读的,而不是机器。 编写可维护代码的第一步是确保代码可读。 生产力
编程更多的是团队合作,所以团队的整体生产力非常重要。
3.编码标准 如何写出高质量的 Go 代码?
代码格式
推荐使用 Gofmt 自动格式化代码。 Gofmt:Go语言官方提供的工具,可以自动将Go语言代码格式化成官方统一的风格,常用的IDE都支持方便的配置。 Goimports:也是Go语言官方提供的工具。 它实际上相当于gofmt加上依赖包管理,自动增删依赖包引用,对依赖包按字母顺序排序分类。 笔记
注释应该解释代码的作用。 注释应该解释代码是如何做的。 注释应该解释为什么要执行代码。 注释应该解释代码出了什么问题。
命名约定
变量命名:简洁胜于冗长。 缩写全部大写,但当它们位于变量的开头且不需要导出时,则全部小写。 一个变量离它使用的地方越远,需要携带的信息就越多。
函数命名:函数名不必携带包名的上下文信息。 函数名称需要尽可能短。 当函数返回类型与包名相同时,类型信息可以省略。
包命名:包名称仅由小写字母组成。 包名称很短,包含一些上下文信息。 不要与标准库同名。
4.控制流程 基于线性原则,处理逻辑应尽可能直,避免复杂的嵌套分支。
正常流程代码在屏幕上向下移动。
提高代码的可维护性和可读性。
失败问题多发生在复杂的条件语句和循环语句中。
5.错误和异常处理
error 尽量提供简洁的上下文信息链,方便定位问题。
恐慌是针对真正异常的情况。
recover 的有效范围在当前 goroutine 的 defered 函数中生效。