基于V2版本。

需要使用go/parser语法解析包来实现检测。

以下,资源名称(业务模块名称)约定为Xxx,方法名称约定为Mmm

分类子类规则
命名规范文件命名
  1. 文件名称必须以当前层级资源名称的全小写命名(不是Snake格式)开头,例如:userinfo.go, userinfo_create.go。允许带分层前置,例如:cnt_userinfo.go
Cmd
  1. 如果使用对象方式管理命令行前提下:
    1. 内部资源类型必须以cXxx命名
    2. 类型方法输入及输出参数类型必须以资源名称开头,即上面的Xxx
    3. 资源类型方法命名应当以指针方式,例如(c *cXxx) 或者(*cXxx)
Controller
  1. 内部资源类型必须以cXxx命名
  2. 路由方法输入及输出参数类型必须以资源名称开头,即上面的Xxx
  3. 资源类型方法命名应当以指针方式,例如(c *cXxx) 或者(*cXxx)
  4. 路由方法输入上下文参数必须以ctx命名,输入参数变量必须以req命名,输出参数变量必须以res命名,错误变量必须以err命名
Service
  1. 内部资源类型必须以sXxx命名
  2. 内部资源接口类型必须以iXxx命名
  3. 内部资源实例对象名称必须以insXxx命名
  4. 对象的方法命名应该以指针方式,例如(s *sXxx) 或者(*sXxx)
  5. 方法参数禁止透传API层的XxxReq对象,禁止返回XxxRes对象
  6. 如果方法使用了modelInput/Output结尾的结构体名称,应当使用 资源名称+操作+Input/Output,即:XxxMmmInput/Output。例如:UserCreateInput/UserCreateOutput
  7. (若有)方法输入上下文参数必须以ctx命名,(若有)输入结构化参数变量必须以in命名,(若有)输出结构化参数变量必须以out命名,(若有)错误变量必须以err命名
  8. 如果使用ORMData/Where方法,并且使用到了daoColumns()方法,那么推荐使用do相关类型传参
链路跟踪Service
  1. Service层不应当出现context.TODO(), context.BackGround(), gctx.New()方法调用,否则会出现链路丢失问题。
  2. Service层不应当出现Print/Debug/Info日志方法调用中第一个ctx参数不能为nil,否则会出现链路丢失问题。













  • No labels