Go 框架三件套详解(Web/RPC/ORM) | 青训营笔记

97 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天,本节课主要讲了Gorm、Kitex、Hertz三件套的介绍以及它们的基本用法与常见API讲解,并进行了实战案例的介绍。

1 三件套介绍

  • Gorm是一个已经迭代了10年+的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。
  • Kitex是字节内部的Golang微服务PRC框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有丰富的开源扩展。
  • Hertz是字节内部的HTTP框架,参考了其他开源框架的优势,结构字节跳动内部的需求,具有高易用性、高性能、高扩展性特点。

2 三件套使用

2.1 Gorm的基本使用

FXEA8CHME}NFNVPUNNU_R)F.png

2.2 Gorm支持的数据库

MySQL、SQLServer、SQLite

Gorm 通过驱动来连接数据库,如果需要连接其他类型的数据库,可复用/自行开发驱动。

2.3 Gorm 创建数据

image.png

2.4 Grom 查询数据

![N8{VR8K)1{)H(637{SB(FB.png

2.5 Gorm 更新数据

V0{5D5ETGZW2Q9D@N3)P1SF.png

2.6 Gorm 删除数据

数据删除可以分为物理删除与软删除。

2.7 Gorm 事务

Grom提供了Begin、Commit、Rollback方法用于使用事务,并提供了Tansaction方法用于自动提供事务。

3 Kitex

  • Kitex的基本使用:服务默认监听8888端口
  • Kitex Client发起请求:创建Client、发起请求
  • Kitex的服务注册与发现已经对接了服务注册与发现中心

4 Hertz

  • 使用Hertz实现,服务监听8080端口并注册了一个GET方法的路由函数
  • Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
  • Hertz提供了路由组的能力,用于支持路由分组的功能
  • Hertz提供了参数路由和通配路由,优先级为:静态路由>命名路由>通配路由
  • Hertz提供了bind、Validate、BindAndValidate函数用于进行参数绑定和校验

5 实战案例介绍

本节课介绍了一个使用Hertz、Kitex、Gorm搭建出来的具备一定业务逻辑的后端API项目。

6 个人总结

课后应进一步熟悉Gorm、Kitex、Hertz的使用,并回顾笔记项目。