首页 > 其他分享 >如何画架构图?

如何画架构图?

时间:2023-12-11 11:13:57浏览次数:36  
标签:涂鸦 架构 数据 技术 架构图 如何 com

来源: 如何画架构图? - 知乎 (zhihu.com)

 

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

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

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

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

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

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

一、架构图的定义及作用

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

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

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

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

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

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

 

二、架构的分类及画法

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

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

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

产品架构图

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

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

应用架构图

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

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

大数据架构图

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

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

 

三、适合画架构图的工具

1、ProcessOn

https://www.processon.com/diagrams

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

2、http://draw.io

http://www.draw.io

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

3、visual-paradigm

地址---https://online.visual-paradigm.com/cn/

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

4、excalidraw

https://excalidraw.com/

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

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

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

涂鸦开发者 - 涂鸦智能 - 全球化 IoT 开发平台​developer.tuya.com/cn?_&_source=c8588d63626ed6863c3db83b60eda634 TuyaOS 开发 - 涂鸦开发者论坛​www.tuyaos.com/viewforum.php?f=2&sid=58bc6e99570bad2baddfef3399bdc473

 

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

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

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

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

架构师喜欢用的架构图工具_大前端圈的博客-CSDN博客​blog.csdn.net/wk843620202/article/details/108313925?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167411156416800186568634%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167411156416800186568634&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-108313925-null-null.142%5Ev71%5Eone_line,201%5Ev4%5Eadd_ask&utm_term=%E6%9E%B6%E6%9E%84%E5%9B%BE%E5%B7%A5%E5%85%B7&spm=1018.2226.3001.4187

标签:涂鸦,架构,数据,技术,架构图,如何,com
From: https://www.cnblogs.com/titianblog/p/17893902.html

相关文章

  • 如何实现波纹进度条(ArkUI)
    场景说明应用开发过程中经常用到波纹进度条,常见的如充电进度、下载进度、上传进度等,本例即为大家介绍如何实现上述场景。效果呈现本示例最终效果如下:运行环境本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发:IDE:DevEcoStudio3.1Beta2SDK:Ohos_sdk_publi......
  • Oracle切换undo后如何确定使用旧undo的会话信息
     Oracle切换undo后如何确定使用旧undo的会话信息 背景是这样的,最近RAC的磁盘组90%报警,存储空间只能再加2T空间。而这套RAC的DATA组用了normal冗余,不知道当初哪个大聪明这么搞的,底层还是做了RAID10的。领导也不知道不懂这么设置的。因此,这新的2T创建新磁盘组且使用extern......
  • 中小企业如何迅速开拓市场?CRM系统来帮您
     中小企业数字化基础和转型条件相对薄弱,想要做好数字化,就要从以客户为中心的角度出发,多渠道触达客户,优化运营和业务流程,为企业活动提供支撑等等,而CRM系统恰好可以做到。下面说说,中小企业如何提升市场开拓能力?市场上真正适合中小企业的CRM产品屈指可数。大多数CRM客户关系管理......
  • vue如何实现文件上传及预览
    vue文件上传及预览<template><divid="file"><inputname="files" id="uploaderInput" type="file" accept="images/*" multiple@change="change"/><divclass="file_upload">......
  • Unity3D《守望先锋》如何来做帧同步详解
    Unity3D是一种跨平台的游戏开发引擎,它提供了丰富的功能和工具,可以帮助开发人员轻松创建高质量的游戏。在Unity3D中,帧同步是一种重要的技术,它可以确保多个玩家在不同的客户端上同时进行游戏,并保持游戏状态的同步。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础......
  • MySQL 分组排序后 → 如何取前N条或倒数N条
    开心一刻晚上,老婆辅导女儿写语文作业填空题:春天来了,__绿了女儿:春天来了,爸爸绿了老婆一脸不悦地问道:你再说一遍,春天来了,什么玩意绿了?女儿:春天来了,爸爸绿了呀老婆很生气,但依旧温柔地问道:春天来了,爸爸怎么绿了呢女儿略带哭腔的说道:那冬天呢......
  • GPT的工作过程 以及如何用好GPT
    GPT的工作过程可以简单分成四步:第一步:输入处理:把输入转化成向量第二步:捕捉特征:把向量传递给Transformer模型,神经网络捕捉它们的特征和关系第三步:理解上下文:自注意力机制,使模型关注输入中的不同部分,理解它们之间的关系第四步:生成内容:根据已经生成的文本和输入,生成最可能的词如何用好......
  • Netty源码学习8——从ThreadLocal到FastThreadLocal(如何让FastThreadLocal内存泄漏do
    系列文章目录和关于我一丶引入在前面的netty源码学习中经常看到FastThreadLocal的身影,这一篇我们将从ThreadLocal说起,来学习FastThreadLocal的设计(《ThreadLocal源码学习笔记》)二丶从ThreadLocal说起ThreadLocal是JDK中实现线程隔离的一个工具类。实现线程隔离maybe你第一反应......
  • 如何在微信公众号上传附件
    微附件是一个为微信公众号提供文件管理服务的便捷工具。它允许运营者轻松上传和管理各式文档,涵盖Word、Excel、PPT、PDF和TXT格式。通过微附件,用户能够便捷地下载这些文件。该工具特别适合于公众号分享各种文档,如职位空缺、申请表格、注册资料、报名表、比赛公告、公示列表、招标信......
  • Amazon如何日志实践的?
    1深入研究日志第一次工作遇到代码报错尝试解决并没有做好,而且我不清楚是哪里做错了。一位同事建议我打开日志看看是哪里出错了。而要这样做,他说我应该“cat日志文件”。当时我真以为同事们在和我开玩笑,或者在说一个关于猫的笑话,只不过我没听懂。我在大学里使用Linux只是为了......