分享一个在线考试系统,练手项目用他很香,java 架构面试题
前言
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有 RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、ZeroMQ、MetaMQ 等。
本文总结了近年来在实际项目中使用消息中间件的经历和踩过的一些坑,可为你**在实际工作中进行产品选型、业务场景方案制定、性能调整等提供明确的思路。**由于是基于 Java 语言开发,因此它非常适合 Java 初中级程序员阅读,学习。
2019/12 项目累计突破 1000 star
2019/11 入围开源中国最受欢迎开源项目
2019/10 累计超过 100 万学生使用
2019/10 荣获码云最有价值开源项目
学生系统功能
登录、注册:注册时要选年级,过滤不同年级的试卷, 账号为 student/123456
首页:任务中心、固定试卷、时段试卷、可以能做的一部分试卷
试卷中心:包含了所有能做的试卷,按学科来过滤和分页
考试记录:所有的试卷考试记录在此处分页,可以查看试卷结果、用时、得分、自行批改等
错题本:所有做错的题目,可以看到做题的结果、分数、难度、解析、正确答案等
个人中心:个人日志记录
消息:消息通知
试卷答题和试卷查看:展示出题目的基本信息和需要填写的内容
管理系统功能
登录:账号为 admin/123456
主页:包含了试卷、题目、做卷数、做题数、用户活跃度的统计功能,活跃度和做题数是按月统计
用户管理:对不同角色 学生、教师、管理员 的增删改查管理功能
卷题管理:
试卷列表:试卷的增删改查,新增包含选择学科、试卷类型、试卷名称、考试时间,试卷内容包含添加大标题,然后添加题目到此试卷中,组成一套完整的试卷
题目列表:题目的增删改查,目前题型包含单选题、多选题、判断题、填空题、简单题,支持图片、公式等。
教育管理:对不同年级的学科进行增删改查
消息中心:可以对多个用户进行消息发送
日志中心:用户的基本操作进行日志记录,了解用户使用过情况
小程序功能
用户登录登出功能,登录会自动绑定微信账号,登出会解绑
首页包含任务中心、固定试卷、时段试卷,和 web 端保持一致
试卷模块,固定试卷和时段试卷的分页查询,下拉加载更多,上拉刷新当前数据
记录模块,考试结果的分页,包含了试卷基本信息
我的模块,包含个人资料的修改,个人动态,消息中心模块
技术栈列表
后台系统:
spring-boot 2.1.6.RELEASE
spring-boot-security 用户登录验证
undertow web 容器
postgresql/mysql 优秀的开源数据库
redis 缓存,提升系统性能
mybatis 数据库中间件
hikari 速度最快的数据库连接池
七牛云存储 目前 10G 内免费
前台系统:
《一线大厂 Java 面试真题解析+Java 核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java 优秀开源项目:
ali1024.coding.net/public/P7/Java/git
言尽于此,完结
无论是一个初级的 coder,高级的程序员,还是顶级的系统架构师,应该都有深刻的领会到设计模式的重要性。
第一,设计模式能让专业人之间交流方便,如下:
程序员 A:这里我用了 XXX 设计模式
程序员 B:那我大致了解你程序的设计思路了
第二,易维护
项目经理:今天客户有这样一个需求…
程序员:明白了,这里我使用了 XXX 设计模式,所以改起来很快
第三,设计模式是编程经验的总结
程序员 A:B,你怎么想到要这样去构建你的代码
程序员 B:在我学习了 XXX 设计模式之后,好像自然而然就感觉这样写能避免一些问题
第四,学习设计模式并不是必须的
程序员 A:B,你这段代码使用的是 XXX 设计模式对吗?
程序员 B:不好意思,我没有学习过设计模式,但是我的经验告诉我是这样写的
从设计思想解读开源框架,一步一步到 Spring、Spring5、SpringMVC、MyBatis 等源码解读,我都已收集整理全套,篇幅有限,这块只是详细的解说了 23 种设计模式,整理的文件如下图一览无余!
搜集费时费力,能看到此处的都是真爱!
评论