Go框架三件套 | 青训营笔记

92 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第4天

今天讲的内容是Go框架三件套,也就是web、rpc、orm

Go框架三件套(Web/RPC/ORM)

  • 1.Gorm
  • 2.Kitex
  • 3.Hertz

image.png

Gorm

  • Gorm的基本使用
    • 定义gorm model
    • 为model定义表名
    • 连接数据库
    • 创建数据
    • 查询数据
    • 更新数据
    • 删除数据
    • Gorm目前支持MySQL、SQLServer、PostgreSQL
  • Gorm 事务
    • Grom 提供了Begin、Commit、Rollback方法用于使用事务
    • Grom 提供了Tansaction 方法用于自动提交事务,避免用户漏写Commit、Rollback
  • Gorm Hook
    • Gorm 在提供了CURD的 Hook 能力
    • Hook是在创建、查询、更新、删除等操作之前、之后自动调用的函数
    • 如果任何Hook返回错误,Gorm将停止后续的操作并回滚事务。

    image.png

    kitex

    看描述,可能类似go-zero吧,一个微服务框架,使用起来也是大同小异

    • Kitex代码生成工具
    • IDL语法
    • 使用IDL定义服务与接口
    • Kitex生成代码
      • 使用 kitex -module example -service example echo.thrift 命令生成代码
    • Kitex 基本使用
    • Kitex Client 发起请求
    • Kitex 服务注册与发现
    • 目前Kitex的服务注册与发现已经对接了主流的服务注册与发现中心,如ETCD,Nacos等

    image.png

    image.png

    Hertz

    一个Http服务框架,性能很好

    • Hertz 基本使用
    • Hertz 路由
      • Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
      • Hertz提供了路由器(Group)的能力,用于支持路由分组的功能。
      • Hertz提供了参数路径和通配路由,路由的优先级为:静态路由、命名路由、通配路由
    • Hertz 参数绑定
      • Hertz 提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验
      • Hertz的中间件主要分为客户端中间件和服务端中间件
    • Hertz Client
    • Hertz 代码生成工具
    • Hertz 性能