一图胜万语,做好一张架构图能让别人一眼就清晰地弄懂程序的功能与依赖,大大降低大家的理解成本和提升沟通效率。但作为新人而言,如何画出要点,提炼出核心概念是个有难度的事。
什么是架构?
架构是结构和愿景,是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策。
系统架构是概念的体现,是对物/信息的功能与形式元素之间的对应情况所做的分配,是对元素之间的关系以及元素同周边环境之间的关系所做的定义。
什么是架构图?
系统架构图是为了抽象地表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,以及软件系统的物理部署和软件系统的演进方向的整体视图。
架构图的作用
要让干系人理解、遵循架构决策,就需要把架构信息传递出去。架构图就是一个很好的载体。那么,画架构图是为了:
- 解决沟通障碍
- 达成共识
- 减少歧义
架构核心要素
综合上述各种权威定义,软件系统的架构通常需要包含如下四类核心要素:
- 元素(elements):将系统拆分为一组元素 - 模块、组件、结构体、子系统;
- 关系(relationships):不同元素之间的关系 - 交互、依赖 、继承、组合、聚合;
- 属性(properties):每个元素具备的属性 - 名称、职责、接口、实现限制等;
- 原理(principles):为什么这么设计 - 拆分依据、设计原则、决策原因等。
架构图分类
搜集了很多资料,分类有很多,有一种比较流行的是4+1视图,分别为场景视图、逻辑视图、物理视图、处理流程视图和开发视图。
from:如何画好软件项目架构图?, 架构制图:工具与方法论
附录
五种常见软件架构
- 分层架构
- 事件驱动架构
- 微核架构
- 微服务架构
- 云架构
架构图example:
架构文章
Author: Mrli
Link: https://nymrli.top/2021/08/24/学习画好架构图/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.