项目总结(其他问题) | 学习笔记

简介: 快速学习 项目总结(其他问题)

开发者学堂课程【微服务+全栈在线教育实战项目演练(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 的优化


十、架构图

image.png

要着重体现 Gateway 网关、Nacos 注册中心、微服务架构、数据库分库、Git 等等。

相关文章
|
JSON 算法 物联网
物联网中利用OTA技术升级的基本原理与方法
物联网中利用OTA技术升级的基本原理与方法
621 0
|
机器学习/深度学习 数据采集 算法
Python中的支持向量机(SVM)以及如何使用Sklearn库实现它
SVM是监督学习算法,用于分类和回归,Python中可通过Scikit-learn实现。步骤包括数据预处理、选择SVM模型(如线性或非线性,配合核函数)、训练模型找到最优超平面、模型评估、参数调整和新数据预测。Scikit-learn简化了这一流程,便于数据分析任务。
502 3
Vue2竖向文字滚动
这是一个基于Vue3的文字滚动组件(TextScroll),支持自定义滚动文字数组、滚动间隔时间、展示宽度及高度等属性。该组件通过VerticalTextSlider.vue实现,提供了平滑过渡动画,并允许鼠标悬停时暂停滚动。适用于多种场景下的文字轮播需求。
294 0
Vue2竖向文字滚动
|
自然语言处理 算法 Python
再谈递归下降解析器:构建一个简单的算术表达式解析器
本文介绍了递归下降解析器的原理与实现,重点讲解了如何使用Python构建一个简单的算术表达式解析器。通过定义文法、实现词法分析器和解析器类,最终实现了对基本算术表达式的解析与计算功能。
319 52
|
算法 安全 C++
提高C/C++代码的可读性
提高C/C++代码的可读性
265 4
|
缓存 Linux Shell
Linux 内存管理与 Swap 空间扩展实践
该文介绍了Linux系统中`free`命令的使用,解析了其输出信息,包括物理内存(总内存、已用、空闲、缓存)和交换空间(总大小、使用和空闲)。Linux优先使用物理内存作缓存,当内存紧张时使用Swap空间。文章还提供了扩展Swap空间的步骤,并强调适度Swap使用对性能的影响,建议合理平衡物理内存和Swap的比例。
|
Kubernetes Cloud Native Linux
云原生入门:Kubernetes的简易部署与应用
【8月更文挑战第49天】在云原生的世界里,Kubernetes(K8s)是一颗璀璨的星。本文将带你走进K8s的世界,从安装到简单应用,轻松驾驭这个强大的容器编排工具。让我们一起探索云原生的奥秘,解锁新技能!
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之怎么离线同步MongoDB的增量数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
Kubernetes Cloud Native 安全
云原生技术专题 | 解密2023年云原生的安全优化升级,告别高危漏洞、与数据泄露说“再见”(安全管控篇)
2023年,我们见证了科技领域的蓬勃发展,每一次技术革新都为我们带来了广阔的发展前景。作为后端开发者,我们深受其影响,不断迈向未来。 随着数字化浪潮的席卷,各种架构设计理念相互交汇,共同塑造了一个充满竞争和创新的技术时代。微服务、云原生、Serverless、事件驱动、中台、容灾等多样化的架构思想,都在竞相定义未来技术的标准。然而,哪种将成为引领时代的主流趋势,仍是一个未知数。尽管如此,种种迹象表明,云原生的主题正在逐渐深入人心。让我们一起分析和探讨云原生技术和架构安全体系的升级和改良,以期发现新的技术趋势和见解。
793 1
云原生技术专题  |  解密2023年云原生的安全优化升级,告别高危漏洞、与数据泄露说“再见”(安全管控篇)
|
数据库连接 C# 数据库
C#数据库连接配置文件存放至App.Config
将C#数据库连接配置文件存放到外置的App.config文件中,并且演示vs和Rider如何读取配置文件连接数据库
386 0