『字节青训营-3rd』L6:实战项目 - Go 语言笔记服务
讲得内容就是大概地过了一下这个项目,因为内容太多就把学习手册贴这了
这个项目用到了很多新东西,例如RPC 框架, kitex 和链路追踪
我基本上是走马观花地看了一下,真要掌握还得自己写一遍
一、课程背景与目标
课程背景
在大家已经学完前 5节 Go 原理与实践课程的基础上,通过项目实战帮助大家把前面学过的知识应用起来
课程目标
-
将前面所学的知识应用到项目中
-
熟悉项目的代码,可以将项目正常运行
-
熟悉 Kitex/Gorm 的使用
二、课前了解
安装 Docker/Postman/Git
-
安装 Minikube 或 Docker Desktop 安装教程
-
可以使用 Minikube 或者使用 Docker Desktop 启动 Docker
-
安装 Postman
-
安装 Git 安装教程
Kitex 初体验
通过阅读 www.cloudwego.io/zh/docs/kit… 尝试运行 Kitex 的示例代码
- kitex 暂时没有针对 Windows 做支持,如果本地开发环境是 Windows 建议使用 WSL2
Gorm 初体验
通过阅读 gorm.cn/docs/#Insta… 尝试运行 Gorm 的示例代码
了解 Etcd和Opentracing
了解 etcd 是什么以及 opentracing 是什么
三、项目介绍
项目简介
EasyNote 提供了一套比较完整的笔记后端API服务.
- 项目地址 github.com/cloudwego/k…
- 推荐版本 Golang >= 1.15
项目模块介绍
项目服务调用关系
项目模块功能介绍
项目技术栈
项目相关的使用框架资料
框架文档地址 | github地址 | 拓展文档 | ||
---|---|---|---|---|
RPC框架Kitex | 框架文档 | www.cloudwego.io/zh/docs/kit… | github.com/cloudwego/k… | |
Kitex-etcd扩展 | github.com/kitex-contr… | github.com/kitex-contr… | www.cloudwego.io/zh/docs/kit…www.cloudwego.io/zh/docs/kit… | |
Kitex-OpenTracing扩展 | www.cloudwego.io/zh/docs/kit… | github.com/kitex-contr… | www.cloudwego.io/zh/docs/kit… | |
ORM框架Gorm | 框架 | gorm.cn/zh_CN/ | github.com/go-gorm/gor… | |
Gorm-Opentracing扩展 | github.com/go-gorm/ope… | github.com/go-gorm/ope… | gorm.cn/zh_CN/docs/… | |
HTTP框架Gin | 框架 | github.com/gin-gonic/g… | github.com/gin-gonic/g… | |
Gin-JWT扩展 | github.com/appleboy/gi… | github.com/appleboy/gi… |
四、项目代码介绍
项目代码目录结构介绍
idl | thrift / proto 接口定义文件 | 文档/子目录介绍 | |
---|---|---|---|
kitex_gen | Kitex自动生成的代码 | ||
pkg | constants | 常量 | |
errno | 错误码 | 关于错误码的讨论 | |
middleware | Kitex的中间件 | Kitex Middleware 扩展 | |
bound | Kitex Transport Pipeline-Bound 扩展 | 什么是Kitex的Transport Pipeline-Bound 扩展 | |
tracer | Jarger 初始化 | ||
cmd | api | demoapi服务的业务代码 | handlers : 封装了 api 的业务逻辑rpc : 封装了调用其它 rpc 服务的逻辑 |
note | demonote服务的业务代码 | dal : 封装了数据库的访问逻辑service: 封装了业务逻辑rpc : 封装了调用其它 rpc 服务的逻辑pack : 数据打包/处理 | |
user | demouser服务的业务代码 |
项目运行
运行基础依赖
1 | docker-compose up |
执行上述命令启动 MySQL、Etcd、Jaeger 的 docker 镜像
运行 demonote 服务
1 | cd cmd/note |
运行 demouser 服务
1 | cd cmd/user |
运行 demoapi 服务
1 | cd cmd/api |
参考文档
评论
GiscusTwikoo