这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
高质量编程
首先明确什么是高质量编程:编写的代码能够达到正确可靠、简洁清晰的目标可称之为高质量代码。 通俗的来说在保证代码正确性的同时要兼顾它的可读性和性能,在团队合作过程中代码的可读性非常重要,我门所写的代码往往要给很多人阅读,如何让别人更快的明白你所要表达的含义将节省很多时间。
1. 各种边界条件是否考虑完备
2. 异常情况处理,稳定性保证
3. 易读易维护
编码规范
代码格式:go编译器提供gofmt自动格式化,保证所有go代码与官方文档的格式一致。 代码注释:注释要简明扼要表明我们写的含义,它可以是这段代码要表达的含义,为什么要这样写的原因,在编写时在某种情况下遇到的问题。需要做到以下几点:
1. 注释应该解释代码作用
2. 注释应该解释代码如何做的
3. 注释应该解释代码实现的原因
4. 注释应该解释代码什么情况会出错
注意:有一个例外,不需要注释实现接的方法。
命名方式
命名方式要简单明了,并要符合一些公认的规范,这样可以让别人更快把握函数,接口,数据等所代表的含义。
var:
1. 简洁胜于冗长
2. 缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写
3. 例如使用ServeHTTP而不是ServeHttp
4. 使用XMLHTTPRequest或者xmlHTTPRequest
5. 变量距离其被使用的地方越远,则需要携带越多的上下文信息
6. 全局变量在其名字中需要更多的上下文信息,使得在不同地方可以轻易辨认出其含义
func:
1.函数名不携带包名的上下文信息,因为包名和函数名总是成对出现的
2.函数名尽量简短
3.当名为foo 的包某个函数返回类型Foo时,可以省略类型信息而不导致歧义
4.当名为foo的包某个函数返回类型T时(T 并不是Foo),可以在函数名中加入类型信息
package:
1.只由小写字母组成。不包含大写字母和下划线等字符
2.简短并包含一定的上下文信息。例如scheema、task等
3.不要与标准库同名。例如不要使用syne或者strings
4.以下规则尽量满足,以标准库包名为例
5.不使用常用变量名作为包名。例如使用bufio而不是buf
6.使用单数而不是复数。例如使用encoding 而不是encodings
7.谨慎地使用缩写。例如使用fmt在不破坏上下文的情况下比format更加简短