[Go框架三件套|青训营笔记]
这是我参加「第五届青训营」伴学笔记的第八天
前言
记录青训营后端专场学习过程,有不足的地方还请大佬指正。
由于本人基础较为薄弱,所以笔记尽可能详细
Gorm框架
基本使用:
- 定义一个结构体为gorm model
- 需要编写该结构体的TableName方法并返回该数据库的表名(否则gorm框架会默认使用结构体蛇形负数作为表名,如下图)
- gorm默认使用字段名的蛇形作为列名,如想显示的对应则在字段后添加`gorm:"column:列名"
- gorm使用CreateAt、UpdateAt字段作为创建更新时间
更多的crud内容可以看官方文档,这里不做更多的解释。
Kitx 框架
rpc简介
RPC(Remote Procedure Call Protocol)-远程过程调用协议。通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它假定某种传输协议的存在,如TCP,UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,因分布式,微服务等而兴起
其实简单点来理解,就是比如有一个应用1,通过网络调用了应用2的服务,而不用关心应用2的协议。这就是最简单的示例。
rpc的C/S模式
RPC采用client-server结构,通过request-response消息模式实现,如果服务器的程序进行了更新,那客户端方面也需要同步更新才能正常使用
定义IDL
我们如果要进行RPC,就需要对方的接口是什么,需要传什么参数,同时知道返回值是什么。这时候就需要IDL来约定双方的协议。关于IDL的定义有两种规范,分别是Thrift和Proto3,具体格式可以参考官方文档,下图是Thrift格式的IDL的例子