如何画架构图之C4模型画法
如何画架构图之C4模型画法
之前一直看别人画架构图,自己画的很烂,最近看了一点点资料,整理了下,分享出来,希望对别人有帮助,如果有不对的地方欢迎指正。
C4架构图要解答的问题:
1,为哪些用户提供什么服务? 语境图
2,完成这个系统使用了哪些服务?容器图
3,每一个服务是由哪些组件实现的 组件图
4,实现这个组件需要完成什么?类图
语境图:
意图:
我们构建的软件系统是什么?
谁在使用它
如何融入现有的it系统
结构:
中间画一个简单的框图代表你的系统,周围是和它相互作用的系统。不去关注细节。
动机:
使语境更明确
从更高的层次展示了正在向已有的IT环境中添加了什么?
技术和非技术可以当做讨论起点的一种更高层次图标。
牵涉到理解系统间接口的问题时,为你识别可能需要沟通的人提供一个起点。
举例:
容器图
意图:
帮助解答以下问题:
软件系统的整体形态
高层次的技术决策
职责在系统如何分布
容器之间如何相互交流
为了实现特性,作为一个开发者,我需要在哪里写代码
结构:
画一个简单的框图展示你的关键技术选择。
容器:
Web服务器
应用服务器
企业服务总线和业务流程编排引擎
sql数据库
nosql数据库
其他存储系统
文件系统
windows服务
独立/控制台应用程序
web浏览器
cron或其他计划工作容器
容器,指的是组成软件系统的逻辑上的可执行文件或过程。每一个容器都可以指定以下 几项:名称(逻辑名称,如web服务器,数据库),技术选型,职责。
交互:
交互的目的
通信方法
通信方式
协议和端口号
系统边界
需要有系统边界
示例图:
组件图
意图:
解释以下问题:
系统由哪里组件组成
高层次上,系统如何工作是否清晰
所有组件/服务是否在一个容器中?
结构:
当人们被要求绘制架构图时,通常会绘制一张展示组成软件系统的逻辑组件的图。
除了我们一次只想看一个容器中驻留的组件。也就是说组件图就是普遍意义上的架构图。
组件:
一个金融系统风险的解决方案包含的组件:
贸易数据系统导入器
参考数据系统导入器
风险计算器
认证服务
系统驱动者,协调者
审计组件
通知组件
监测服务等
组件是系统的粗粒度结构单元,通过一个或者多个组件实现一个特性。每一个组件,都可以指定:名称,技术,职责。
交互:
交互的目的
通信方式
示例图:
基础设施架构
提供软件架构和基础设置架构之间映射的信息。
如何画架构图之C4模型画法相关推荐
- 如何画架构图之C4方法
如何画架构图之C4方法 用C4方法: C4表示由高到低逐步细化的4中图. 分别是: 语境.容器.组件和类 语境: 要求做到给不懂技术的客户能考得懂的图,只要能表达口语的语境即可. 传达少量的信息,比如 ...
- 画架构图的软件_程序员为什么要学会画技术架构图?
来源: https://www.infoq.cn/article/GhprrUlOYyOqS8*FR1pH 技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线 ...
- 我是怎么画架构图的?
技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也体现在优秀工程师在工作效率提升.产品性能优化和用户体验改善等经验方面的分享,以提高我们的专业能力. ...
- 教你画架构图,看一次就会了
当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手.删了又来? 用一张图描述我的系统,并且让产品.运营.开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到 ...
- 手把手教你画架构图,看一次就会了!
点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...
- 不会画架构图的程序员不是好的技术扛把子,手把手练起来~
1.前言 你是否对大厂展示的五花八门,花花绿绿的架构设计图所深深吸引,当我们想用几张图来介绍下业务系统,是不是对着画布不知从何下手?作为技术扛把子的筒子们是不是需要一张图来描述系统,让系统各个参与方都 ...
- 使用VSCode+PlantUML+C4-Model快速画架构图
使用VSCode+PlantUML+C4-Model快速画架构图 关于C4-Model 最近在看C4-Model,它的理念很实用,架构图要明确面向人群,根据面向人群的不同,产出四幅图来描述一个系统或者 ...
- 架构设计实践思路:什么是架构,怎么画架构图?
点击蓝色字体"肉眼品世界",关注公众号 改变,从一点一滴积累开始 作者丨胡斌 策划丨小智 本文是架构设计实践五部曲系列文章的第一篇,架构与架构图.本文将对架构作深入的阐释,并教你什 ...
- 京东云开发者|软件架构可视化及C4模型:架构设计不仅仅是UML
软件系统架构设计的目标不在于设计本身,而在于架构设计意图的传达.图形化有助于在团队间进行高效的信息同步,但不同的图形化方式需要语义一致性和效率间实现平衡.C4模型通过不同的抽象层级来表达系统的静态结构 ...
最新文章
- 用Rhino V7建造机甲学习教程 Building a Mecha using Rhino V7
- 使用深度学习opencv 进行人脸年龄的实时检测
- 中国AI芯片产业发展白皮书:未来三年年均增长率超50%
- MySQL和PostgreSQL的常用语法差异
- 常用的简单排序之插入排序,冒泡排序,选择排序,希尔排序
- 15岁大学毕业,一生800多篇专著论文,双眼失明却凭一条公式称霸数学界
- 前端学习(3297):effect的使用
- linux隐藏apache信息,Linux下如何隐藏Apache版本号信息
- Java服务,内存OOM问题如何快速定位?
- c++程序设计(第三版) pdf_【好课传送】C++语言程序设计基础入门视频
- Shell脚本实现每个工作日定时执行指定程序
- spring整合使用activemq
- zynq中纯Programmable Loigc编程
- Sitemap Celebration(使用嵌套列表的树形导航)
- formdata ie9怎么兼容_2021上半年教师资格证笔试报名如何设置兼容性?
- 配置 Linux 阿里源
- 热血江湖群医外挂源代码研究
- uefi能重置系统吗_重装系统提示系统平台为uefi+gpt,无法进dos,请到pe中还原怎么办...
- maven 树 查看依赖
- 非常详细的讲解让你深刻理解神经网络NN(neural network)
热门文章
- java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单
- mysql 语句_如何记录MySQL执行过的SQL语句
- 八十八、从斐波那契数列和零一背包问题探究动态规划
- tensorflow笔记
- 微信小程序学习笔记(六)
- 10万奖金!探索图像盲降噪新方式,旷视2022 MegCup炼丹大赛等你来战
- 训练技巧 | 功守道:NLP中的对抗训练 + PyTorch实现
- PTGAN:针对行人重识别的生成对抗网络 | PaperDaily #36
- 论文共读 | “阳奉阴违”的半监督学习算法 - Virtual Adversarial Training
- poj 3264 Balanced Lineup RMQ问题 线段树