前置工具安装:
- 编码工具:Goland+wsl2配合使用(使用过)
- 连接数据库:统一使用DataGrip。(之前主要使用的是navicat和goland工具自带的数据库处理工具) 第一次接触这个工具,尝试连接常用的数据库。
新建mysql数据源测试连接


测试redis连接,一开始无法远程连接,后修改redis-conf文件配置

连接成功测试kv简单键值对


- 连接服务器:terminus(使用过来连接阿里云服务器和香港服务器)

使用私钥文件来远程连接服务器

- 接口测试:使用postman(使用过)
新手教程
- git:由于之前使用过git,这里简单回顾一下git的几种常用方式
这里演示一下一个克隆的步骤:
我选择的是走ssh协议克隆到本地

这样就完成了一次克隆

在命令行上推送本地提交到远程仓库,主要用于协同工作。
如果出现推送失败,考虑到可能本地和远端仓库状态不一致。先用
git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。- go
这里通过几个案例快速回顾一下go的一些语法特性。

go里面区分全局变量还是包变量就看首字母有无大写

defer使用,效果和栈很像

下面就是单例实现的完整代码,该实现利用
sync.Once类型去同步对GetInstance() 的访问,并确保我们的类型仅被初始化一次对goroutine和channal 的搭配来完成三个协程顺序输出ABC


效果展示:

- go-zero
先安装好相关的proroc插件和goctl工具
使用go-zero快速起一个http的demo
给出api文件


执行完指令后,会在当前目录下生成一个 demo 目录,该目录下包含了一个最小化的 HTTP 服务,我们来查看一下该服务的目录结构。
通过api生成的demo项目,配置文件都在/etc/下
解析并加载到配置结构体上



启动这个demo服务


rpc的demo启动是类似,不同的是goctl作用proto文件以及请求是走rpc协议,调用对方服务下的一个方法,这里是ping

总结
其实不管是http服务还是rpc服务,使用go-zero框架就是减少不必要的代码编写,更关注业务逻辑的细节。一通过api文件自动生成代码框架,我们着眼的地方就在于配置文件那处和internal目录下的handler层和logic业务逻辑处理。

这里的写法是很常见的,handler层主要还是解析和绑定参数再去调用logic层。拿到一个对应的logic对象去调用定义给自己的方法做到真正处理。



