我们开始着手完全使用TypeScript开发小程序前端原型,完成首页地图页,汽车模型移动,注册页面表单及流程,行程中费用实时计算,初步搭建用户体验闭环。
课程安排:
1、框架的选择
2、首页地图页的实现
3、汽车位置的移动
4、注册页面布局
5、注册表单的实现
6、注册页面的状态转换
7、开锁页面的实现
8、行程中页面的实现
9、行程费用的实时计算
本周我们将玩转小程序中较为复杂的swiper以及滚动视图组件,实现强类型保护下的页面跳转路由,实现自定义组件,并综合运用所学知识,结合数据结构设计,实现流行的垂直同步导航功能,全面完成用户体验闭环。
课程安排:
1、swiper控件详解
2、强类型保护下的页面跳转路由
3、页面跳转参数的强类型化重构
4、滚动视图详解
5、垂直导航之数据结构设计
6、元素位置识别技巧
7、自定义组件之模态对话框
8、前端开发的总结
关注前后端的消息传递,以及领域建模。我们采用GRPC定义领域模型,统领前后端开发及联调。使用GRPC对内,REST对外的标准接口方式进行设计,打通前后端数据通路,为业务开发打下坚实基础,体验最佳实践。
课程安排:
1、Go语言之vscode配置
2、GRPC简介
3、ProtoBuf编译器的安装
4、ProtoBuf的使用
5、定义复合类型和枚举类型
6、ProtoBuf字段的可选性
7、实现GRPC服务器及客户端
8、REST vs RPC
9、GRPC Gateway的介绍
10、用GRPC Gateway暴露REST接口
11、小程序访问REST接口
12、前后端数据类型交互的统一填坑
13、小程序使用npm构建
14、小程序请求的强类型化
在了解了微服务,理解微服务划分哲学着手开发后端微服务。我们首先攻克登陆环节。登陆看似普通实际流程复杂,涉及微信登陆,数据存储,令牌生成等多个环节。在数据存储中,我们选用NoSQL数据库。
课程安排:
1、进一步理解微服务
2、租辆酷车后端的微服务划分
3、小程序登陆过程分析
4、登陆服务的框架
5、获取OpenID
6、关系型数据库 vs 非关系型数据库
7、用docker来启动MongoDB
8、MongoDB的CRUD操作
9、用MongoDB Playground模拟用户登陆
10、实现微信登录数据绑定
11、用Go语言来控制Docker启动MongoDB
12、建立针对MongoDB的测试库
13、表格驱动测试的实践
14、登陆服务阶段性总结
本周我们将学到安全方面的必备知识点,包括JWT令牌分发,RSA签名机制,JWT令牌校验,拦截器,go context上下文,客户端自动登陆及重试机制,完成登陆闭环。
课程安排:
1、JWT简介
2、用RSA非对称密钥签名JWT
3、JWT的Go语言实现
4、验证JWT Token
5、Go Context的概念及详解
6、创建行程服务
7、实现登陆状态拦截器
8、应用Identifier Type设计模式
9、客户端携带token
10、客户端自动登陆及重试
本周我们实现行程服务,并与前端联调走通整个行程生命周期。同学将看到测试驱动开发的大规模实战,体验完整的企业级开发流程和最佳实践。技术方面,我们采用防入侵层维护领域边界,采用乐观锁维护数据一致性。
课程安排:
1、行程服务的定义
2、行程的创建
3、行程的获取
4、对于ID的进一步重构
5、行程的测试
6、批量获取行程
7、用乐观锁更新行程
8、创建行程服务及防入侵
9、创建行程服务的测试
10、创建行程前后端联调
11、获取行程及行程列表的前后端联调
12、行程更新服务
13、行程生命周期的测试
14、行程生命周期的前端跳转
15、驾驶页面的行程更新
16、我的行程页面的更新
17、测试驱动修bug的标准流程
18、行程服务的总结
本周我们将实现身份认证服务流程。包括驾照上传,信息上传,后台审核,前端跳转,重新审核等复杂业务流程。技术上采用云存储来存放驾照照片,采用MongoDB来存放数据及其匹配项。
课程安排:
1、身份服务的定义
2、身份服务的实现
3、客户端的对接
4、微信数据双向绑定
5、与行程服务的联调
6、云存储的简介和使用
7、用Go语言和小程序操作云存储
8、获取图片内容的流程分析
9、存储服务的定义
10、存储服务的数据库实现
11、存储服务接入云存储
12、使用GRPC客户端检查存储服务
13、与身份认证服务的关联
14、身份认证模块的前后端联调
15、阶段小结