关于架构设计的总结和思考
2023-09-26 本文已影响0人
LHZ_123
系统设计的步骤
一、需求分析
[需求分析主要全方位地描述需求相关的信息,介绍清楚需求的背景、目标和价值收益]
二、概要设计
三、详细设计
5W1H分析法
我们可以使用5W1H方法,帮助我们分析问题、制定计划、解决问题。
5W
[5W 指 Who、When、What、Why、Where。
Who:需求利益干系人,包括开发者、使用者、购买者、决策者等。
When:需求使用时间,包括季节、时间、里程碑等。
What:需求的产出是什么,包括系统、数据、文件、开发库、平台等。
Where:需求的应用场景,包括国家、地点、环境等,例如测试平台只会在测试环境使用。
Why:需求需要解决的问题,通常和需求背景相关]
比如消息队列的 5W 分析如下:
Who:消息队列系统主要是业务子系统来使用,子系统发送消息或者接收消息。
When:当子系统需要发送异步通知的时候,需要使用消息队列系统。
What:需要开发消息队列系统。
Where:开发环境、测试环境、生产环境都需要部署。
Why:消息队列系统将子系统解耦,将同步调用改为异步通知。
1H
[这里的 How 不是设计方案也不是架构方案,而是关键业务流程。消息队列系统这部分内容很简单,但有的业务系统 1H 就是具体的用例了,有兴趣的同学可以尝试写写 ATM 机取款的业务流程。如果是复杂的业务系统,这部分也可以独立成“用例文档”]
比如消息队列有两大核心功能:
业务子系统发送消息给消息队列。
业务子系统从消息队列获取消息。
系统设计知识储备
怎么写设计文档?
“设计文档” 的内容组织逻辑,都应该是相通的。它们的内容大体如下:
- 现状 :我们在哪里,现状是什么样的?
- 需求:我们的问题或诉求是什么,要做何改进?
- 需求满足方式:
- 要做成什么样,交付物规格,或者说使用界面(接口)是什么?
- 怎么做到?交付物的实现原理。
UML图在设计文档中的运用
推荐的画图工具draw.io、Visual Paradigm
需求分析中的运用
用例图
活动图
时序图
概要设计中的运用
活动图
时序图
组件图
部署图
详细设计中的运用
活动图
时序图
类图
状态图
关于架构图的解释
业务架构图
![](https://img.haomeiwen.com/i11982172/b22589f5f93eac3d.png)
系统架构图
![](https://img.haomeiwen.com/i11982172/b5e1834bc82f7400.png)
![](https://img.haomeiwen.com/i11982172/72b15a4504451308.png)
应用架构图
![](https://img.haomeiwen.com/i11982172/8a24c6b2f7a229c8.png)
![](https://img.haomeiwen.com/i11982172/dadbb03d19b996a6.png)
部署架构图
![](https://img.haomeiwen.com/i11982172/831eebcc0d2bb4a5.png)
架构设计三原则
合适原则
合适原则宣言:“合适优于业界领先”。
简单原则
简单原则宣言:“简单优于复杂”。
演化原则
演化原则宣言:“演化优于一步到位”。
系统设计要考虑的点
高可用
高性能
可扩展
安全性
稳定性
三板斧:
- 可监控
- 可灰度
- 可回滚