这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
- 最后比较大的一方面是公共符号的注释 Google Style 指南中有两条规则 任何既不明显也不简短的公共功能必须予以注释 无论长度或复杂程度如何,对库中的任何函数都必须进行注释 右边的示例是一个公共函数的注释说明,结合之前提到的规范,注释表述了函数的功能和如何工作的
- 当然也有例外,就是— 图里的注释没有提供有用的信息。它没有告诉你这个方法做了什么,更糟糕是它告诉你去看其他地方的文档 在这种情况下,建议完全删除该注释
- 最后选取一个go仓库中相对完整的代码块来说明注释 首先LimitReader的功能有注释说明 然后是 LimitedReader 结构体的说明,就在使用它的函数之前 LimitedReader.Read 的声明遵循 LimitedReader 本身的声明,里面已经有详细说明,所以没有注释
- 总结一下,注释部分我们重要的要记住两点 代码是最好的注释 注释应该提供代码未表达出的上下文信息 简洁清晰的代码对流程注释没有要求,但是对于为什么这么做,代码的相关背景,可以通过注释补充,提供有效信息,大家在以后工作中可以慢慢体会
- 介绍完注释,接下终于要看看实际写代码时的一些约定和规范 写代码时最常见的就是命名,不管是变量命名还是函数命名都希望能够简洁清晰 首先来看变量命名 最后,比如http包中的status常量系列,是StatusOK
- 可以看下这个循环的代码示例,在i和index作用域仅在for循环内部时,变量名index没有增加对程序的理解,基本是一样的,所以用更简单的i是好的。如果索引的作用域扩展,在循环外也会用到的时候,可以考虑更符合需求的名称
- 这个例子是函数参数的名称示例,为了简短将时间参数 deadline 改成了 t
- t 常代指任意时间
- deadline 指截止时间,有特定的含义
- 函数提供给外部调用时,签名的信息很重要,要将自己的功能准确表现出来,自动提示一般也会提示函数的方法签名,通过参数名更好的理解功能很有必要,节省时间