跳转至

期中测试 动手写一篇你自己的设计文档吧!

你好,我是李智慧。

现在课程已经过半,我们已经学习了8个典型应用的架构设计,不知你对软件建模和设计文档掌握了多少,又对架构设计有了哪些思路呢?

回到我们这个专栏的目的:一个是了解典型的高并发系统架构是如何设计的;另一个就是熟悉架构设计文档的写法和设计建模的方法。

所以,我期望你学习每一节课,不是在复习已经学过的技术,而是专门思考怎么去整合各种技术,构建一个完整的设计文档。这样,对于各种典型的互联网应用,你都能信手拈来,完成它的架构设计。

所谓“知而不行,只是未知”,为了帮你检测学习效果,我特地发起了一个架构设计活动:请你参考专栏中设计文档的写作方法,完成下方要求的系统架构设计文档。对于需求以及方案不明确的地方,你可以按照自己的理解进行设计,但是请你注意文档要前后一致、逻辑自洽,具有可实现性

在课程尾声,我会从中挑选出有代表性的文档做针对性点评,并对大家的高频问题进行解答。

另外,符合作业要求且获赞数最多的前3位同学,我们也准备了奖励,以下三种任选其一:

  • 与我进行半个小时的1V1语音沟通,我会解答你关注的一些问题(不局限于作业);
  • 极客时间赠送的原创马克杯
  • 开通极客时间超级会员年卡,获得50元返现。

文档提交方式:

请你将文档发布在InfoQ写作平台,并把文档链接提交在评论区(提示:若需申请入驻infoQ写作平台,请在留言区留下暗号“滴滴”,会有专人帮你开通)。

活动截止时间:

2022年4月10日12点。

期待在留言区看到你!

背景介绍

通达是某上市公司全资投资成立的一家物流快递公司,主要进行同城快递业务,公司刚刚成立,主要竞品为https://ishansong.com/

公司组建了20人的技术部门,准备两个月后系统开发完成上线,你是系统架构师,请你完成第一版系统架构设计文档。

功能需求

  • 用户通过app发起快递下单请求并支付
  • 快递员通过自己的App上报自己的地理位置,每30秒上报一次
  • 系统收到快递请求后,向距离用户直线距离5km内的所有快递员发送通知
  • 快递员需要进行抢单,第一个抢单的快递员得到配单,系统向其发送用户详细地址
  • 快递员到用户处收取快递,并记录到系统中:已收件
  • 快递员将快递送到目的地,并记录到系统中:已送达

订单量预估:预计上线三个月后,日订单50万。

关键技术方案参考建议

  • 系统采用微服务架构,用户请求通过负载均衡服务器分发给网关集群
  • 使用消息队列向5km内的快递员发送通知(消费者服务器获取的消息内容包括:用户地址,快递员列表)
  • 快递员实时位置缓存在分布式缓存Redis中
  • 数据存储使用MySQL,第一个上线版本不要求做数据分片,但要做主从复制

文档要求

文档中应该包括以下UML模型:

  • 系统关键用例图,描述产品主要功能需求
  • 下单抢单场景的业务活动图,即泳道模型(泳道包含不限于:用户,快递员,相关微服务)
  • 系统部署模型:描述系统服务器关系(如:网关服务器,微服务服务器,负载均衡,分布式缓存,消息队列服务器,消息消费者服务器,数据库读写分离)
  • 下单抢单场景的服务器时序模型
  • 订单状态图模型

文档全文不少于2000字。

精选留言(15)
  • 👽 👍(15) 💬(2)

    奉上我的作业,目前是第一版,如果有时间的话,后续也会继续完善它: https://xie.infoq.cn/article/bb8a0e85d32f11346a36af02e

    2022-03-20

  • Steven 👍(0) 💬(1)

    学到 19 课才发现有个其中测试,而且是今天 24 点前交 :(

    2022-04-03

  • SAM(陈嘉奇) 👍(0) 💬(1)

    滴滴

    2022-03-31

  • 兰飞 👍(0) 💬(1)

    滴滴

    2022-03-24

  • KickEGG 👍(0) 💬(1)

    滴滴

    2022-03-22

  • 范超萌 👍(0) 💬(1)

    滴滴

    2022-03-22

  • peter 👍(0) 💬(2)

    请教一个问题: 系统开发时间,文中说是两个月,这个数字也许是随意写的,因为本课的重点不是这个。在实际开发中,这个项目一般会计划多长时间? 实际开发时间一般会多长? (我感觉实际开发时间会大于计划时间)

    2022-03-16

  • Panmax 👍(0) 💬(1)

    滴滴

    2022-03-16

  • peter 👍(3) 💬(0)

    作业已经提交: https://xie.infoq.cn/article/66934549cfcdd42a8e6b3f9fb

    2022-04-04

  • Steven 👍(3) 💬(0)

    我的作业,也不是太完整,后续找时间完善: https://xie.infoq.cn/article/fe9b2076f5920fcfea9292e7e

    2022-04-03

  • 小锅米线 👍(1) 💬(1)

    通过本专栏学习到了很多,为了沉淀这段时间学到的知识,终于利用假期完成了第一版的文档编写。请老师不吝赐教,提供评审意见为谢! https://xie.infoq.cn/article/86753b85150793f02dd3f5720

    2022-04-04

  • JAVA未牛 👍(0) 💬(0)

    滴滴

    2022-11-29

  • 星星 👍(0) 💬(0)

    还能 滴滴吗,来晚了

    2022-10-21

  • AtomicCut 👍(0) 💬(0)

    滴滴!

    2022-04-15

  • 小锅米线 👍(0) 💬(0)

    滴滴

    2022-04-03