写点什么

架构训练营 -4- 模块一作业

作者:glenny
  • 2021 年 12 月 09 日
  • 本文字数:924 字

    阅读完需:约 3 分钟

架构训练营 -4- 模块一作业

微信业务架构图

了解了一下微信的发展历程,以此做的一个粗粒度的业务架构图


“学生管理系统”毕设架构设计

毕设要求如下:

  1. 要求可以通过公网域名访问

  2. 要求至少 3 人合作完成

  3. 能够支撑管理 1000 个学生

  4. 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案

假设我方背景如下:

  1. 加上自己一共 3 个人

  2. 大家都会 Java,但是有一个是 PHP 高手

  3. 大家经济条件一般

作业要求:

  1. 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案

  2. 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点

  3. 给出你选择的最终方案以及选择理由

架构设计方法论指导

首先,得到需求列表,对需求进行判断分析,如果有不明确的地方需要与需求方进行澄清,明确定义

其次, 判断需求列表中主要的复杂点有哪些,形成复杂度列表

再次,针对复杂度列表进行拆解,目的当然是为了降低系统的复杂度

然后,基于常见的套路拆解复杂度,得到多个备选方案

最后,根据目前自己所处的环境,条件,选择取舍一套最合适的方案

注:在整个判断、拆解、取舍过程中都需要遵循架构三原则(合适、简单、演讲)

架构实战

  1. 对学生管理系统的需求进行需求判断,判断出业务模块包括:学生管理、课程管理、考试管理、权限管理。

  2. 对学生管理系统的复杂度进行分析判断,包括其高性能、高并发、可用性、安全、成本等方面的复杂度分析结果如下:

  • 高性能:从毕设要求来看最多 1000 人,其对性能要求不会很高

  • 高可用:学生管理系统,一般来说没有金融、互联网行业的系统对高可用要求那么高,而且学生管理系统的不可用也不会太影响学校的正常工作;但是也要考虑数据方面尽量避免丢失很多或者所有学生信息,所以综合来看需要考虑数据的高可用要求

  • 可扩展:业务功能比较多,复杂,需要考虑系统的可扩展性要求

  • 安全、成本:安全方面,该系统不涉及到学生、老师什么隐私信息,安全方面不用过多;成本方面,从毕设角度考虑 3 个学生的经济条件一般,但是正常情况一般都学校提供服务器,如果实在要自己出,目前市面上云服务器也很便宜,因此成本可控

  • 团队:成员技术方面都会 java,有一个 php 高手,那么可以考虑使用前后端分离 php+java

  1. 根据分析结果拆解复杂度,从而进行备选方案的设计

  • 备选方案 1

  • 备选方案 2


  • 备选方案 3


  1. 方案取舍:基于架构三原则,最终选取备选方案 3 作为本次毕设的最终方案

用户头像

glenny

关注

还未添加个人签名 2017.12.21 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营 -4- 模块一作业