美文网首页
Golang MDSC 约定

Golang MDSC 约定

作者: 安德徐 | 来源:发表于2019-08-29 09:54 被阅读0次

ModelCtrl是必须的,如果Ctrl方法要单元测试或复用则需抽象出Service
有数据库操作可创建DAOModelDAOService使用单元测试,Ctrl使用RESTClient.http文件测试。

分层结构

  • Model (模型)
    • 可以包含少量方法;
    • 不引用外部资源;
    • 功能:
      • 数据传输;
      • 持久化;
      • 字段校验;
      • jsonxml格式定义;
    • 如无必要,转换jsonxml格式时无需改变字段大小写,减少无谓的工作量;
  • DAO(数据操作接口)
    • 读写数据库
    • 可被ctrlservice调用;
    • 除数据库操作对象,不调用其他资源;
  • Service (服务)
    • 提供被多方使用的公共方法;
    • 名称以Service结尾;
    • 会被多个CtrlService调用;
    • 可创建、输入、输出Model
    • 可调用其他ServiceDAO
    • 不可调用Ctrl
    • 主要的单元测试对象,覆盖率要足够高;
    • 提供一个New方法创建服务,方法的参数是需要引用的其他服务;
    • 两个Service避免循环引用,如果无法避免,可赋值引用:
      func NewOneServer() *OneServer{
          return &OneServer{}
      }
      func NewTwoServer(os *OneServer) *TwoServer{
          ts := &TwoService{OS: os}
          os.TS = ts
          return ts
      }
      
  • Ctrl (控制器)
    • 对外提供WEB交互服务;
    • 名称以Ctrl结尾;
    • 包含一个路由方法(Party),定义RESTful调用名称、路径、模式、参数等;
    • Ctrl不能被ModelService调用;
    • Ctrl可以调用其他Ctrl,但只能用于路由分发;
    • 为每个Ctrl都提供同名的http测试文件;
    • 提供一个New方法创建控制器,方法的参数是需要引用的服务;

Ctrl & RESTful

  • Ctrl包含一个路由方法(Party);
  • 路由指定的执行方法使用模式开头(getpostputpatchdelete);
  • 避免多级路径,使用扁平结构,这样更灵活,方便管理和重构:
    • 错误:GET /trades/32/orders/5/items/1
    • 正确: GET /items/1?trade=32&order=5
  • 模式定义:
    • get 查询、统计、列表等,无信息被修改;
    • post 创建、增加,主数据总量增长;
    • put 编辑、修改,主体信息被改变,总量不变但可能会变成另外一个实体;
    • patch 状态变更、执行命令,局部信息修改,主体未大改变被加工微调;
    • delete 删除、作废,失效不再关注;
  • get 无主键是列表,有主键是根据主键查询单条记录
  • get 有路径参数,是根据路径参数统计、分析;
  • patch 主键写在路径上,参数放在params中:
    • PATCH /trades/32/send?express=SF
    • PATCH /trades/32/confirm?mode=phone
  • patch 数据可以是结构化的
    PATCH /trades/32/tags
    content-type: application/json
    
    [1,3]
    

相关文章

  • Golang MDSC 约定

    Model和Ctrl是必须的,如果Ctrl方法要单元测试或复用则需抽象出Service。有数据库操作可创建DAO,...

  • MDSC相关marker检测

    1.MDSC的主要表型和功能特征 粒细胞或多形核细胞(PMN-MDSC),它们在表型和形态上均与嗜中性粒细胞相似;...

  • 2021.03.03

    抗体 1. VEGF 和IL-6的抗体购买: VEGF VEGFA和MDSC的密切关系 文献(1):Inhibit...

  • Targeting Y AP-Dependent MDSC In

    本文选自CANCER DISCOVERY,2016年的老文章了,就给大家讲讲说的什么玩意儿吧。 摘要:前列腺癌细胞...

  • Golang 反射实现依赖注入

    Golang 反射实现依赖注入 Coding/Golang #Golang #Golang/reflect 依赖注...

  • golang单元测试

    简介 golang单测,有一些约定,例如文件名是xxx.go,那么对应的测试文件就是xxx_test.go,单测的...

  • golang学习资源

    • golang官方文档• golang官方指南• golang官方指南目录版• 怎样编写golang代码• 地道...

  • 小鼠常用免疫标记物

    免疫细胞--CD45 巨噬细胞--F480 M1-CD86M2-CD206粒细胞MDSC:CD11b+ LY6C-...

  • 01 mac-go开发环境搭建

    安装golang安装包 Golang 官网 : https://golang.org/Golang 中文网 htt...

  • 安装 golang 最简易教程

    1. 安装golang 到golang.org官网下载最新版的golang, Leanote至少需要golang ...

网友评论

      本文标题:Golang MDSC 约定

      本文链接:https://www.haomeiwen.com/subject/qysgsctx.html