Go 框架 | 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天,主要记录相关的知识点。
本堂课重点内容
- GORM
- Kitex
- Hertz
GORM
是 专门的 框架之一, 提供了良好的性能。
ORM
, 即 ,对象关系映射模式,是一种为了解决 面向对象与关系数据库存在的互不匹配问题 的模式。
在实际的开发中,可能需要写不少的代码来实现对数据库的 操作,但是这些代码往往很多都是重复的,而通过 ,则可以将这些实体与数据库的表建立映射,避免了专门实现一层数据访问层,同时也不用写大量的 直接编码, 让程序员像操作一个对象一样获取数据。
的官方文档: gorm.io/zh_CN/docs/…
通过驱动连接数据库,因此在连接数据库时,需要给出一个 DSN。
细节点
在使用 时,有些点需要注意:
- 尽量使用 代替 , 因为 查询不存在的数据的时候会返回 , 而 不会返回错误
- 当使用了 , 等实际动词时,会直接执行
- 可以使用 方法传递表名
- 当查询、更新的条件包含零值时 ( 、 等),使用 而不是结构体,因为结构体的零值条件不会被用于构建 语句
- 可以使用 实现软删除,软删除后数据被从数据库中真正的删除,但是无法被正常访问到(除了使用 )
- 可以使用 来避免漏写 、 等条件
- 默认情况下, 使用 作为主键,使用结构体名的
蛇形复数作为表名,字段名的蛇形作为列名,并使用 、 字段追踪创建、更新时间
Kitex
是一个 微服务 框架,具有高性能、强可扩展的特点。
RPC
, 全称 , 远程过程调用协议, 一个通俗的理解是: 协议使得在 客户端在不清楚调用细节的情况下调用远程计算机上的某个对象,就像在本地调用一个应用程序一样 。
IDL
是用来描述软件组件接口的一种计算机语言。 通过一种中立的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流;比如,一个组件用 写成,另一个组件用 写成。
关于 :快速开始 | CloudWeGo
Hertz
是一套 框架,具有高应用性,高性能,高扩展的特点。
官方文档:快速开始 | CloudWeGo
基本操作
- 支持路由分组、基本路由 等配置
- 支持参数路由和通配符路由,优先级:静态路由>命名路由>通配路由
- 提供了 用于参数绑定与校验
- 提供了客户端和服务端的中间件
- 可以使用 帮助发送请求
- 可以通过定义 来使用代码生成工具自动生成代码
个人总结
本次课程主要学习了:
- GORM及ORM相关知识
- Kitex及RPC相关知识
- Hertz