UML2.0中的14种图简介,并借助AI生成UML图
UML2.0中的14种图简介,并借助AI生成UML图
- 绘制流程
- 结构图(Structure Diagrams)
- 1. 类图(Class Diagram):
- 2. 对象图(Object Diagram):
- 3. 组件图(Component Diagram,构件图):
- 4. 部署图(Deployment Diagram):
- 5. 复合结构图(Composite Structure Diagram,组合结构图):
- 6. 包图(Package Diagram):
- 7. 配置图(Profile Diagram,轮廓图):
- 行为图(Behavior Diagrams)
- 8. 用例图(Use Case Diagram):
- 9. 活动图(Activity Diagram):
- 10. 状态图(State Machine Diagram):
- 11. 序列图(Sequence Diagram):
- 12. 通信图(Communication Diagram,协作图):
- 13. 交互概览图(Interaction Overview Diagram):
- 14. 时序图(Timing Diagram):
- 应用场景
UML(统一建模语言)2.0中定义了14种不同类型的图表,用于从不同角度描述系统。这些图表分为结构图和行为图两大类。
绘制流程
1、大模型生成UML图的草图,可以是ASCII表示,如图:
用户 界面 数据库
| | | |--登录请求-------->| | | |---验证用户信息---->| | |<--返回验证结果-----| |<--显示登录结果----| | | | |
2、使用大模型根据草图,生成PlantUML代码:
@startuml skinparam sequenceArrowThickness 2
skinparam sequenceParticipant underline actor 用户
boundary 界面
database 数据库 用户 -> 界面: 登录请求
activate 界面
界面 -> 数据库: 验证用户信息
activate 数据库
数据库 --> 界面: 返回验证结果
deactivate 数据库
界面 --> 用户: 显示登录结果
deactivate 界面 @enduml
3、将代码添加到PlantUML在线编辑网站
可使用 PlantUML 绘制 UML 中的各种类型的图表:https://plantuml.com/zh/,可以编辑预览预览UML图,之后就可以下载了!
PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表,如序列图、用例图、类图、对象图、活动图、组件图、部署图、状态图、时序图等,其他图支撑不太好,需要使用前面的图进行模拟。
结构图(Structure Diagrams)
结构图主要描述系统的静态结构:
1. 类图(Class Diagram):
- 显示系统中的类、接口及它们之间的关系
- 展示属性、方法和关系(如继承、实现、依赖等)
- 是UML中最常用的图表之一
ASCII图示:
+--------------------+
| Customer |
+--------------------+
| -name: String |
| -id: int |
+--------------------+
| +getName(): String |
| +setName(String) |
+--------------------+ ▲ |
+--------------------+
| VIPCustomer |
+--------------------+
| -level: int |
+--------------------+
| +getDiscount() |
+--------------------+
PlantUML生成图:
@startuml class Customer { -name: String -id: int +getName(): String +setName(String)
} class VIPCustomer { -level: int +getDiscount()
} Customer <|-- VIPCustomer @enduml
2. 对象图(Object Diagram):
- 类图的实例,显示系统某一时刻的对象状态
- 表示对象之间的实际关系和具体属性值
ASCII图示:
+--------------------+
| customer: Customer |
+--------------------+
| name = "张三" |
| id = 12 |
+--------------------+
PlantUML生成图:
@startuml
object 对象1
对象1 : name = "张三"
对象1 : id = 12object "第 2 个对象" as o2
o2 : name = "李四"
o2 : id = 23
@enduml
3. 组件图(Component Diagram,构件图):
- 展示系统的组件及其依赖关系
- 表示软件系统的物理结构和组织
ASCII图示:
+-----------------+ +-----------------+
| <<组件>> | | <<组件>> |
| Web UI | | 业务逻辑层 |
+-----------------+ +-----------------+ | | | <<使用>> | <<使用>> v v
+-----------------+ +-----------------+
| <<组件>> | | <<组件>> |
| 用户服务 | | 数据访问层 |
+-----------------+ +-----------------+ | | <<使用>> v +-----------------+ | <<组件>> | | 数据库 | +-----------------+
PlantUML生成图:
@startuml skinparam component { BackgroundColor<<组件>> White BorderColor Black
} [Web UI] <<组件>> as webui
[业务逻辑层] <<组件>> as business
[用户服务] <<组件>> as userService
[数据访问层] <<组件>> as dataAccess
[数据库] <<组件>> as database webui -down-> userService : <<使用>>
business -down-> dataAccess : <<使用>>
dataAccess -down-> database : <<使用>> @enduml
4. 部署图(Deployment Diagram):
- 描述系统运行时的物理架构
- 显示硬件节点、软件组件的分布及它们的关系
ASCII图示:
+---------------+ +---------------+
| Web Server | | App Server |
| +--------+ | | +--------+ |
| |Web App | |------>| |Business| |
| +--------+ | | |Logic | |
+---------------+ | +--------+ | +-------+-------+ | v +---------------+ | Database | | Server | +---------------+
PlantUML生成图:
@startuml node "Web Server" { component "Web App"
} node "App Server" { component "Business Logic"
} node "Database Server" { database "Database"
} "Web Server" --> "App Server"
"App Server" --> "Database Server" @enduml
5. 复合结构图(Composite Structure Diagram,组合结构图):
- 展示类或组件的内部结构
- 显示各部分如何相互协作
ASCII图示:
+-------------------------------+
| 电脑系统 |
| |
| +-------+ +---------+ |
| | CPU |<------>| 内存 | |
| +-------+ +---------+ |
| ^ ^ |
| | | |
| v v |
| +-------+ +---------+ |
| | 硬盘 |<------>| 网卡 | |
| +-------+ +---------+ |
+-------------------------------+
PlantUML生成图:
@startuml package "电脑系统" { component CPU component "内存" component "硬盘" component "网卡" CPU <--> "内存" CPU <--> "硬盘" "内存" <--> "网卡" "硬盘" <--> "网卡"
} @enduml
6. 包图(Package Diagram):
- 显示系统的包结构和包之间的依赖关系
- 帮助管理大型系统的组织结构
ASCII图示:
+----------------+ +----------------+
| UI包 | | 业务逻辑包 |
| |---->| |
+----------------+ +----------------+ | | | | v v
+----------------+ +----------------+
| 工具包 | | 数据访问包 |
| |<----| |
+----------------+ +----------------+
PlantUML生成图:
@startuml package "UI包" as UI
package "业务逻辑包" as BL
package "工具包" as Tools
package "数据访问包" as DA UI --> BL
UI --> Tools
BL --> DA
DA --> Tools @enduml
7. 配置图(Profile Diagram,轮廓图):
- 用于定义UML的扩展机制
- 允许开发者定制UML以适应特定领域
ASCII图示:
<<stereotype>>
+----------------+
| 移动设备 |
+----------------+
| +安全级别: int |
+----------------+
PlantUML生成图:
@startuml skinparam stereotypeCBackgroundColor #ADD8E6 class "移动设备" <<stereotype>> { + 安全级别 : int
} @enduml
行为图(Behavior Diagrams)
行为图主要描述系统的动态行为:
8. 用例图(Use Case Diagram):
- 从用户角度描述系统功能
- 展示系统与外部参与者的交互
ASCII图示:
+-----------------------------+
| ATM系统 |
| |
| +----------+ |
| | | |
| | 取款 |<------+ |
| | | | |
| +----------+ | |
| | |
| +----------+ | |
| | | | |
| | 查询余额 |<------+------ 客户
| | | | |
| +----------+ | |
| | |
| +----------+ | |
| | | | |
| | 存款 |<------+ |
| | | |
| +----------+ |
| |
+-----------------------------+
PlantUML生成图:
@startuml left to right direction actor 客户 as customer rectangle "ATM系统" { usecase "取款" as withdraw usecase "查询余额" as checkBalance usecase "存款" as deposit
} customer --> withdraw
customer --> checkBalance
customer --> deposit @enduml
9. 活动图(Activity Diagram):
- 描述业务流程、算法或操作的工作流程
- 类似于流程图,但支持并行行为建模
ASCII图示:
+----------------+ | 开始购物 | +----------------+ | v +----------------+ | 浏览产品 | +----------------+ | v +----------------+ | 选择产品 | +----------------+ | v +----------------+ | 加入购物车 | +----------------+ | v +----------------+ | 是否继续购物? | +----------------+ / \[是] / \ [否] / \| v | +----------------+ | | 结算 | | +----------------+ | | | v | +----------------+ | | 输入地址 | | +----------------+ | | | v | +----------------+ | | 选择支付 | | +----------------+ | | | v | +----------------+ | | 确认订单 | | +----------------+ | | | v | +----------------+ | | 支付成功 | | +----------------+ | | v v
+----------------+ +----------------+
| 继续浏览 | | 结束购物 |
+----------------+ +----------------+
PlantUML生成图:
@startuml start
:开始购物; repeat :浏览产品; :选择产品; :加入购物车; :是否继续购物?;
backward:是;
repeat while (继续购物?) :结算;
:输入地址;
:选择支付;
:确认订单;
:支付成功;
:结束购物; stop @enduml
10. 状态图(State Machine Diagram):
- 描述对象在生命周期内的状态变化
- 展示事件如何触发状态转换
ASCII图示:
+----------+ 注册 +----------+ | 未注册 |-------->| 待激活 | +----------+ +----------+ | | 激活 v +----------+ 冻结 +----------+ | 已冻结 |<--------| 正常 | +----------+ +----------+ | ^ | | | 解冻 | +-------------------->+
PlantUML生成图:
@startuml [*] --> 未注册 未注册 --> 待激活 : 注册
待激活 --> 正常 : 激活
正常 --> 已冻结 : 冻结
已冻结 --> 正常 : 解冻 @enduml
11. 序列图(Sequence Diagram):
- 展示对象之间的交互顺序
- 强调消息的时间顺序
ASCII图示:
用户 界面 数据库 | | | |--登录请求-------->| | | |---验证用户信息---->| | |<--返回验证结果-----| |<--显示登录结果----| | | | |
PlantUML生成图:
@startuml skinparam sequenceArrowThickness 2
skinparam sequenceParticipant underline actor 用户
boundary 界面
database 数据库 用户 -> 界面: 登录请求
activate 界面
界面 -> 数据库: 验证用户信息
activate 数据库
数据库 --> 界面: 返回验证结果
deactivate 数据库
界面 --> 用户: 显示登录结果
deactivate 界面 @enduml
12. 通信图(Communication Diagram,协作图):
- 也称为协作图
- 展示对象之间的交互关系
- 强调对象之间的组织结构而非时间顺序
+-------+ | 用户 | +-------+ | 1:登录请求 | v +-------+ +-------+ | 界面 |--2:验证-->| 数据库 | +-------+ +-------+ | 4:显示结果 | v +-------+ | 用户 | +-------+
PlantUML生成图:
@startuml ' 定义对象
object "用户" as user
object "界面" as ui
object "数据库" as db ' 定义对象间的链接和消息
user --> ui : 1: 登录请求
ui --> db : 2: 验证
db --> ui : 3: 返回结果
ui --> user : 4: 显示结果@enduml
13. 交互概览图(Interaction Overview Diagram):
- 结合活动图和序列图的特点
- 展示复杂交互的控制流程
ASCII图示:
+----------------+ | 开始登录 | +----------------+ | v +----------------+ | 验证用户名密码 | +----------------+ | [验证成功] / \/ \
+----------------+ +----------------+
| sd 查询用户权限 | | sd 记录登录失败 |
+----------------+ +----------------+ \ / \ / \ / +----------------+ | 结束登录 | +----------------+
PlantUML生成图:
@startuml:开始登录; :验证用户名密码;if (验证成功?) then (yes):查询用户权限;
else (no):记录登录失败;
endif:验证结束;@enduml
14. 时序图(Timing Diagram):
- 展示对象状态随时间变化的情况
- 特别适用于实时系统的建模
和序列图对比:
特性 | 序列图 | 时序图 |
---|---|---|
主要关注点 | 对象间的消息交互 | 对象的状态变化 |
时间轴方向 | 垂直方向(从上到下) | 水平方向(从左到右) |
表达重点 | 交互顺序和逻辑流程 | 状态持续时间和变化时刻 |
适用场景 | 分析对象协作和消息流 | 分析实时系统中状态变化 |
表示方式 | 生命线和消息箭头 | 状态线和状态变化点 |
ASCII图示:
状态 ^
闲置 |__________ _________ | | |
忙碌 | |______________| | | | +---------------------------------> 时间 收到请求 处理完成
PlantUML生成图:
@startuml
concise "状态 " as Server @0
Server is 闲置 @5
Server is 忙碌 @15
Server is 闲置 @enduml
应用场景
- 需求分析阶段:用例图、活动图
- 系统设计阶段:类图、对象图、序列图
- 实现阶段:组件图、部署图
- 测试阶段:状态图、时序图
对于不同的建模需求,可以选择使用不同类型的UML图表,它们共同帮助开发团队更好地理解、设计和实现软件系统。
相关文章:
UML2.0中的14种图简介,并借助AI生成UML图
UML2.0中的14种图简介,并借助AI生成UML图 绘制流程结构图(Structure Diagrams)1. 类图(Class Diagram):2. 对象图(Object Diagram):3. 组件图(Component Diag…...
Jsoup、Selenium 和 Playwright 的含义、作用和区别
文章目录 一、Jsoup1. 含义2. 作用3. 核心特性4. 适用场景 二、Selenium1. 含义2. 作用3. 核心特性4. 适用场景 三、Playwright1. 含义2. 作用3. 核心特性4. 适用场景 四、Jsoup、Selenium 和 Playwright 的区别五、适用场景对比六、总结 Jsoup、Selenium 和 Playwright 都是用…...
服务器如何修复SSL证书错误?
修复服务器上的SSL证书错误需要根据具体错误类型逐步排查和解决。以下是常见的步骤和解决方案: --- ### **1. 确认错误类型** 首先检查浏览器或工具(如OpenSSL)报错的具体信息,常见错误包括: - **证书过期**…...
AD9253链路训练
传统方式 参考Xilinx官方文档xapp524。对于AD9253器件 - 125M采样率 - DDR模式,ADC器件的DCO采样时钟(500M Hz)和FCO帧时钟是中心对齐的,适合直接采样。但是DCO时钟不能直接被FPGA内部逻辑使用,需要经过BUFIO和BUFR缓冲后,得到s_b…...
VAE-LSTM异常检测模型复刻报告
VAE-LSTM异常检测模型复刻报告 复刻背景 本报告记录了我复刻VAE-LSTM异常检测模型的完整过程。原论文提出了一种结合变分自编码器(VAE)和长短期记忆网络(LSTM)的异常检测方法,用于时间序列数据。 环境配置 复刻过程中使用的环境配置如下: Python 3.…...
有哪些信誉良好的脂多糖供应商推荐?
一般描述 Sigma-Aldrich的脂多糖 (LPS) 是糖脂,由连接单个或多个脂肪酸的碳水化合物单元组合而成,存在于革兰氏阴性菌细胞壁中。LPS是外膜的重要组成部分,结构由脂质A、葡萄糖胺基磷脂、短核寡糖和O-抗原(远端多糖)组…...
初识分布式事务原理
事务是指符合ACID特性的操作就是事务,在同一个数据库中,如果要分别对表A和表B进行插入和删除操作,如果其中一个操作执行失败,可以对当前数据库进行回滚,使其回滚到执行操作前的状态,但是现有的系统架构都是…...
文件上传过程中出现EOFException的解决方案
文件上传过程中出现EOFException的解决方案 项目场景: 项目是一个考试测评系统,包含学生答题截图上传功能。学生通过前端界面提交答题截图,后端服务接收并处理这些图片文件,存储到MinIO对象存储中。 问题描述 前端调用’提交答…...
智能文档解析系统架构师角色定义
(根据专业写作类任务要求,以系统架构师角色定义范式进行结构化呈现) 智能文档解析系统架构师角色定义 核心技能模块 1. 多模态语义解析引擎 支持中英双语对齐的异构数据解码遵循ISO/IEC 30140标准的JSON语法校验体系 ├─ 智能字段补全机…...
翻倍缠论系统+拐点多空雷达,组合指标的使用操盘技术
如上图,单独从副图指标信号来说,在标记①的位置,开始出现副图指标【拐点多空雷达】转多的买点,红柱开始出现就是跟进做多的第一买点。 在标记②的位置,副图指标出现红柱持续,而黑色的柱线开始出现…...
Linux脏页相关参数
参数 以下是Linux内核中与脏页(Dirty Page)相关的各个参数及其含义的详细说明: 1. vm.dirty_background_bytes 含义:系统内存中脏页数量的绝对字节阈值(单位为字节),当脏页达到此值时&#x…...
C++20 module下的LVGL模拟器
ARM GCC:14.2 Toolchain:MSVC 前篇:使用SDL2搭建简易LVGL模拟器_lvgl sdl-CSDN博客 故事 从前 我所用的单片机工程本身是为了电赛设计的,由于电赛的特性,需要使用同一个实验平台通过不同外设的“排列组合”来实现不…...
Go全栈_Golang、Gin实战、Gorm实战、Go_Socket、Redis、Elasticsearch、微服务、K8s、RabbitMQ全家桶
Go全栈全家桶包含: 1、【零基础入门】Go语言核心编程零基础入门实战,B站学习地址分享: 【2025年新版】Go语言教程 2、GolangGinGorm仿小米商城企业级项目实战 3、Golang仿小米商城高并发微服务实战 4、Golang RabbitMQ高并发秒杀、抢购、预约…...
STM32提高篇: 蓝牙通讯
STM32提高篇: 蓝牙通讯 一.蓝牙通讯介绍1.蓝牙技术类型 二.蓝牙协议栈1.蓝牙芯片架构2.BLE低功耗蓝牙协议栈框架 三.ESP32-C3中的蓝牙功能1.广播2.扫描3.通讯 四.发送和接收 一.蓝牙通讯介绍 蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技…...
Linux系统编程---精灵进程与守护进程
1、前言 精灵进程又称守护进程、后台进程,在英文中称为 daemon 进程。精灵进程是运行在一个相对干净的环境、不受终端影响、常驻内存的进程,和神话中的精灵一样,拥有不死不灭的特性,长期稳定提供某种功能或服务。 在Linux系统中&a…...
《让机器人读懂你的心:情感分析技术融合奥秘》
机器人早已不再局限于执行简单机械的任务,人们期望它们能像人类伙伴一样,理解我们的喜怒哀乐,实现更自然、温暖的互动。情感分析技术,正是赋予机器人这种“理解人类情绪”能力的关键钥匙,它的融入将彻底革新机器人与人…...
科技项目必须进行验收测试吗?项目验收测试服务机构有哪些?
在现代科技迅猛发展的背景下,各类科技项目层出不穷,从智能硬件到软件系统,乃至工业自动化解决方案,项目的质量直接关系到企业的信誉、用户体验和市场竞争力。那么科技项目必须进行验收测试吗? 简短且明确的回答是:必…...
7.7 Axios+Redux+JWT全链路实战:打通前后端API通信最佳实践
Axios+Redux+JWT全链路实战:打通前后端API通信最佳实践 连接前端与后端 API:全链路数据交互设计指南 关键词:前后端通信架构设计、RESTful API 开发、Axios 请求拦截、Redux 状态管理、JWT 认证集成 1. 前后端通信架构设计原则 我们采用分层架构实现前后端解耦,通过 RES…...
零基础入门 Verilog VHDL:在线仿真与 FPGA 实战全流程指南
摘要 本文面向零基础读者,全面详解 Verilog 与 VHDL 两大主流硬件描述语言(HDL)的核心概念、典型用法及开发流程。文章在浅显易懂的语言下,配合多组可在线验证的示例代码、PlantUML 电路结构图,让你在 EDA Playground 上动手体验数字电路设计与仿真,并深入了解从 HDL 编写…...
[蓝桥杯 2025 省 Python B] 最多次数
import sysdef max_times() -> int:s sys.stdin.readline().strip()checked {l,q,b} # set(),不存在键值对,识别为set()n len(s)time 0i 0while i < n - 2:sec s[i:i3]if set(sec) checked:i 3time 1else:i 1sys.…...
HTTP相关
目录 一、HTTP状态码 1XX信息性状态码 2XX成功状态码 3XX重定向状态码 4XX客户端错误状态码 5XX服务器错误状态码 二、GET/POST/PUT/DELETE请求 2.1GET 2.2POST 2.3PUT 2.4DELETE 2.5RESTful API例子 三、RESTful API 3.1什么是RESTful API 3.2RESTful API中的关…...
使用rclone迁移minio文件
文章目录 一、rclone简介1、工具说明2、核心特点2.1、跨平台支持2.2、多存储支持2.3、加密与安全2.4、增量同步与断点续传2.5、高性能 3、适用场景3.1、云存储迁移3.2、备份与同步3.3、跨云协作3.4、数据加密归档 二、常用命令1、基础操作2、文件传输3、文件管理4、高级功能5、…...
基于Java与MAVLink协议的多无人机(Cube飞控)集群控制与调度方案问题
基于Java与MAVLink协议的多无人机(Cube飞控)集群控制与调度方案问题 背景需求: 我们目前有一个基于Cube飞控的无人机系统,需实现以下核心功能: 多机通信:通过MAVLink协议同时连接并控制多架无人机&#x…...
Super-Vlan和MUX-Vlan的原理、配置、区别
Super-Vlan 原理 Super-Vlan也叫Aggregate-Vlan。 一般的三层交换机中,通常是采用一个VLAN对应一个vlanif接口的方式实现广播域之间的互通,这在某些情况下导致了IP地址的浪费。因为一个VLAN对应的子网中,子网号、子网定向广播地址、子网缺…...
数据一致性问题剖析与实践(二)——单机事务的一致性问题
一、前言 我们一般讲到单机事务,离不开的就是数据库,其最重要的定义就是,要么全部成功执行,要么全部不执行,保证安全的状态转化。 之前我们讨论了几种场景的一致性问题 冗余数据存储中的一致性问题分布式共识中的一…...
VUE Element-ui Message 消息提示组件自定义封装
为了让message 信息提示的更加方便快捷,减少不同地方的调用,避免代码的重复,特意再官方message 组件的基础上二次封装,使代码更加的优雅和高效。 实现效果: 代码组件: 封装成 message.js 文件,…...
HSTL详解
一、HSTL的基本定义 HSTL(High-Speed Transceiver Logic) 是一种针对高速数字电路设计的差分信号接口标准,主要用于高带宽、低功耗场景(如FPGA、ASIC、高速存储器接口)。其核心特性包括: 差分信号传输&…...
【PCB工艺】运放电路中的负反馈机制
通过运算方法器电路设计详细解释负反馈机制(Negative Feedback) 负反馈 是控制系统、电子电路、神经系统等多个领域中非常核心的概念。特别在运算放大器(Op-Amp)电路中,负反馈是实现精确控制和高稳定性的关键机制。 …...
玩转Docker | 使用Docker部署Neko自托管浏览器
玩转Docker | 使用Docker部署Neko自托管浏览器 前言一、Neko介绍简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署Neko服务下载镜像创建容器创建容器检查容器状态检查服务端口安全设置四、访问Neko服务访问Neko首页登录Neko五、基本使用设置键…...
聊聊自动化用例的维护
自动化测试中的农药悖论:为何长期维护至关重要 自动化测试常被视为"一次编写,永久有效"的解决方案,但随着时间的推移,即使设计最精良的测试套件也会逐渐失效。这种现象被称为农药悖论(Pesticide Paradox&am…...
OpenCV 图形API(60)颜色空间转换-----将图像从 YUV 色彩空间转换为 RGB 色彩空间函数YUV2RGB()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将图像从 YUV 色彩空间转换为 RGB。 该函数将输入图像从 YUV 色彩空间转换为 RGB。Y、U 和 V 通道值的常规范围是 0 到 255。 输出图像必须是 8…...
Docker配置带证书的远程访问监听
一、生成证书和密钥 1、准备证书目录和生成CA证书 # 创建证书目录 mkdir -p /etc/docker/tls cd /etc/docker/tls # 生成CA密钥和证书 openssl req -x509 -newkey rsa:4096 -keyout ca-key.pem \ -out ca-cert.pem -days 365 -nodes -subj "/CNDocker CA" 2、为…...
监督学习(Supervised Learning)与无监督学习(Unsupervised Learning)
监督学习与无监督学习是机器学习的两大核心范式,主要区别在于数据是否包含明确的“标签”(目标输出)。 1. 监督学习(Supervised Learning) 定义: 数据形式:输入数据&…...
批量将多个 Excel 表格中的某张图片替换为新的图片
对于 Excel 文档,相信大家都不陌生,我们可以在 Excel 单元格中插入各种各样的图片,我们也可以将 Excel 表格中的图片替换为新的图片,常规的做法我们都是通过 Office 来进行单个处理的,但是如果我们遇到批量处理的场景&…...
数据一致性问题剖析与实践(三)——分布式事务的一致性问题
一、前言 之前我们讨论了几种场景的一致性问题 冗余数据存储中的一致性问题分布式共识中的一致性问题单机事务中的一致性问题 本文将围绕分布式事务中的一致性问题展开讨论。 二、分布式环境的最大难题 相对于单机环境,分布式环境中,一致性问题最大…...
分布式理论和事务
微服务和分布式 微服务 是一种软件架构风格,它将应用程序拆分成一系列小型、独立的服务,每个服务专注于单一功能,彼此通过轻量级通信机制(如 API)进行交互。微服务通常是松耦合的,可以独立开发、部署和扩展…...
基于Flask与Ngrok实现Pycharm本地项目公网访问:从零部署
目录 概要 1. 环境与前置条件 2. 安装与配置 Flask 2.1 创建虚拟环境 2.2 安装 Flask 3. 安装与配置 Ngrok 3.1 下载 Ngrok 3.2 注册并获取 Authtoken 4. 在 PyCharm 中创建 Flask 项目 5. 运行本地 Flask 服务 6. 启动 Ngrok 隧道并获取公网地址 7. 完整示例代码汇…...
flutter和vue3项目利用webview_flutter插件通信
近来需要实现一个功能: flutter项目的会员中心页面跳转到vue3项目的活动页,点击该活动页面的“签到”按钮后到flutter项目的积分中心页面进行签到,签到成功后手动返回上一个页面即vue3活动页面的按钮状态更新问题(需更新为“已签到”)。 实现方法:通过webview_flutter …...
sql 根据时间范围获取每日,每月,年月的模版数据
1:获取每日模版数据(参数也支持跨年) SELECT a.selected_date cdate FROM(SELECT adddate(1970-01-01,t4.i * 10000 t3.i * 1000 t2.i * 100 t1.i * 10 t0.i) selected_dateFROM( SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELEC…...
亚信安全与联通数科达成战略合作,成立联信事业部
4月22日,亚信安全与联通数字科技有限公司(以下简称“联通数科”)正式签署战略合作协议,双方宣布将联合成立“联信事业部”,仪式上,联通数科董事长孙江山与亚信安全董事长何政为“联信事业部”成立揭牌&…...
第五节:进阶特性高频题-Teleport与Suspense组件应用
Teleport:解决模态框/弹窗的DOM层级问题(如挂载到body) Suspense:处理异步组件加载状态(fallback内容展示) 深入解析 Vue3 的 Teleport 与 Suspense 组件 一、Teleport 组件:突破 DOM 层级限制…...
如何使用 uv 构建 Python 包并本地安装
本文将逐步指导你创建一个简单的 Python 包,并将其本地安装到机器或云环境中。完成本教程后,你将拥有一个可复用的 Python 库,可直接通过 pip 安装或在项目中导入使用。 步骤详解 Step 0: 选择构建工具 - 使用 uv 推荐理由:uv 是…...
集结号海螺捕鱼组件搭建教程与源码结构详解(第一篇)
本系列将基于 C Unity3D Java MySQL 构建的集结号海螺捕鱼平台,全面拆解组件架构、服务部署、客户端接入、数据库结构等内容,适合技术团队二次开发及运维部署。 一、整体架构说明 集结号海螺捕鱼平台采用三层结构: 客户端(Uni…...
RabbitMQ复习笔记
文章目录 MQ 概述同步调用拓展性差的问题性能下降的问题级联失败问题 异步调用举例 技术选型 RabbitMQRabbitMQ 安装RabbitMQ 收发消息交换机队列绑定关系模拟发送消息 RabbitMQ 数据隔离用户管理virtual host 授权 SpringAMOPSpringAMOP 快速入门消息发送消息接收 Work Queues…...
游戏开发核心技术解析——从引擎架构到攻防体系的完整技能树
游戏开发必备的7大技术体系,涵盖从Unity/Unreal引擎应用、C/C#编程范式到图形渲染管线构建等核心技术,特别剖析MMO游戏开发中的网络安全架构设计要点。通过2023年某头部游戏公司DDoS攻击事件,揭示实时防御策略与合规审计的关键作用。一、游戏…...
Execl 最佳字体和大小推荐[特殊字符]
文章目录 ✅ **通用推荐字体与字号**🔤 **字体说明**📊 场景推荐📁 办公文档(如财务报表、周报等)📈 数据可视表格📋 打印友好 🌐 多语言场景(中英文混排) ✅…...
JavaScript学习教程,从入门到精通,Ajax与Node.js Web服务器开发全面指南(24)
Ajax与Node.js Web服务器开发全面指南 一、初识Ajax 1.1 Ajax基本概念 语法知识点: Ajax (Asynchronous JavaScript and XML) 是一种无需重新加载整个网页的情况下,能够更新部分网页的技术核心对象:XMLHttpRequest工作原理: 创…...
VR 全景看车的独特优势
全方位沉浸式体验 VR 全景看车最显著的优势,就是为用户带来了全方位的沉浸式体验。通过 VR 技术,用户仿佛置身于真实的汽车展厅或试驾场景之中,能够 360 度无死角地观察车辆的外观、内饰、细节等各个方面 。无论是车辆的整体造型࿰…...
Kotlin高阶函数 vs Lambda表达式:关键区别与协作关系
先说结论: ✅ 高阶函数既可以用 Lambda 表达式,也可以用函数引用! 在 Kotlin 中,高阶函数(Higher-Order Function)和 Lambda 表达式密切相关,但它们是两个不同的概念: ✅ 简单理解…...
SQL技术终极指南:从内核原理到超大规模应用
一、DDL核心应用场景与最佳实践 1.1 表结构设计场景矩阵 业务场景核心语法要素典型实现案例电商用户画像JSON字段虚拟列索引CREATE TABLE users (id INT, profile JSON, AS (profile->>$.age) VIRTUAL, INDEX idx_age((profile->>$.age)))物联网时序数据分区表压…...