模块一作业
1. 画出微信的业务架构图。
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
2.1 判断复杂度
高性能?---------------无要求
高可用?---------------数据不能全部丢失
可扩展?---------------有一定复杂度
成本、安全?------------低成本
综上可知,项目复杂度为:
可扩展:业务需求比较复杂,
数据高可用:数据不能全部丢失,
成本与安全:成本不能过高
2.2 方案取舍
2.2.1 画出备选架构
备选架构 1:
备选架构 2:
备选架构 3:
2.2.2 分析方案优缺点
优点
备选架构 1:按模块划分子系统,便于后续扩展,也利于团队分工协作,符合演化原则。
备选架构 2:复核团队技术水平和积累,开发成本较低,系统运维成本低,符合合适性原则。不进行系统拆分,部署简单,符合简单原则。一次性交付,无需考虑太多后期演化,符合演化原则。
备选架构 3:按模块划分为各个微服务,拓展性很强,利于团队分工协作。
缺点
备选架构 1:对团队能力要求略高,开发成本略有提升,违背了合适原则。进行了系统拆分,部署维护难度提升。违背了简单原则。
备选架构 2:由于所有模块都集中在一个应用上,各个模块的耦合度较高,不利于同时开发。
备选架构 3:对团队能力要求很高,开发成本大,违背了合适原则。将系统进行拆分,并且增加了微服务基础配置的布置,大大提升了部署难度。违背了简单原则。需要支持的学生数量有限,此方案远远超出了当前业务需求,违背了演化原则。
2.2.3 方案确定
综上所述:基于现有团队技术条件,并且考虑团队的经济能力,最终选择备选架构 2。若后续条件充足,可以考虑从备选架构 2 演化至备选架构 1。
评论