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

23 阅读2分钟
这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天,今天学的内容是如何用Go编写出高质量的代码,
并且对Go程序优化手段以及Go程序性能分析工具有个初步的了解

课堂内容

一、高质量编程

高质量编程的标准是编写的代码可以达到正确可靠、简洁清晰的目标,包括各种边界条件的处理、异常情况的处理、稳定性的保证以及易读性和易维护性等。

编码规范

  • 代码格式
    可以使用gofmtgoimports来格式化代码,均为go官方提供的工具
  • 注释
    注释在编写代码过程中起着重要的作用,主要有:解释代码作用,解释代码实现,接口功能、参数解释等。好的代码注释可以给开发人员极大的便利

命名规范

  • 变量
    1.变量名应尽量简洁
    2.缩略词一般使用全大写,但位于变量名头部且不需要导出时,使用全小写
    3.全局变量在名字中需要携带更多的上下文信息
  • 函数
    1.函数名不包含包名的上下文信息
    2.当名为foo的包中某个函数的返回类型是Foo时,可以省略类型信息而不产生歧义,当返回的是其余类型时,可以在函数名中加入类型信息
  • 包名
    1.只由小写字母组成
    2.简短且包含一定的上下文信息
    3.不使用常用变量名作为包名

二、性能调优

写出高质量的代码后,通常还需要对程序性能进行优化,以达到支持更高并发的效果,在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,提高程序的性能

  • benchmark
    Go语言提供了支持基准性能测试的benchmark工具
  • Slice
    slice是go中常用的结构,在使用make()初始化切片时应提供容量信息,特别是在追加切片时
  • Map
    提前分配好空间可以减少内存拷贝和Rehash的消耗
  • 字符串处理
    字符串拼接同样支持预分配
  • atomic包
    在多线程中保证线程安全,可使用atomic操作来代替锁,atomic操作是通过硬件实现的,效率比锁高