go 框架三件套详解 | 青训营笔记
这是我参与「第五届青训营」笔记创作活动的第3天。
ORM 框架 Gorm
Gorm 类似于 mybatis-plus 框架,通过驱动连接数据库并且可以对数据库的数据进行 CRUD 操作。
Gorm 有以下注意点:
- 当使用 struct 作为条件查询时,Gorm 只能查询非零值,如果字段值为 0,"",false 或其他零值,该字段不会被用于构建查询条件,如果想要查询零值,可以使用 map 来构建查询条件。
- 当使用 struct 更新时,只会更新非零值,可以使用 map 或 使用 Select 操作来选择字段。
gorm.DeletedAt可以自动进行软删除,可以通过Unscoped进行查询被软删的数据。- 事务操作可以使用
Transaction操作自动提交事务,避免漏写 commit、rollback。 - Gorm 支持 Hook 操作,可以在执行 CRUD 操作之前、后自动调用函数。
RPC 框架 Kitex
接口描述语言(Interface description language,缩写IDL),是用来描述软件组件接口的一种计算机语言。IDL通过一种独立于编程语言的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流;比如,一个组件用C++写成,另一个组件用Java写成。
IDL通常用于远程调用软件。在这种情况下,一般是由远程客户终端调用不同操作系统上的对象组件,并且这些对象组件可能是由不同计算机语言编写的。IDL建立起了两个不同操作系统间通信的桥梁。
Thrift 和 proto3 是两种 IDL 语言,Kitex可以通过以上两种语言生成代码。
Web 框架 Herz
Herz 有工具 Hz,可以通过 IDL 文件生成对应的基础服务代码。