这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
一、第四节课重点内容
- 框架使用讲解
- Gorm
- Kitex
- Hertz
- 实战 easy_note
二、详细内容
-
Gorm的基础使用
gorm是Go语言中一款性能极好的ORM库,支持包括但不限于MySql、SqlServer等数据库。接下来主要介绍下gorm库的一些基本使用。
- 创建数据
- 查询数据
- 更新数据,使用map或者select更新
- 物理删除或者软删除,软删除可以使用
gorm.DeletedAt,简单地说它并没有实际被删除掉,只是使得无法通过正常查询获得 - 事务,提供了begin,Commit,Rollback等方法用于事务,通过 db.Transaction 函数实现自动提交事务,避免用户漏了Commit,Rollback
- 钩子函数Hook(在创建/保存/更新/删除/查找之前或之后)
-
Kitex的基础使用
Kitex 是字节跳动内部的 Go 微服务 RPC 框架,具有高性能、强可扩展的特点。RPC(Remote Procedure Call Protocol)远程过程调用协议,是一套规范,用来远程过程调用的。举个例子,两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 RPC 框架需要两大功能:序列化和传输。IDL是定义服务与接口。Kitex 支持thrift和 proto3两种 IDL,传输上Kitex 使用扩展的thrift作为底层的传输协议(thrift 既是 IDL 格式,同时也是序列化协议和传输协议)。了解这些以后我们就可以看看代码了解Kitex是怎么实现的。
-
Hertz的基础使用
HTTP 是客户端(浏览器)与服务端通信的基础协议。HTTP 框架就是对 HTTP报文发送请求或者解析、根据对应的路由选择对应的后端逻辑了。而Hertz框架就是一个HTTP框架,可以通过阅读代码尝试运行 Hertz 的示例代码。详细介绍可以参考这篇文章。
-
实战
easy_note 是一个使用Gorm、Kitex和Hertz的具备一定业务逻辑的后端API项目。可以很好的运用到本节课的知识。