开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot): 项目总结(其他问题)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11567
项目总结(其他问题)
内容简介:
一、项目与产品
二、测试要求
三、企业中的项目(产品)开发流程
四、系统角色和数据库设计
五、视频点播的实现(流媒体的实现)
六、前后端联调常遇到的问题
七、项目组人数与人员构成
八、分布式系统的 CPA 原理
九、前端渲染和后端渲染的区别
十、架构图
一、项目与产品
项目是所有都从零开始搭建,而产品则是已经做出来但可以根据客户的需求来定制性开发。
oa 系统为办公自动化系统,其中典型的模块为审批流程,每个公司的审批流程不同,但都是审批,这就是产品,所以产品则是基本性功能,但可以根据公司的不同需求来定制性开发。
二、测试要求
(1)QPS
· 含义:经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为 QPS。
· 公式:QPS = 并发量/平均响应时间
· 首页和视频详情页 qps 单机 qps 要求2000+。
三、企业中的项目(产品)开发流程
1、一个中大型项目的开发流程:
(1)需求调研(产品经理)
(2)需求评审(产品/设计/前端/后端/测试/运营)
(3)立项(项目经理、品管)
(4)UI 设计
(5)开发
· 架构、数据库设计、API 文档、MOCK 数据、开发、单元测试
· 前端
· 后端
(6)前端后端联调
(7)项目提测:黑盒白盒、压力测试(gps)loadrunner
(8)bug 修改
(9)回归测试
(10)运维和部署上线
(11)灰度发布
(12)全量发布
(13)维护和运营
2、流程中重要的步骤如下:
(1)开发
· 架构、数据库设计、API 文档、MOCK 数据、开发、单元测试
· 前端
· 后端
(2)前端后端联调
(3)bug 修改
3、在一个项目的完整开发过程中,最重要的部分为需求,需要围绕需求来实现。
四、系统角色和数据库设计
此项目中只有两种角色:系统管理员、运营人员。
数据库设计的设计关系:如课程描述、分类、讲师以及权限五张表等。
五、视频点播的实现(流媒体的实现)
大多数公司的视频是通过第三方平台的内容
此项目接入阿里云的云视频点播,云平台上的功能包括视频上传、转码、加密、智能审核、监控统计等,还包括视频播放功能,阿里云还提供了一个视频播放器。
六、前后端联调常遇到的问题
· 前后端联调:接口由自己来写,前端由公司去做,之后接口要部署上,前端要调用接口,查看过程是否正确,即为前后端联调。
· 常见问题:
1、请求方式 post、get
2、json、x-wwww-form-urlencoded 混乱的错误
3、后台必要的参数而前端省略了
4、数据类型不匹配
5、空指针异常
6、分布式系统中分布式 id 生成器生成的 id 长度过大(19个字符长度的整数),js 无法解析(js 智能解析16个长度)
id 策略改为 ID_WORKER_STR
七、项目组人数与人员构成
说明问题时不要教条
一般后端比前端要多
·要符合实际情况,一般对于小公司来说一人身兼多职比较符合实际情况
八、分布式系统的 CPA 原理
(1)含义:指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可同时获得。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(所有节点在同一时间的数据完全一致,越多节点,数据同步越耗时)
可用性(A):负载过大后,集群整体是否还能响应客户端的读写请求。(服务一直可用,而且是正常响应时间)
分区容错性(P):分区容错性,就是高可用性,一个节点期了,并不影响其它的节点(100个节点,挂了几个,不影响服务,越多机器越好)
(2)zookeeper 为注册中心
九、前端渲染和后端渲染的区别
前端渲染是返回 json 给前端,通过 javascript 将数据绑定到页面上
后端渲染是在服务器端将页面生成直接发送给服务器,有利于 SEO 的优化
十、架构图
要着重体现 Gateway 网关、Nacos 注册中心、微服务架构、数据库分库、Git 等等。