如何画好一张架构图,如何分L0~L4级别?

文摘   2025-01-16 21:42   浙江  

日常我们在设计方案或者讨论时,经常会看到各种图,这里先统称架构图。另外在一些规划、汇报、总结、分享里面也经常出现各式各样的架构图,有的图还好一看就明白,有的图需要画图人讲、补充说明才能勉强说明白。从个人经验来看,不同项目之间以及同一个团队的不同开发人员之间创建架构图的方式也是很不一样的。也看到过很多问题,比如一致性问题、碎片化问题、信息粒度大小的问题,所以想简单理一理,怎么画好架构图让人更好理解。

介绍

“一张图片胜过千言万语”,架构图是架构工作的关键部分,架构图能帮助与许多不同类型的相关者沟通想法,以满足的不同沟通需求。也做产品的唯一表达,让团队对产品、系统的实际情况理解保持一致。而如上所述,设计软件架构图并非一件轻而易举的事情,即使是很简单的一个架构图也可能会出错。有意义且具备一致性的架构图有助于为不同的利益相关者澄清事实,并达成共识。

另外,如果你想整理整个公司架构,你会发现图很多,但想整体表达系统架却有一些困难。单个图不能向每个类型的相关者传达其含义,如何有效的有结构的组织这些架构图,也变得非常重要,能相互衔接形成闭环。

基本逻辑

  1. 1. 基于目的和目标受众,构建架构图的表达形式,能让你的目标目标受众共鸣,戳到关键点。

  2. 2. 架构图是架构的表达,是模型设计的表达,如业务模型和系统模型等。

  3. 3. 模型是重要的信息的表达,比如结构、元素、关系、属性、原则,忽略重要信息导致模型模糊,放了不重要信息增加认知负荷。

  4. 4. 架构图必须是自描述的,并且要具备一致性和足够的准确性。

如果用“神”和“形”来对比的话,前面3点是图的“神”,第4点是图的“形”,“神”得靠个人的底层架构能力,下面主要说说“形”上我们要注意的一些东西。

常见不足

如果有一些点没有注意,会让图的自我表达变差。

  1. 1. 方框或其他形状表示什么意思?随意使用方框或其他形状可能会引起误解。

  2. 2. 形状的边线表示什么意思?虚线、点线等多种形状的边线可能会引起误解。

  3. 3. 线条或箭头表示什么意思?线条或箭头可以被理解为数据流,也可以表示元素间的关系(比如组件 A 依赖组件 B)。

  4. 4. 线条或箭头表示哪一种类型的交互或关联?交互类型有流程、数据流,关联类型有依赖、继承、实现等。

  5. 5. 颜色代表什么意思?一般颜色在架构图里的作用不是非常大,如果使用了多种颜色的架构图却没有适当的文档说明很容易引起误解。

  6. 6. 不应该单独的元素或实体,不管是从结构还是从行为角度来看,每一个元素或实体都应该依赖系统的其他部分,或者与它们之间存在某些联系。

  7. 7. 费解的缩略语或含糊不清的名词,切忌使用费解缩略语(HQ/MQ)、含义不清的名称(业务流程、通用模块等可以更具体),这样容易引起困惑。

  8. 8. 表达内容是与受众关注的重要信息,比如是个业务流程图,不应该包含无关紧要的技术实现细节。一些技术实现

  9. 9. 在同一个架构图里混杂运行时元素和静态元素。例如运行时的状态流转图,不要与静态数据结构图放一起,导致表达不清晰,可以分开两张图表达。

  10. 10. 试着把所有必要的信息都包含在架构图里,而不是事后加以说明,不然容易丢关键信息。

  11. 11. 层级冲突或混合抽象,在同一个架构图里添加不同层级的抽象可能会导致冲突的出现,例如,把组件添加到上下文架构图里,或者把类加到部署图里。

  12. 12. 使用混乱或含糊不清的架构图表达过量的信息或无效的细节,需要谨慎地选择信息的层级和粒度。

实践指南

  1. 1. 保持架构图的结构一致性和语义一致性,也会让整张图的逻辑非常严谨。方框、形状、边框、线条、颜色等在一张图内,一种情况,在一张图内表达的语义必须是一致的,没有二义性。更好的情况,是整个公司内做好规范,这些定义在同一类图里是一个语义。

  2. 2. 图上有图示说明,注明每个架构图元素的用意(比如方框、形状、边框、线条、颜色、缩略语,等等)。

  3. 3. 使用业内标准的架构描述语言,如UML,按其标准定义来制作。


  4. 例如:


架构图分级L0~L4

核心是要有统一的分级的框架结构,下面给大家看一些实践的分级案例。

(PS:这里可以说很多,时间有点不够简单列一列)

SalesForces的分级框架

SalesForce把图分为两类:偏文档说明和实现(Documentation & Implementation), 偏市场、销售策略(Marketing, Strategy & Sales)

1.Marketing, Strategy & Sales

  • Purpose: Help viewers understand concepts or a vision for a solution.

  • Audience: Business & Executive Stakeholders, Technical Influencers

2.Documentation & Implementation

Purpose: Help viewers understand an implementation or product-related technical detail.

Audience: Delivery Teams, Technical Stakeholders

四级框架Level1~Level4

明确图表的意图和受众,决定什么样的细节最能支持你的目的,使用“分级”的概念来帮助将不同的细节划分为易于选择的类别。选择合适的级别可以看清楚一些的细节,使是高度复杂的图表也可以很容易地让查看。当您从Level 1级看到Level 4级时,可以放大更大的细节级别,更细的粒度。

更详细的可以看原文链接:https://architect.salesforce.com/diagrams/framework/overview

一些现成的Demo链接:https://architect.salesforce.com/diagrams#template-gallery


某大厂的分级框架

按架构分层来定义

1


2

  1. 基本跟应用整体的分层逻辑对应,上面给了两个分层逻辑。


  2. 1. L0是业务线的全局架构;

  3. 2. L1是中台/平台级别;

  4. 3. L2是领域级别,用户、会员、互动营销、员工;

  5. 4. L3是应用/模块级别;

这里的粒度可以根据公司和组织架构情况做一些适当调整,例如公司有时候会进行团队拆分和合并,比如把员工、帐号、权限合成一个大的基础团队,这里你会发现团队不管怎么拆合,员工、帐号这个领域级别是相对稳定的,可以以个相对稳定的级别做基准,再做适度上下分级,让每个级别的图有一个对应的团队负责维护是比较合适的。可以更好得长期更新维护架构图,让其能与真实的系统情况保持一致。

对了,基于我10多年的架构经验,精心整理了一套 超全的架构学习路线求职面试、职场晋升都能用到。
需要的同学,加我微信,备注【架构资料】,免费获取!

··············  END  ··············

你好,我是汤师爷,南京大学硕士,曾就职于华为、阿里,创业公司CTO,现大厂资深架构师,Qcon/IAS/A2M大会特邀讲师。日常分享AI编程,系统架构,AI工具,欢迎围观。


往期文章精选:

1.业务分析

一文搞懂SaaS业务架构:价值流、业务能力、业务流程、业务对象、组织架构
2.系统规划
吊打面试官!全网最全多租户系统设计方案
详解:订单履约系统规划
详解:促销系统整体规划
3.概念模型设计
权限系统:一文搞懂功能权限、数据权限
交易系统:订单模型设计详解
履约系统:发货单、配送单模型设计详解
促销系统:促销活动、优惠券、优惠规则概念模型设计
4.应用分层架构
库存系统:应用层、领域层、对接层的架构设计
交易系统:应用分层架构设计
履约系统:应用层、领域层、集成关系设计

欢迎把文章分享至朋友圈
点赞、在看是对我最大的支持
↘↘↘

架构师汤师爷
南京大学硕士,曾就职于华为、阿里,创业公司CTO,现大厂资深架构师,Qcon/IAS/A2M大会特邀讲师。日常分享AI编程、系统架构、AI工具。
 最新文章