Golang编码规范
原文链接:https://github.com/golang/go/wiki/CodeReviewComments 但是有些情况下,第二个好点,比如编码JSON对象(nil->null,[]string->array[]) import( 这种.的形式在测试中很有用,由于循环依赖性,测试不能成为测试包的一部分,”bar/testutil”包中有foo,做一在这里用 . 来假装在这个包里面引入,除了这种情况,其他情况都不要用这个点 15)函数多返回值,用一个bool来表示是否返回了有用的值 总的来说,go代码需要另外的值来表示error 16)代码中尽量减少缩进,else可以直接放外边啥的 17)对于缩写词,命名全部使用大写或者小写(URL,HTTP,ID,) 协议缓冲区编译器生成的代码不受此规则的约束(虽然还不晓得这是啥) 18)Go接口通常属于使用接口类型值的包,而不是实现这些值的包。 实现包应返回具体的类型(结构或者指针),这样可以将新方法添加到实现中,而无需大量重构 不要在一个API的实现者端定义接口,相反,设计API以便可以使用真实实现的公共API进行测试 例子没看懂2333 19)控制句子长度,(名字太长?)函数太长功能太弱? 20)命名不用下划线,驼峰命名法?缩写词同第17条 21)命名返回值参数: godoc之类,不要命名,只放类型 但是如果有多个类型相同的返回值,可以命名其中一些 函数体积较大时还是命名了比较好,defer 闭包里最好用下 22)包名之前的注释要紧挨着,main包的注释可以”Binary”/“Command”…开头加目录名 包注释要首字母大写 23)包名字全小写 24)小型结构:不要用指针传参数,如果函数将其参数x仅引用为* x,那么参数不应该是指针。此常见实例包括将指针传递给字符串(* string)或指向接口值(* io.Reader)的指针。 25)变量命名尽量简洁 26)用指针还是值: a. 如果接受者是map,func,chan,不要用指针 27)尽量使用并发,goroutine很容易添加,但是包不容易删去 28)编写失败情况的测试输出: actual != expected 在使用具有不同输入的测试助手时消除失败测试的另一种常见技术是使用不同的TestFoo函数包装每个调用者 29) 变量名应该用的越久越要具体 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |