【第六届字节跳动青训营·后端基础班】第三课第一节 高质量编程简介及编码规范|青训营

48 阅读2分钟

一、高质量编程

1.1 简介

image.png

image.png

1.2 编码规范

image.png

1.2.1 代码格式

推荐使用gofmt自动格式化代码

gofmt:Go语言官方提供的工具,能自动格式化Go语言代码为官方统一风格。常见IDE都支持方便的配置。 goimports:也是Go语言官方提供的工具,实际等于gofmt加上依赖包管理,自动增删依赖的包引用、将依赖包按字母序排序并分类。 image.png

1.2.2 注释

简介

image.png

公共符号始终要注释

  • 包中声明的每个公共的符号:变量、常量、函数以及结构都需要添加注释
  • 任何既不明显也不简短的公共功能必须予以注释
  • 无论长度或复杂程度如何,对库中的任何函数都必须进行注释

image.png

  • 例外:不需要注释实现接口的方法。不需要进行如下注释:

image.png

image.png

image.png

注释应该解释代码作用

  • 适合注释公共符号

image.png

注释应该解释代码如何做的

  • 适合注释实现过程

image.png

注释应该解释代码实现的原因

  • 适合解释代码的外部因素
  • 提供额外上下文

image.png

注释应该解释代码什么情况会出错

  • 适合解释代码的限制条件

image.png

image.png

1.2.3 命名规范

variable

  • 简洁胜于冗长
  • 缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写 image.png
  • 变量距离其被使用的地方越远,则需要携带越多的上下文信息 image.png

image.png

image.png

function

  • 函数名不携带包名的上下文信息,因为包名和函数名总是成对出现的
  • 函数名尽量简短
  • 当名为foo的包某个函数返回类型Foo时,可以省略类型信息而不导致歧义
  • 当名为foo的包某个函数返回类型T时(T并不是Foo),可以在函数名中加入类型信息

image.png (使用第一种更好些)

package

image.png

image.png

image.png

1.2.4 控制流程

避免嵌套,保持正常流程清晰

image.png

image.png

尽量保持正常代码路径为最小缩进

image.png

image.png

image.png

image.png

image.png

image.png

1.2.5 错误和异常处理

简单错误

image.png

错误的Wrap和Unwrap

image.png

image.png

错误判定

image.png

image.png

panic

image.png

image.png

recover

image.png

image.png

image.png

image.png

image.png

image.png