阶段一:Go语言基础入门和编程思维
第1周Go语言基础知识
1、go语言环境的配置
2、基于gomod的依赖管理
3、基础语法变量,常量,类型,选择,循环,函数,指针
4、内建容器数组,切片,Map和字符串
5、面向“对象”结构体和方法
6、出错处理与defer/panic/recover
7、测试与性能调优
第2周Go语言编程思想
1、接口,接口的值类型
2、函数式编程
3、Goroutine
4、Channel
5、异步编程模式简介
6、标准库,http库简介,json库及结构体tag
阶段二:租辆酷车小程序与TypeScript
第3周小程序极速上手与租辆酷车初体验
1、小程序的优缺点
2、小程序营销案例分析
3、小程序账号配置
4、小程序开发工具安装配置
5、vscode安装和配置
6、开发第一款小程序
7、理解小程序运行机制和渲染机制
8、理解小程序生命周期
9、小程序页面栈详解
10、小程序调试工具速成
11、添加地图组件,打造租辆酷车雏形
第4周极速上手TypeScript应用
1、TypeScript简介
2、了解TypeScriptvsJavaScript
3、TypeScript环境配置
4、开发第一款使用TypeScript的小程序
5、TypeScript的基本数据类型
6、逻辑控制
7、枚举类型
8、数组
9、对象及方法
10、函数的定义
第4+周精通Typescript
1、函数式编程
2、一等公民及高阶函数
3、函数的闭包
4、函数式编程攻克小程序难点:页面状态维护
5、数组变换
6、Promise详解
7、同时等待多个Promise
8、异步编程
9、小程序API的Promise化
10、Promise攻克小程序难点:初始状态同步
11、接口及其高级技巧
12、接口的两种实现方式
13、类
14、范型
第5周前端知识体系速成
1、为租辆酷车的原型开发确立目标
2、WXML语法速成
3、CSS选择器
4、控制元素位置
5、控制文字属性
6、flex弹性盒子布局详解
7、在小程序中使用css
阶段三:“租辆酷车”共享出行产品设计与研发
第6周租辆酷车小程序-前端设计初级
1、框架的选择
2、首页地图页的实现
3、汽车位置的移动
4、注册页面布局
5、注册表单的实现
6、注册页面的状态转换
7、开锁页面的实现
8、行程中页面的实现
9、行程费用的实时计算
第6+周租辆酷车小程序-前端设计进阶
1、swiper控件详解
2、强类型保护下的页面跳转路由
3、页面跳转参数的强类型化重构
4、滚动视图详解
5、垂直导航之数据结构设计
6、元素位置识别技巧
7、自定义组件之模态对话框
8、前端开发的总结
第7周租辆酷车后端-接入微服务GRPC
1、Go语言之vscode配置
2、GRPC简介
3、ProtoBuf编译器的安装
4、ProtoBuf的使用
5、定义复合类型和枚举类型
6、ProtoBuf字段的可选性
7、实现GRPC服务器及客户端
8、RESTvsRPC
9、GRPCGateway的介绍
10、用GRPCGateway暴露REST接口
11、小程序访问REST接口
12、前后端数据类型交互的统一填坑
13、小程序使用npm构建
14、小程序请求的强类型化
第8周微服务与存储设计+实战登录服务
1、进一步理解微服务
2、租辆酷车后端的微服务划分
3、小程序登陆过程分析
4、登陆服务的框架
5、获取OpenID
6、关系型数据库vs非关系型数据库
7、用docker来启动MongoDB
8、MongoDB的CRUD操作
9、用MongoDBPlayground模拟用户登陆
10、实现微信登录数据绑定
11、用Go语言来控制Docker启动MongoDB
12、建立针对MongoDB的测试库
13、表格驱动测试的实践
14、登陆服务阶段性总结
第9周租辆酷车权限设计与JWT实战
1、JWT简介
2、用RSA非对称密钥签名JWT
3、JWT的Go语言实现
4、验证JWTToken
5、GoContext的概念及详解
6、创建行程服务
7、实现登陆状态拦截器
8、应用IdentifierType设计模式
9、客户端携带token
10、客户端自动登陆及重试
第10周租辆酷车后端-行程服务实战+后端最佳实践
1、行程服务的定义
2、行程的创建
3、行程的获取
4、对于ID的进一步重构
5、行程的测试
6、批量获取行程
7、用乐观锁更新行程
8、创建行程服务及防入侵
9、创建行程服务的测试
10、创建行程前后端联调
11、获取行程及行程列表的前后端联调
12、行程更新服务
13、行程生命周期的测试
14、行程生命周期的前端跳转
15、驾驶页面的行程更新
16、我的行程页面的更新
17、测试驱动修bug的标准流程
18、行程服务的总结
第11周租辆酷车后端-身份服务与认证实战+云存储
1、身份服务的定义
2、身份服务的实现
3、客户端的对接
4、微信数据双向绑定
5、与行程服务的联调
6、云存储的简介和使用
7、用Go语言和小程序操作云存储
8、获取图片内容的流程分析
9、存储服务的定义
10、存储服务的数据库实现
11、存储服务接入云存储
12、使用GRPC客户端检查存储服务
13、与身份认证服务的关联
14、身份认证模块的前后端联调
15、阶段小结
阶段四:“租辆酷车”架构演进之高性能位置更新与服务部署
第12周租辆酷车-实时位置服务
1、物联网简介
2、RabbitMQ简介
3、使用go语言进行收发
4、使用go语言实现pub/sub
5、汽车服务的设计
6、汽车服务CRUD的实现
7、汽车状态更新的发布
8、汽车状态模拟
第13周租辆酷车-实时位置更新的处理和展示
1、WebSocket简介
2、给汽车服务添加websocket
3、客户端的开锁处理
4、位置模拟服务的使用
5、位置实时更新的后端实现
6、行程位置更新
7、用户身份的Impersonation
8、控制GRPCGateway的头部映射
9、首页头像的实时更新
10、汽车服务及全部开发总结
第14周租辆酷车服务的k8s集群部署
1、Kubernetes的历史,集群配置及版本
2、kind本地集群的配置
3、容器
4、节点及物理层
5、服务与网络
6、构建Docker镜像
7、Dockerfile指令详解
8、为Docker镜像瘦身
9、flag与环境变量的使用
10、为所有服务制作及上传镜像
11、k8syaml语法详解
12、卷,配置及密钥
13、服务及端口的暴露
14、基于istio服务治理
15、sidecar及配置注入
16、服务可视化
17、ingress配置
18、grpc负载均衡
19、路由规则的配置及平滑升级
20、全面实现小程序后端上云
阶段五:电商项目-微服务基础
第15周从0开始理解rpc和grpc
1、rpc的核心概念
2、通过http实现rpc的基础原型
3、rpc核心要点分析
4、go自带的rpc开发
5、替换rpc中的gob协议为json协议
6、替换rpc中的传输协议为http协议
7、封装自带的rpc框架实现完美体验
8、protobuf的核心概念
9、grpc快速开发体验
10、grpc的流模式开发体验
第16周grpc和protobuf进阶
1、protobuf的基本类型和默认值
2、proto文件的管理和更新可能造成的问题
3、proto文件中import其他的proto文件
4、嵌套message、enum枚举类型
5、map类型和timestamp类型
6、grpc的metadata机制
7、grpc的拦截器
8、通过拦截器和metadata机制实现auth认证
9、grpc的验证器
10、grpc中的错误处理和超时机制
第17周yapi文档管理、gorm详解
1、电商系统和后台管理系统需求分析
2、微服务架构演进
3、微服务架构需要解决哪些核心问题?
4、如何管理前后端分离系统的接口-yapi
5、gorm的基本CRUD操作
6、model的基本定义
7、多表查询(分页、子查询)
8、多表查询(一对多、多对多、表连接)
9、如何hook主表名和保存后的自定义逻辑?
10、gorm的事务性操作
第18周gin快速入门
1、gin的New和Default初始化的区别
2、gin的路由分组
3、获取url、get和post中的值
4、gin的表单验证
5、表单验证的error中文翻译
6、gin中体验protobuf
7、自定义gin的middleware
8、gin的middleware源码分析和abort的关系
9、gin返回html
10、gin加载静态文件和优雅退出
阶段六:从0到1实现完整的微服务框架
第19周用户服务的grpc服务
1、user表结构设计
2、md5信息摘要算法
3、md5盐值加密解决用户密码的安全性问题
4、定义proto接口
5、grpc服务的开启和优雅退出
6、用户注册接口
7、通过id和mobile查询用户
8、修改用户信息接口
9、通过flag来解决参数启动服务
10、用户相关接口测试
第20周用户服务的web服务
1、zap日志库的使用
2、gin调用grpc微服务的集成
3、viper配置文件管理
4、生产环境和开发环境配置文件隔离
5、session机制在微服务架构下的不足
6、gin集成jwt解决微服务下的认证
7、url添加登录权限验证
8、阿里云短信发送
9、redis集成短信发送功能
10、用户登录、注册功能
第21周服务注册/发现、配置中心、负载均衡
1、服务注册和发现的重要性
2、consul集成到grpc中
3、如何解决grpc的健康检查
4、gin集成consul
5、为什么需要配置中心
6、nacos的组、配置集和命名空间
7、gin和grpc集成nacos
8、动态获取可用端口号
9、负载均衡的常用策略
10、grpc集成负载均衡
阶段七:微服务实现电商系统
第22周商品微服务的grpc服务
1、商品相关表结构设计和数据导入
2、物理删除还是逻辑删除?
3、proto接口定义
4、商品相关接口(列表、添加、修改、删除)
5、商品分类相关接口(列表、添加、修改、删除)
6、品牌相关接口(列表、添加、修改、删除)
7、轮播图相关接口(列表、添加、修改、删除)
8、批量获取商品的信息接口和应用场景
9、品牌分类相关接口
10、测试相关接口
第23周商品微服务的gin层和oss图片服务
1、商品的grpc服务接口转换为http接口
2、如何设计一个符合go风格的注册中心接口?
3、gin退出后的服务注销
4、商品分类、品牌相关的接口转换
5、基于yapi测试http接口
6、微服务架构设计下的普通文件上传的弊端
7、阿里云的oss基本概念
8、前端直传文件的流程
9、内网穿透技术调试文件上传
10、gin集成oss实现微服务
第24周库存服务和分布式锁
1、为什么库存服务需要独立成微服务
2、库存服务的表结构设计
3、库存相关的proto接口设计
4、通过数据库事务完成库存的扣减
5、库存的归还的重要性
6、订单超卖是如何产生的?
7、什么是分布式锁
8、乐观锁详解
9、基于redis分布式锁的原理
10、redis分布式锁的细节:setnx、看门狗等机制
第25周订单和购物车微服务
1、需求分析(购物车、订单)
2、表结构设计
3、proto接口定义
4、添加商品到购物车、更新购物车、获取购物车接口
5、新建订单接口以及难点分析
6、订单详情接口
7、通过mysql事务解决数据创建过程中的事务
8、gin集成订单和购物车接口
9、测试订单相关接口
10、测试购物车相关接口
第26周支付宝支付、用户操作微服务、前后端联调
1、支付宝沙箱环境开发流程
2、私钥、公钥的概念以及支付宝如何解决订单的安全性问题
3、支付宝的公钥、私钥和回调url配置
4、生成支付宝的支付url
5、gin集成支付宝支付
6、支付宝回调通知url逻辑接口
7、用户操作服务需求分析
8、用户操作相关的接口源码分析
9、电商系统接口联调
10、电商管理系统接口联调
第27周elasticsearch实现搜索微服务
1、elasticsearch的介绍和安装
2、elasticsearch的基本概念
3、倒排索引的原理
4、elasticsearch基本的索引和文档CRUD操作
5、elasticsearch的mget和bulk批量操作
6、中文分词器-ik
7、go的elasticsearch接口
8、elasticsearch的term查询
9、elasticsearch的mapping映射
10、商品的上架功能和搜索
阶段八:分布式系统核心、微服务的部署
第28周分布式理论基础、分布式事务解决方案
1、为什么订单会有超时机制
2、数据库事务的ACID特性
3、分布式系统中出现哪些故障会导致数据不一致?
4、cap理论
5、BASE理论
6、2pc两阶段提交分布式事务
7、TCC分布式事务实现方案
8、基于本地消息的最终一致性方案
9、基于可靠消息的最终一致性
10、最大努力通知方案
第29周学习rocketmq实现幂等性机制等
1、mq的应用场景
2、mq消息队列技术选型
3、rocketmq的消息类型
4、发送普通消息、延迟消息、事务消息
5、订单新建的过程中如果保证库存数据的最终一致性
6、库存扣减在分布式事务中的特殊性
7、什么时候应该对事务消息进行确认?
8、库存归还的细节处理
9、什么是服务雪崩?服务雪崩和超时重试机制
10、常用的幂等性解决方案
第30周链路追踪、限流、熔断、降级
1、为什么我们需要链路追踪
2、opentracing中的tracer、span、spancontext
3、发送span和多级span消息
4、grpc服务下集成jaeger
5、grpc下的jaeger源码解读
6、gin集成jaeger
7、什么是限流、熔断和降级
8、sentinel的qps限流
9、sentinel的预热和冷启动、匀速通过机制
10、sentinel的熔断接口-错误数、错误率、慢请求
第31周api网关、部署
1、什么是api网关
2、kong的8001、800和1337端口号的关系
3、基本的路由转发配置
4、kong的service、routes、upstream的请求过程
5、kong集成consul实现服务发现和负载均衡
6、kong配置反爬、黑名单
7、jenkins常见功能
8、jenkins的pipeline
9、jenkins执行脚本
10、自动化部署
评论(0)