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

75 阅读2分钟

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

主要内容:Gorm、Kitex、Hertz

Gorm基本使用

  • 需要有结构体对应数据库中的表。
  • 连接数据库,mysql.Open
  • 创建数据:db.Create()
  • 查询数据 db.First()
  • 更新数据 db.Updates()
  • 删除数据 db.Delete()

默认使用ID的字段作为主键,字段名的蛇形作为列名。

使用first,需要注意查询不到数据的时候会返回error。使用find查询多条数据,查询不到数据不会返回错误。使用struct更新时,只会更新非零值,如果需要更新零值可以使用Map更新或使用select选择字段。

删除分为物理删除和软删除。

gorm事务:begin、commit、rollback。

gorm性能提高,缓存预编译语句可以提高后续的调用速度。关闭默认的事务。

Kitex的使用

默认监听接口8888 目前Kitex的服务注册与返现已经对接了主流的服务注册和发现中心,如ETCO、Nacos等。Kitex拥有非常丰富的扩展生态,XDS扩展、ETCD服务注册与发现扩展、Zookeeper服务注册与发现扩展。

Hertz的基本使用

使用Hertz实现,服务监听8080端口并注册了一个get。Hertz提供了参数路由和通配路由,路由的优先级为:静态路由>命名路由>通配路由。

Hertz提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验。Hert中间主要分为客户端中间件和服务端中间件。Hertz提供了HTTP Client用于帮助用户发送HTTP请求。HERTZ提供了代码生成工具HZ,通过定义IDL文件即可生成对应的基础服务代码。Hert性能优秀,网络库使用NetPoll、Json编解码使用Sonic、使用sync.Pool复用对象协议层数据解析优化。Hertz拥有非常丰富的扩展生态。

个人收获

今天的课程讲了go开发的三件套,首先是和数据库相关的gorm,可以更加方便的写sql。然后是kitex是一个rcp框架,最后是Hertz框架。这些都是可以用在最后的大项目中,可以尝试使用。