这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
前言
第一次直播课的内容是与学习Go语言框架的三件套,主要内容是有关于Web/RPC/ORM框架的基本使用,细节易错点的直播讲解。这是go学习迈入应用的重要一步
ORM框架Gorm
gorm是面向go语言的一种ORM(持久层)框架,支持多种数据库的接入,链式调用像是mp-plus这样的感觉
- 结构体字段值为 0,"",false 则不会被用于构建查询条件,如果需要的话要使用map
- gorm.DeletedAt可以自动进行软删除,通过使用Unscoped进行查询被软删的数据。
- 事务操作可以使用Transaction操作自动提交事务,避免漏写 commit、rollback。
- Gorm 支持 Hook 操作,可以在执行 CRUD 操作之前、后自动调用函数。
RPC框架Kitex
Kitex 框架及命令行工具,默认支持 thrift 和 proto3 两种 IDL,对应的 Kitex 支持 thrift 和 protobuf 两种序列化协议。传输上 Kitex 使用扩展的 thrift 作为底层的传输协议(注:thrift 既是 IDL 格式,同时也是序列化协议和传输协议)。IDL 全称是 Interface Definition Language,接口定义语言。
idl就理解为通过thrift或者protobuf俩种协议写出描述接口怎么样的
微服务框架hertz
Hertz是字节跳动开源的一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。 如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。
内部许多组件的一个东西,不熟悉