GO三件套功能简记|青训营伴学笔记

67 阅读2分钟

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

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

  1. Gorm
  2. Kitex
  3. Hertz

二、Gorm

官方文档

  1. Gorm的基本使用(需要了解的部分)

    • 定义gorm model
    • 为model定义表名
    • 连接数据库
    • 创建数据
    • 查询数据
    • 更新数据
    • 删除数据
  2. Gorm支持的数据库

    • Gorm目前支持MySQL、SQLServer、PostgreSQL
    • Gorm通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动
  3. Gorm 创建数据

    • 如何使用 Upsert ?
    • 如何使用默认值?
  4. Gorm 查询数据

  5. Gorm 更新数据

  6. Gorm 删除数据

    • 物理删除
    • 软删除
  7. Gorm 事务

    • Grom 提供了Begin、Commit、Rollback方法用于使用事务
    • Grom 提供了Tansaction 方法用于自动提交事务,避免用户漏写Commit、Rollback
  8. Gorm Hook

    • Gorm 在提供了CURD的 Hook 能力
    • Hook是在创建、查询、更新、删除等操作之前、之后自动调用的函数
    • 如果任何Hook返回错误,Gorm将停止后续的操作并回滚事务。
  9. Gorm 性能提高

  10. Gorm 生态

二、Kitex

官方文档

通过IDL定义语言快速生成代码加快开发进度(尚不支持windows,QAQ!)

  1. 定义IDL

    • 使用IDL定义服务与接口
    • Proto/thrift
  2. Kitex生成代码

    • 使用 kitex -module example -service example echo.thrift 命令生成代码
  3. Kitex 基本使用

    • 服务默认监听8888端口
  4. Kitex Client 发起请求

    • 创建Client
    • 发起请求
  5. Kitex 服务注册与发现

    • 目前Kitex的服务注册与发现已经对接了主流的服务注册与发现中心,如ETCD,Nacos等

三、Hertz

官方文档

  1. Hertz 基本使用

  2. Hertz 路由

    • Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
    • Hertz提供了路由器(Group)的能力,用于支持路由分组的功能。
    • Hertz提供了参数路径和通配路由,路由的优先级为:静态路由 > 命名路由 > 通配路由
  3. Hertz 参数绑定

    • Hertz 提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验
  4. Hertz 中间件

    • Hertz的中间件主要分为客户端中间件和服务端中间件
  5. Hertz Client

  6. Hertz 代码生成工具

  7. Hertz 性能