【职场修仙】- 设计图篇

前语

工作中不免要写技能方案,今天写个架构规划,明日写个组件规划,横竖便是在你开开心心写代码主之前,总有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模型
  • 软件架构图的认识