如何画架构图?

发布时间 2023-12-11 11:03:04作者: 卡巴一枝花

来源: (99+ 封私信 / 82 条消息) 如何画架构图? - 知乎 (zhihu.com)

 

作者:硬件发烧友
链接:https://www.zhihu.com/question/27440059/answer/2852354457
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

画架构图建议最好分四步走,更有利于厘清思路

第一,搞清楚要画的架构图类型,明确画架构图的核心目的;

第二,确认架构图中的关键要素(比如产品、技术、服务);

第三,梳理关键要素之间的关联:包含、支撑、同级并列等;

第四,输出关联关系清晰的架构图。

一、架构图的定义及作用

什么是架构图?架构图=架构+图

也就是说,架构是由系统组件,以及组件间相互关系共同构成的集合体

而架构图,则是用来表达这种集合的载体。

它的作用也很简单,两个:

  • 划分目标系统边界
  • 将目标系统的结构可视化

进而减少沟通障碍,提升协作效率。

 

二、架构的分类及画法

架构大致可以分为4类:业务架构、应用架构、数据架构和技术架构。

1、业务架构:使用一套方法论/逻辑对产品(项目)所涉及到的业务进行边界划分。所以熟悉业务是关键。

比如做一个团购网站,你需要把商品类目、商品、订单、订单服务、支付、退款等进行清晰划分,而业务架构不需要考虑诸如我用什么技术开发、我的并发大怎么办、我选择什么样的硬件等等。

产品架构图

2、应用架构:它是对整个系统实现的总体上的架构,需要指出系统的层次、系统开发的原则、系统各个层次的应用服务。

例如,下图就将系统分为数据层、服务层、通讯层、展现层,并细分写明每个层次的应用服务

应用架构图

3、数据架构:是一套对存储数据的架构逻辑,它会根据各个系统应用场景、不同时间段的应用场景 ,对数据进行诸如数据异构、读写分离、缓存使用、分布式数据策略等划分。

数据架构主要解决三个问题:第一,系统需要什么样的数据;第二,如何存储这些数据;第三,如何进行数据架构设计

大数据架构图

4、技术架构:应用架构本身只关心需要哪些应用系统,哪些平台来满足业务目标的需求,而不会关心在整个构建过程中你需要使用哪些技术。技术架构则是应接应用架构的技术需求,并根据识别的技术需求,进行技术选型,把各个关键技术和技术之间的关系描述清楚。

技术架构解决的问题包括:纯技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。

 

三、适合画架构图的工具

1、ProcessOn

processon.com/diagrams

里面有收费及免费的模板可供使用,免费和VIP会有使用权限的不一致,详情见官网啦。我一般就用这个,很好用,充了好几年的年费。

2、draw.io

draw.io

大家一定会喜欢这个,因为免费!!!这个连接的是 GitHub 和 微软的OneDrive,不连接的话就是个离线版本。而且有 vscode 的插件可用。所以我身边用这个的大佬颇多。

3、visual-paradigm

地址---online.visual-paradigm.com

这个模板也很多,提供桌面版本和在线版本,就是收费。收费的好处就是非常的全,只有你想不到的。打开速度对于一个前端工程师来说零容忍。

4、excalidraw

excalidraw.com/

这个就是拼脑洞的,很好看

比如我们的脑洞架构师画的flex的讲解,灰常的棒!

以上就是画架构图的具体思路和步骤,希望对大家有帮助。如果有对物联网架构图感兴趣的,这边推荐下全球化IoT开发平台服务商--涂鸦智能,上面有很多帮助开发智能产品的软硬件工具。也可以自己学着画架构图,涂鸦这边提供开发者论坛,有任何问题都能在上面进行咨询。

 

————————————————

1、版权声明:本文为CSDN博主「亿图图示」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:如何画架构图?_亿图图示的博客-CSDN博客_画架构图

2、本文架构图工具部分来源于CSDN技术社区: