后端:Go框架 | | 青训营笔记

151 阅读2分钟

前言

记录加入青训营的笔记
今天是Go框架(Gorm、Kitex、Hertz)三件套的内容

1️⃣Go框架三件套(Web/RPC/ORM)

🚩Gorm:Golang语言中一个已经迭代数十年且功能强大、性能极好的ORM框架
💠ORM:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来
🚩Kitex:字节内部Golang微服务RPC框架 具有高性能、强可扩展的主要特点 支持多协议并且拥有丰富的开源扩展
🚩Hertz:字节内部的Http框架 参考了其他开源框架的优势 结合字节跳动内部的需求 具有高可用、高性能、高扩展性的特点

2️⃣详细知识点介绍

2.1 Gorm

Gorm的基本使用

🚩Gorm支持的数据库 目前支持MySQL、SQLServer、PostgreSQL
通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动

🚩Gorm 创建数据

如何使用 Upsert ?
如何使用默认值?
🚩 Gorm 删除数据

物理删除
软删除

🚩Gorm 事务 Grom 提供了Begin、Commit、Rollback方法用于使用事务 Grom 提供了Tansaction 方法用于自动提交事务,避免用户漏写Commit、Rollback

🚩Gorm Hook

Gorm 在提供了CURD的 Hook 能力 Hook是在创建、查询、更新、删除等操作之前、之后自动调用的函数 如果任何Hook返回错误,Gorm将停止后续的操作并回滚事务。

2.2Kitex

💠安装Kitex代码生成工具

💠定义IDL

使用IDL定义服务与接口

💠 Kitex生成代码

使用 kitex -module example -service example echo.thrift 命令生成代码

💠Kitex 基本使用

服务默认监听8888端口

💠Kitex Client 发起请求

创建Client
发起请求

💠Kitex 服务注册与发现
目前Kitex的服务注册与发现已经对接了主流的服务注册与发现中心,如ETCD,Nacos等

2.3 Hertz

💠 Hertz 基本使用

Hertz 路由

提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
提供了路由器(Group)的能力,用于支持路由分组的功能
提供了参数路径和通配路由,路由的优先级为:静态路由 > 命名路由 > 通配路由

💠 Hertz 参数绑定

提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验

💠Hertz 中间件

Hertz的中间件主要分为客户端中间件和服务端中间件