Go语言高质量编程 | 青训营笔记

55 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第4天

1.高质量的编程

简介 什么是高质量?

写出的代码能够达到正确可靠、简单明了的目标,才称得上是高质量的代码。

各种边界条件是否齐全。

异常情况处理,稳定保障。

易于阅读和维护。

2.编程原则

实际应用场景千变万化,每种语言的特点和语法各不相同,但高质量编程所遵循的原则是一致的。 编写高质量的代码其实可以遵循一个统一的原则:保证代码的简洁性和可读性,提高团队生产力。

简单

剔除“冗余的复杂性”,用最简单、最清晰的逻辑编写代码。 无法理解的代码无法修复和改进。

可读性

代码是写给人类阅读的,而不是机器。 编写可维护代码的第一步是确保代码可读。 生产力

编程更多的是团队合作,所以团队的整体生产力非常重要。

3.编码标准 如何写出高质量的 Go 代码?

代码格式

推荐使用 Gofmt 自动格式化代码。 Gofmt:Go语言官方提供的工具,可以自动将Go语言代码格式化成官方统一的风格,常用的IDE都支持方便的配置。 Goimports:也是Go语言官方提供的工具。 它实际上相当于gofmt加上依赖包管理,自动增删依赖包引用,对依赖包按字母顺序排序分类。 笔记

注释应该解释代码的作用。 注释应该解释代码是如何做的。 注释应该解释为什么要执行代码。 注释应该解释代码出了什么问题。

命名约定

变量命名:简洁胜于冗长。 缩写全部大写,但当它们位于变量的开头且不需要导出时,则全部小写。 一个变量离它使用的地方越远,需要携带的信息就越多。

函数命名:函数名不必携带包名的上下文信息。 函数名称需要尽可能短。 当函数返回类型与包名相同时,类型信息可以省略。

包命名:包名称仅由小写字母组成。 包名称很短,包含一些上下文信息。 不要与标准库同名。

4.控制流程 基于线性原则,处理逻辑应尽可能直,避免复杂的嵌套分支。

正常流程代码在屏幕上向下移动。

提高代码的可维护性和可读性。

失败问题多发生在复杂的条件语句和循环语句中。

5.错误和异常处理

error 尽量提供简洁的上下文信息链,方便定位问题。

恐慌是针对真正异常的情况。

recover 的有效范围在当前 goroutine 的 defered 函数中生效。