前语
工作中不免要写技能方案
,今天写个架构规划
,明日写个组件规划
,横竖便是在你开开心心写代码主之前,总有xxx让你写规划方案,规划方案最核心的部分又是规划图,规划图又分很多种,在什么情况下用什么样的规划图,每次都会困惑我很久。那么今天咱们就来个汇总,完全把规划图这个问题搞了解。
基础
在开始学习规划图之前,咱们首要要知道咱们画图的目的:
用它们来表达你将怎么构建一个软件体系(预先规划)或许现有的软件体系是怎么工作的(回忆文档、知识共享和学习)。
所以将图像的清楚,了解,是咱们的关键,含糊不清的软件架构图简单导致误解,这可能会拖慢一个优异团队的前进步伐,怎么对软件架构图进行拆分,我引荐一篇文章用于软件架构的C4模型
C4模型表现了分层架构思维
,是业界优异的架构图表达思维之一
[Context、Container、Component、Code] C4 模型由一系列分层的软件架构图组成,这些架构图用于描述上下文、容器、组件和代码。C4 图的层次结构提供了不同的抽象等级,每种抽象等级都与不同的受众有关。
下面咱们来看各种不同的图例
各种类型图
体系架构图
适用场景:概要规划的主图
关键:
-
静态图(标识有哪些模块) vs 动态图(标识事务进程)
- 引荐两张合在一起
- 或许能够各画一张图
-
各模块的规范化图示
- 服务:中文名英文名(S0),方框。当同一类模块需求进一步分类时,引荐采用不同颜色,并在图中附上示例
- 数据库:圆柱体
- 用户:用户图例
-
当服务较多时(例如>7)
- 用泳道划分层次
- 用虚框线对服务进行分组
-
大部分事务项目(不触及大幅架构调整的)
- 尽可能把主要流程都画出来
- 引荐在服务下方注明改动了什么
图例
UML类图
适用场景:常用与具体规划
关键:
- 各元素和联系采用规范画法看懂UML类图和时序图
图例
流程图
适用场景:表达事务流程的可选方法,优点是较为通俗,方便产品、事务同学了解
关键:
- 主要在表达流程,关键在流程,不是完成。
图例一
图例二
时序图
适用场景:表达事务流程的可选方法,优点是较为精确,方便技能达成共识
关键
- 各元素和联系采用规范画法UML建模之时序图
图例
状态机图
适用场景:触及状态流转,可建模为有限状态机
关键
- 状态机图用于模拟各个类目标,用例和整个体系的动态行为
图例
ER图
适用场景:当触及实体较多时,用ER图表现各个实体之间联系
关键
- 引荐引进DDD域概念(核心域、支撑域、通用域)来对各个表进行区分
图例
参考文献
- 看懂UML类图和时序图
- UML建模之时序图
- 状态机图教程 (UML State Diagram)
- 什么是实体ER图
- 用于软件架构的C4模型
- 软件架构图的认识