俗话说的好,细节决定成败。Coding过程中的规范就是这种可以决定成败的细节,好的规范可以是代码的可读性和可维护性都得到极大的增强,下面是我个人在工作中对自己的要求和规范,主要遵循一致性的原则。
需要看代码的同学链接:https://www.jianshu.com/p/5f1cdbfdd361
go语言中文文档:www.topgoer.com
1、包(package)1.1 包的命名net/urlnet/urls
1.2 包的 import 格式对包的导入进行分组,标准库和第三方库
如:
import (
"fmt"
"os"
"github.com/gobwas/ws"
"golang.org/x/sync/errgroup")
2、函数1.1 函数的命名语义明确(看到名字就能知道函数的作用和功能).
驼峰式命名方式.(导出型的首字母必须大写).
尽量使用动词或者动词短语.
type something struct{ ... }func Run()error{
...
return nil}func newSomething() *something {
return &something{}}func (s *something) Cost() {
return calcCost(s.weights)}func (s *something) Stop() {...}func calcCost(n []int) int {...}
1.3 函数内部的规范for _, v := range data {
if v.F1 != 1 {
log.Printf("Invalid v: %v", v)
continue
}
v = process(v)
if err := v.Call(); err != nil {
return err }
v.Send()}
优先处理了错误和特殊情况,尽早的返回来减少嵌套
:=
s := "hello,world"
函数内部尽量缩小变量的作用域
if err := ioutil.WriteFile(name, data, 0644); err != nil {
return err}//err变量只在这行代码中有效
避免函数的参数语意不明