
欢迎来到预见猿份,本站项目均为站长原创,学习中有问题可直接提交给站长老苗解决(微信:mrt_0607)。
苗润土老师,20余年一线项目经验,2014年加入黑马,星辰wms、云岚到家、学成在线项目作者,历任高级讲师、教学主管及课程研究员。 b站老苗
第九章 项目总结v3.1
Java工程师高频面题:https://yjoffer.com/javaqa/readme.html
1 项目概况
1.1 项目介绍
从以下几个方面进行项目介绍:
1、项目的背景:做什么业务、服务的客户群是谁、谁去运营、自研还是外包等问题。
2、项目的业务流程:课程发布流程、断点续传流程、视频处理流程、认证授权流程、支付流程、CI/CD流程。
3、项目的功能模块:内容管理模块、媒资管理模块、认证授权模块、选课学习模块、订单支付模块。
4、项目的技术架构:Spring Cloud 、SpringBoot、MySQL、Elasticsearch、XXL-JOB、MinIO、Redis、Redisson、RabbitMQ。
5、个人工作职责
6、个人负责模块的详细说明,包括模块的设计,所用到的技术,技术的实现方案等。
功能模块:

1.2 开发周期
项目周期8个月,其中开发4个月,测试4个月;人员共有15名。
Java开发共6名:3名初级程序员,2名中级程序员,1名高级程序员(兼架构师)。
初级程序员:负责编码、单元测试。
中级程序员:模块设计、核心代码编写、部分模块编码和单元测试
高级程序员:系统架构设计,核心代码编写
产品设计人员:1名
前端工程师:2名
UI设计:1名
测试人员:3名,其中2名功能测试,1名性能测试。
配置管理员:1名,作好项目代码、项目文档等资料的备份工作,负责统一分配git账号、权限。
项目经理:1名,负责制定项目计划、项目管理。
2 内容管理模块
2.1 内容管理模块功能开发
问题1:内容管理模块是怎么做的?
内容管理模块是对课程及相关信息进行维护,培训机构登录机构端,编辑课程相关的信息,包括:课程基本信息、课程营销、课程计划、课程关联的师资信息等,全部信息编写完毕提交审核,运营人员审核通过后由机构人员进行发布,课程发布后用户可以在平台上进行在线学习。
因为课程的相关信息比较多,用户编辑课程信息分为多个步骤进行,我们设计了课程基本信息表、营销表、课程师资表、课程计划表去分别存储这些信息。
课程发布时我们将课程的相关信息聚合到一张课程发布表,这里我们还需要将课程信息同步到elasticsearch、redis还有分布式文件系统中,这里存在分布式事务,我们基于本地消息表和任务调度的方式去控制分布式事务控制,实现数据的最终一致性。
问题2: 课程审核的流程是什么?
机构用户编辑完课程信息后将课程提交给运营人员进行审核,课程审核包括程序自动审核和人工审核,程序会校验信息的完整性,调用鉴黄接口,人工审核是48小时内完成,审核的意见及审核结果会写入课程审核表,用户通过查询审核意见得到审核的结果。
问题3:课程发布的流程是什么?
课程审核通过后由机构端用户进行课程发布,设计了课程预览功能,通过课程预览能够快速知道课程的哪些信息不全。课程发布后课程相关信息写入课程发布表,课程发布的状态为已发布,还有课程下架功能,下架的课程用户无法搜索到无法选课学习,下架课程的发布状态为下架,课程下架后可以重新发布。
问题4:图片鉴黄是怎么做的?
很多的云平台都提供图片鉴黄的API,比如:阿里云、腾讯云等,提供图片的url调用API就可以了,我们项目组封装了一个sdk,调用接口得到返回值,包括:黄、不黄、人工审核。
