当前位置: 首页 > news >正文

软件架构师常用的软件工具有哪些

软件架构师的工作离不开多种工具的支撑,主要包括 建模与设计工具、文档与协作平台、代码质量与静态分析工具、性能与监控工具、DevOps 工具链、架构可视化与管理平台 等。其中,建模与设计工具 是架构师最核心的武器,能够帮助其从业务抽象到技术实现构建可理解、可复用、可落地的技术蓝图。正如《架构整洁之道》作者 Robert C. Martin 所言:“架构的价值不在于它是否美观,而在于它是否可以指导软件的演进。”

一、建模与设计工具:构建逻辑与物理蓝图

架构师的首要职责是将复杂的业务需求抽象成可实现的技术模型,建模与设计工具便是这一过程的得力助手。通过类图、组件图、部署图、时序图等形式化表达,架构师可以向团队清晰传达系统结构和演进路线。

常用工具包括:

  • Draw.io(diagrams.net):开源免费的图表绘制工具,支持UML、流程图、网络拓扑图等类型,支持本地或云端保存,适用于快速建模和文档嵌入。
  • Lucidchart:具备团队协作、实时编辑、模板丰富等优势,特别适用于远程分布式团队架构同步场景。
  • Visual ParadigmEnterprise Architect:适合深入建模需求的专业团队,支持完整的UML建模规范、数据建模、流程建模、用例分析等,功能强大但学习曲线较陡。

使用这类工具不仅有助于清晰表达架构意图,也为未来的系统维护与扩展奠定了坚实的结构基础。

二、架构文档与协作平台:知识沉淀与传播

架构师不仅是系统设计者,更是组织技术知识的沉淀者。良好的文档平台能够帮助团队记录架构决策、技术选型、演进路径,并将个人经验转化为组织资产。

推荐工具:

  • pingcode:支持结构化页面、模板创建、版本控制和团队协作,适合建立组织级架构Wiki。
  • Notion :适合灵活组织、知识卡片化管理,特别适用于初创团队或文档意识初建阶段。
  • HackMD、Typora + Git:适合使用 Markdown 规范书写文档,并通过 Git 版本管理实现团队共享。

此外,应推行 ADR(Architecture Decision Record)模板制度,将每一项重大架构决策以标准结构记录,并维护在统一文档平台中,提升架构知识复用与决策透明度。

三、代码质量与静态分析工具:守住架构底线

再优秀的架构设计,如果在代码实现阶段无法落地或持续偏离,就失去了价值。架构师需要通过静态分析工具保障代码符合架构预期、避免技术债务积累。

主流工具包括:

  • SonarQube:支持Java、Python、JS等多语言,检测重复代码、复杂度过高函数、不安全调用、空指针风险等,生成全面质量报表。
  • ArchUnit(Java 专用):可通过代码校验类之间的依赖关系、模块边界,验证架构设计是否在实施过程中被破坏。
  • CodeScene:通过 Git 提交记录构建代码热力图,识别高风险、频繁修改区域,提醒架构演进方向。

这些工具为“架构设计-代码实现”之间架起质量控制的桥梁,是持续演进型架构不可或缺的保障工具。

四、系统监控与可观测性平台:保障系统稳定运行

架构师不仅设计系统,更要对系统运行状态、性能瓶颈、资源异常有清晰掌握。现代系统强调可观测性(Observability),即从日志(Logs)、指标(Metrics)、追踪(Traces)三大维度实现运行数据的可视化。

核心工具包括:

  • Prometheus + Grafana:采集系统指标如CPU、内存、QPS、延迟等,结合 Grafana 绘制看板,适合自建部署型团队。
  • JaegerOpenTelemetry:跟踪微服务调用链,帮助定位性能瓶颈与分布式事务问题。
  • New Relic、Datadog、阿里ARMS:SaaS 型APM平台,支持全链路追踪、告警策略、日志聚合、智能预警等能力,适用于大中型企业。

架构师可通过构建指标体系,如请求成功率、错误率、平均响应时间、系统可用性等核心指标,指导系统优化与容量评估。

五、架构可视化与治理工具:统一架构视图

在企业级复杂系统中,架构师需要维护跨团队、多系统、多阶段的架构蓝图。传统图纸式架构已无法满足演进式开发与敏捷协作的需求。

推荐工具:

  • Structurizr:支持将架构以代码方式定义,通过 C4 模型构建不同层级的视图,实现架构一致性与自动化更新。
  • LeanIX、Sparx EA、MEGA HOPEX:支持企业架构(EA)治理、IT资产目录构建、依赖关系分析等,是大型组织架构师的信息基座。
  • PingCode 架构图模块:适用于研发团队统一系统结构管理、快速标注接口与服务关系,实现研发与架构联动更新。

这些平台帮助架构师“看清全貌”,同时也为团队提供了对技术系统的透明视角。

六、DevOps 工具链:保障交付与架构一致性

架构的落地能力不止在纸上,而在于持续可交付。架构师需规划与设计 DevOps 工具链,确保从设计到部署的链条一致。

常用工具包括:

  • Docker:实现一次构建、处处运行,是现代微服务的基础。
  • Kubernetes:通过服务编排与自动伸缩提升系统弹性与故障恢复能力。
  • GitLab CI/CDJenkins、GitHub Actions:构建测试与交付流水线,实现持续集成、持续部署。
  • Terraform、Ansible、Helm:进行基础设施即代码与服务配置模板化,确保架构环境的一致性。

构建 DevOps 流水线,不仅提高部署效率,更提升系统发布可靠性,是架构治理中重要一环。

七、API 网关与接口治理工具

接口是系统间通信的桥梁。在微服务体系下,API 的数量激增,架构师必须通过网关进行治理。

工具包括:

  • KongApigee:提供统一接入、身份认证、限流、安全审计等功能,是接口管理的首选。
  • SwaggerPostman:用于生成 OpenAPI 文档、接口 Mock、测试调试,便于前后端协作。
  • API7、阿里云API网关:国内高性能网关产品,适合在大型业务中作为统一接口管控平台。

合理治理 API 可避免版本混乱、接口爆炸、权限滥用等问题,为系统提供稳固通信机制。

八、测试工具:保障架构正确性与可演进性

架构是否稳健,在于其能否经受住迭代变更下的功能与性能验证。

关键测试工具包括:

  • 单元测试:JUnit、PyTest、Mocha 等是语言级测试基础
  • 接口测试:Postman、Rest Assured、Apifox 支持自动化接口验证与断言
  • 性能测试:Gatling、JMeter、Locust 可模拟高并发负载进行性能评估
  • 契约测试:Pact 支持服务间接口契约校验,提升微服务协作稳定性

架构师需参与测试策略制定,明确哪些模块需重点测试、哪些场景需回归保障。

九、数据流与依赖分析工具

在数据驱动架构与数仓系统中,数据流的透明度直接影响架构决策。推荐工具:

  • Apache Atlas:支持元数据管理、数据血缘可视化,是数据架构师的重要平台。
  • Amundsen:由Lyft开源,构建数据资产目录,帮助用户快速定位数据表、字段、责任人等。
  • Graphviz、Neo4j:用于构建数据/系统间的图模型,实现可视化依赖分析与知识网络抽象。

通过这些工具,架构师可以识别数据冗余、风险数据源、依赖环节,为数据质量与架构演进提供依据。

十、架构评审与技术选型辅助工具

每一次架构设计或重大技术引入,都应通过制度化流程进行评审。架构师可借助如下工具提升评审效率与决策质量:

  • ADR 模板(Architecture Decision Record):将决策背景、替代方案、最终选择、后续影响等标准化记录,形成可追溯的决策链。
  • Tech Radar 模型:分类记录团队在“试用、采用、淘汰”等阶段的技术组件,可用 Zalando Tech Radar 工具自建团队雷达。
  • Google Docs、Miro、Whimsical、PingCode评审模块:进行评审会协作、头脑风暴、可视化建模、异地团队同步。

系统性构建架构评审流程,是组织架构能力沉淀与技术选型决策透明化的基础。

常见问答

Q1:软件架构师一天主要使用哪些工具?

取决于职责深度,但多数架构师会频繁使用 Confluence 记录设计、Lucidchart 绘图表达、Prometheus 监控分析、SonarQube 质量评估,Figma 协同产品。

Q2:是否必须会写代码才能当架构师?

必须。架构不是抽象空谈,代码是其最终落地表现。优秀架构师不仅懂设计,还要有能力在关键模块手写原型或评审实现。

Q4:国内有哪些实用架构工具推荐?

国产生态正快速崛起,推荐工具包括 PingCode(架构图/文档/评审)、腾讯蓝鲸、阿里云ARMS、华为DevCloud 等,均在大型研发团队实践中表现优异。

架构师不仅要会“画图设计”,更需懂“落地协同”。合理工具组合,是将架构愿景转为实际生产力的第一步。

相关文章:

软件架构师常用的软件工具有哪些

软件架构师的工作离不开多种工具的支撑,主要包括 建模与设计工具、文档与协作平台、代码质量与静态分析工具、性能与监控工具、DevOps 工具链、架构可视化与管理平台 等。其中,建模与设计工具 是架构师最核心的武器,能够帮助其从业务抽象到技…...

rl中,GRPO损失函数详解。

文章目录 **一、GRPO损失函数的设计背景****二、代码逐行解析****三、关键组件详解****1. 对数概率与KL散度计算****2. 优势值与策略梯度****3. 掩码与平均损失****四、训练动态与调参建议**在TRL(Transformer Reinforcement Learning)库中,GRPO(Group Relative Policy Opt…...

奇安信春招面试题

奇安信面试真题,以下是5道具有代表性的经典技术面试题及其解析,覆盖网络安全、渗透测试、安全架构设计等核心领域。 《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.…...

MineWorld,微软研究院开源的实时交互式世界模型

MineWorld是什么 MineWorld是微软研究院开发并开源的一个基于《我的世界》(Minecraft)的实时互动世界模型。该模型采用了视觉-动作自回归Transformer架构,将游戏场景和玩家动作转化为离散的token ID,并通过下一个token的预测进行…...

Nginx RTMP配置存储位置

window: 支持本地磁盘和远程网络位置 配置文件如下 worker_processes 1;events {worker_connections 1024; }#RTMP服务 rtmp {server { listen 1935; #监听端口chunk_size 4096; #数据传输块大小application my_live { # 创建rtmp应用hlslive on; # 当路径匹…...

JVM理解(通俗易懂)

虽然网上有很多关于JVM的教程,但是都天花乱坠,很多都是一上来就JVM内存模型、JVM双亲委派等等,(可能我比较菜看不懂)。于是我自己决定写一篇能看懂的文章~如果有看不懂我就自己百度,大家有什么疑问也可以评论区交流~ 欢迎指点我的Error~ JVM概念 JVM大家都知道,就Ja…...

python三维矩阵的维度

matrix_3x3x3 np.array([[[ 8.35, 16.72, 17.46],[16.72, 33.49, 34.97],[17.46, 34.97, 36.51]],[[16.72, 33.49, 34.97],[33.49, 67.09, 70.05],[34.97, 70.05, 73.13]],[[17.46, 34.97, 36.51],[34.97, 70.05, 73.13],[36.51, 73.13, 76.35]] ]) 例如这样的三维矩阵&#…...

HarmonyOS 是 Android 套壳嘛?

文章目录 HarmonyOS 是 Android 套壳吗?技术视角的深度解析一、核心结论二、技术对比:从底层到应用层1. 内核与基础架构2. 应用开发与运行机制3. 生态与应用场景 三、常见误解的澄清误解 1:“HarmonyOS 使用 Android 应用,所以是套…...

【Java面试笔记:基础】10.如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

1. 保证集合线程安全的方式 传统同步容器:如 Hashtable 和 Vector,通过在方法上加 synchronized 关键字实现线程安全,但性能较低。同步包装器:通过 Collections.synchronizedMap 等方法将普通集合包装成线程安全的集合,但仍然使用粗粒度的锁,性能不佳。List<String>…...

【Amazing晶焱科技高速 CAN Bus 传输与 TVS/ESD/EOS 保护,将是车用电子的生死关键无标题】

台北国际车用电子展是亚洲地区重量级的车用电子科技盛会&#xff0c;聚焦于 ADAS、电动车动力系统、智慧座舱、人机界面、车联网等领域。各大车厂与 Tier 1 供应链无不摩拳擦掌&#xff0c;推出最新技术与创新解决方案。 而今年&#xff0c;“智慧座舱” 无疑将成为全场焦点&am…...

电控---DMP库

一、DMP库的本质与核心定位 DMP库是为Invensense&#xff08;现TDK&#xff09;系列传感器&#xff08;如MPU6050、MPU9250等&#xff09;内置的数字运动处理器&#xff08;DMP&#xff09;硬件模块提供的软件接口层。其核心目标是&#xff1a; 抽象硬件操作&#xff1a;将复…...

YOLO数据处理

YOLO&#xff08;You Only Look Once&#xff09;的数据处理流程是为了解决目标检测领域的核心挑战&#xff0c;核心目标是为模型训练和推理提供高效、规范化的数据输入。其设计方法系统性地解决了以下关键问题&#xff0c;并对应发展了成熟的技术方案&#xff1a; 一、解决的问…...

Linux实现网络计数器

1.TcpServer.hpp文件 类TcpServer的私有成员变量有端口号&#xff0c;指向类Socket对象的指针&#xff0c;布尔值表示是否运行&#xff0c;以及回调函数&#xff0c;ioservice_t是表示参数为指向Socket对象的指针和InetAddr对象的函数&#xff0c;TcpServer类的构造函数接收端…...

数据分析:用Excel做周报

目录 1.初始模板 ​编辑 2.填充数据 2.1 日期以及表头 2.2 数据验证 2.3 计算数据填充 2.3.1 灵活计算 2.3.2 单独计算 2.3.3 总计 2.4 数据格式 2.5 周累计 2.6 周环比 2.7 业务进度 3 美化 1.初始模板 2.填充数据 2.1 日期以及表头 结果指标有以下这些&#…...

初阶数据结构--排序算法(全解析!!!)

排序 1. 排序的概念 排序&#xff1a;所谓排序,就是使一串记录&#xff0c;按照其中的某个或某些些关键字的大小&#xff0c;递增或递减的排列起来的操作。 2. 常见的排序算法 3. 实现常见的排序算法 以下排序算法均是以排升序为示例。 3.1 插入排序 基本思想&#xff1a;…...

SpringCloud 微服务复习笔记

文章目录 微服务概述单体架构微服务架构 微服务拆分微服务拆分原则拆分实战第一步&#xff1a;创建一个新工程第二步&#xff1a;创建对应模块第三步&#xff1a;引入依赖第四步&#xff1a;被配置文件拷贝过来第五步&#xff1a;把对应的东西全部拷过来第六步&#xff1a;创建…...

加油站小程序实战教程14会员充值页面搭建

目录 1 原型2 搭建充值金额选择功能3 搭建金额输入4 搭建支付方式5 充值按钮最终的效果 上一篇我们介绍了充值规则的后台功能&#xff0c;有了基础的规则&#xff0c;在会员充值页面就可以显示具体的充值规则。本篇我们介绍一下会员充值的开发过程。 1 原型 充值页面我们是分为…...

内卷的中国智驾,合资品牌如何弯道超车?

作者 |德新 编辑 |王博 上海车展前夕&#xff0c;一汽丰田举办重磅车型bZ5的技术发布会&#xff0c;脱口秀演员庞博透露了这款车型的一大重要特性&#xff0c;其搭载来自Momenta的智能辅助驾驶系统行驶里程已经超过20亿公里。 携手中国科技公司提高车型智能化的属性&#xff…...

【go】go run-gcflags常用参数归纳,go逃逸分析执行语句,go返回局部变量指针是安全的

go官方参考文档&#xff1a; https://pkg.go.dev/cmd/compile 基本语法 go run 命令用来编译并运行Go程序&#xff0c;-gcflags 后面可以跟一系列的编译选项&#xff0c;多个选项之间用空格分隔。基本语法如下&#xff1a; go run -gcflags "<flags>" main.…...

数据库11(触发器)

触发器有三种类型&#xff0c;包括删除触发器&#xff0c;更新触发器&#xff0c;添加触发器 触发器的作用是&#xff1a;当某个表发生某个操作时&#xff0c;自动触发触发器&#xff0c;进行触发器规定的操作 触发器语句 create trigger tname --创建触发器 on aa --创建在表…...

十大物联网平台-物联网十大品牌

物联网十大品牌及平台解析 物联网&#xff08;IoT&#xff09;作为当下极具影响力的技术&#xff0c;正逐步渗透至社会各领域&#xff0c;为人们生活与社会发展带来诸多便利与变革。如今&#xff0c;众多企业投身于物联网行业&#xff0c;致力于推动其发展。以下是对物联网相关…...

心智模式VS系统思考

很多人常说&#xff0c;“改变自己&#xff0c;从改变思维开始。”但事实上&#xff0c;打破一个人的心智模式&#xff0c;远比想象中要困难得多。我们的思维方式、行为习惯&#xff0c;甚至是对世界的认知&#xff0c;往往是多年积累下来的产物。那些曾经的经历、长期的学习与…...

QT 打包安装程序【windeployqt.exe】报错c000007d原因:Conda巨坑

一、命令行执行命令 E:\Project\GNCGC\Bin\Win32\Vc22\RS422地检>E:\SoftWare\Qt\5.14.2\msvc2017\bin\windeployqt.exe CGC170.exe二、安装了Conda的朋友&#xff0c;巨坑 无语&#xff0c;E:\SoftWare\Qt\5.14.2\msvc2017\bin\windeployqt.exe 优先把Conda环境关联的Qt动…...

Vue3祖先后代组件数据双向同步实现方法

在 Vue3 中实现祖先后代组件的双向数据同步&#xff0c;可以通过组合式 API 的 provide/inject 配合响应式数据实现。以下是两种常见实现方案&#xff1a; 方案一&#xff1a;共享响应式对象 方法 html <!-- 祖先组件 --> <script setup> import { ref, provide…...

OpenBayes 一周速览|EasyControl 高效控制 DiT 架构,助力吉卜力风图像一键生成;TripoSG 单图秒变高保真 3D 模型

公共资源速递 10 个教程&#xff1a; * 一键部署 R1-OneVision * UNO&#xff1a;通用定制化图像生成 * TripoSG&#xff1a;单图秒变高保真 3D * 使用 VASP 进行机器学习力场训练 * InfiniteYou 高保真图像生成 Demo * VenusFactory 蛋白质工程设计平台 * Qwen2.5-0mni…...

服务器-conda下载速度慢-国内源

文章目录 前言一、解决问题&#xff1a;使用国内conda镜像下载&#xff08;差&#xff09;二、解决问题&#xff1a;使用pip下载(优)总结 前言 conda频道中有无效频道导致下载失败 一、解决问题&#xff1a;使用国内conda镜像下载&#xff08;差&#xff09; 步骤 1&#xff…...

python的pip download命令-2

当然可以,下面我详细解释一下 pip download 的作用、用法和技术原理。 🧠 一句话总结: pip download 是 pip 提供的一个命令,用来下载 Python 包及其依赖项的安装文件,但不会安装。 🔍 和 pip install 的区别: 命令作用是否安装是否联网典型用途pip install安装指定包…...

【Java设计模式及实践学习-第4章节-结构型模式】

第4章节-结构型模式 笔记记录 1. 适配器模式2. 代理模式3. 装饰器模式4. 桥接模式5. 组合模式6. 外观模式7. 享元模式8. 总结 1. 适配器模式 2. 代理模式 3. 装饰器模式 4. 桥接模式 5. 组合模式 6. 外观模式 7. 享元模式 Java语言中的String字符串就使用了享元模式&…...

python:mido 提取 midi文件中某一音轨的音乐数据

pip install mido 使用 mido库可以方便地处理 MIDI 文件&#xff0c;提取其中音轨的音乐数据。 1.下面的程序会读取指定的 MIDI 文件&#xff0c;并提取指定编号音轨的音乐数据&#xff0c;主要包括音符事件等信息。 编写 mido_extract.py 如下 # -*- coding: utf-8 -*- &…...

将输入帧上下文打包到下一个帧的预测模型中用于视频生成

Paper Title: Packing Input Frame Context in Next-Frame Prediction Models for Video Generation 论文发布于2025年4月17日 Abstract部分 在这篇论文中,FramePack是一种新提出的网络结构,旨在解决视频生成中的两个主要问题:遗忘和漂移。 具体来说,遗忘指的是在生成视…...

第六章:Multi-Backend Configuration

Chapter 6: Multi-Backend Configuration 从交响乐团到变形金刚&#xff1a;如何让代理适应不同环境&#xff1f; 在上一章任务工作流编排&#xff0c;我们学会了如何像指挥家一样协调任务。但就像变形金刚能切换不同形态应对环境变化一样&#xff0c;你的AI代理也需要能灵活切…...

tomcat远程Debug

tomcat远程Debug -- /bin目录下 catalina.bat文件下加一行 SET CATALINA_OPTS-server -Xdebug -Xnoagent -Djava.compilerNONE -Xrunjdwp:transportdt_socket,servery,suspendn,address8088idea端配置如下...

Vue3:component(组件:uniapp版本)

目录 一、基本概述二、基本使用三、插槽 一、基本概述 在项目的开发过程中&#xff0c;页面上井场会出现一些通用的内容&#xff0c;例如头部的导航栏&#xff0c;如果我们每一个页面都去写一遍&#xff0c;那实在是太繁琐了&#xff0c;所以&#xff0c;我们使用组件来解决这…...

rust编程学习(三):8大容器类型

1简介 rust标准库std::collections也提供了像C STL库中的容器&#xff0c;分为4种通用的容器&#xff0c;8种类型&#xff0c;如下表所示。 线性容器类型&#xff1a; 名称简介Vec<T>内存空间连续&#xff0c;可变长度的数组&#xff0c;类似于C中Vector<T>容器…...

前端中阻止事件冒泡的几种方法

在 JavaScript 前端开发中&#xff0c;阻止事件冒泡是处理 DOM 事件时的常见需求。以下是几种阻止事件冒泡的方法&#xff1a; 1. 使用 event.stopPropagation() 这是最常用的阻止事件冒泡的方法。 element.addEventListener(click, function(event) {event.stopPropagation…...

ShenNiusModularity项目源码学习(20:ShenNius.Admin.Mvc项目分析-5)

ShenNiusModularity项目的系统管理模块主要用于配置系统的用户、角色、权限、基础数据等信息&#xff0c;上篇文章中学习的日志列表页面相对独立&#xff0c;而后面几个页面之间存在依赖关系&#xff0c;如角色页面依赖菜单页面定义菜单列表以便配置角色的权限&#xff0c;用户…...

前端js需要连接后端c#的wss服务

背景 前端js需要连接后端wss服务 前端&#xff1a;js 后端&#xff1a;c# - 控制台搭建wss服务器 步骤1 wss需要ssl认证&#xff0c;所以需要个证书&#xff0c;随便找一台linux的服务器&#xff08;windows的话&#xff0c;自己安装下openssl即可&#xff09;&#xff0c;…...

MAGI-1自回归式大规模视频生成

1. 关于 MAGI-1 提出 MAGI-1——一种世界模型&#xff08;world model&#xff09;&#xff0c;通过自回归方式预测一系列视频块&#xff08;chunk&#xff0c;固定长度的连续帧片段&#xff09;来生成视频。 模型被训练为在时间维度上单调递增噪声的条件下对每个块进行去噪&a…...

深入剖析TCP协议(内容一):从OSI与TCP/IP网络模型到三次握手、四次挥手、状态管理、性能优化及Linux内核源码实现的全面技术指南

文章目录 TCP网络模型OSI参考模型TCP/IP五层模型 TCP状态TIME_WAIT 连接过程TCP三次握手TCP四次挥手 TCP优化TCP三次握手优化TCP四次挥手优化TCP数据传输优化 TCP TCP是面向连接的、可靠的、基于字节流的传输层通信协议&#xff1a; 面向连接&#xff1a;一定是一对一才能连接…...

基于deepseek的模型微调

使用 DeepSeek 模型(如 DeepSeek-VL、DeepSeek-Coder、DeepSeek-LLM)进行微调,可以分为几个关键步骤,下面以 DeepSeek-LLM 为例说明,适用于 Q&A、RAG、聊天机器人等方向的应用。 一、准备工作 1. 环境依赖 建议使用 transformers + accelerate 或 LoRA 等轻量微调方…...

node.js 实战——(path模块 知识点学习)

path 模块 提供了操作路径的功能 说明path. resolve拼接规范的绝对路径path. sep获取操作系统的路径分隔符path. parse解析路径并返回对象path. basename获取路径的基础名称path. dirname获取路径的目录名path. extname获得路径的扩展名 resolve 拼接规范的绝对路径 const…...

【k8s】docker、k8s、虚拟机的区别以及使用场景

一、Docker &#xff08;一&#xff09;概念 Docker 是一个开源的应用容器引擎&#xff0c;允许开发者将应用及其依赖打包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可实现虚拟化。 &#xff08;二&#xff09;隔离性 Docker 的隔离…...

校园外卖服务系统的设计与实现(代码+数据库+LW)

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;外卖信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…...

Windows上使用Python 3.10结合Appium-实现APP自动化

一、准备工作 所需条件&#xff1a; Windows 10/11 操作系统 Python 3.10.x&#xff08;建议3.10.9&#xff09; Java JDK 8 或以上&#xff08;建议JDK 8u301&#xff09; Node.js 14.x 或以上&#xff08;建议14.21.3&#xff09; Appium Server 1.22.x 或以上&#xff08;建…...

【计算机视觉】CV项目实战- SiamMask 单阶段分割跟踪器

SiamMask 单阶段分割跟踪器 一、项目概述与技术原理1.1 核心技术创新1.2 性能优势 二、实战环境搭建2.1 系统要求与依赖安装2.2 项目编译与配置 三、模型推理实战3.1 快速体验Demo3.2 常见运行时错误处理 四、模型训练指南4.1 数据准备流程4.2 训练执行与监控 五、高级应用与优…...

计算机视觉基础

1. 数字图像的基本概念 像素&#xff08;Pixel&#xff09;&#xff1a;图像的最小构成单元&#xff0c;每个像素存储亮度或颜色信息。 灰度图像&#xff1a;每个像素是 0&#xff08;黑&#xff09;~255&#xff08;白&#xff09; 的标量值&#xff08;8位无符号整数&#x…...

系统编程_进程间通信机制_消息队列与共享内存

消息队列概述 消息有类型&#xff1a;每条消息都有一个类型&#xff0c;就像每封信都有一个标签&#xff0c;方便分类和查找。消息有格式&#xff1a;消息的内容有固定的格式&#xff0c;就像每封信都有固定的信纸格式。随机查询&#xff1a;你可以按类型读取消息&#xff0c;…...

一种免费的离线ocr-汉字识别率100%

一般我们手机中常用的ocr库有&#xff0c;Tesseract&#xff0c;paddle ocr&#xff0c;EasyOCR&#xff0c; ocrLite等等&#xff0c;这些ocr库中百度的paddle ocr效果最好&#xff0c;但是再好的效果也会偶尔识别错几个汉字。当我们在做自动化脚本过程中&#xff0c;如果识别…...

Maven 工程中的pom.xml 文件(图文)

基本信息 单工程项目【pom.xml文件】中最基本的信息。 依赖引入 可以在Maven 中央仓库查找所需依赖&#xff1a;【直达&#xff1a;https://mvnrepository.com/】。 在【dependencies】标签中添加所需依赖。 <dependency><groupId>com.baomidou</groupId&g…...

图像预处理-模板匹配

就是用模板图在目标图像中不断的滑动比较&#xff0c;通过某种比较方法来判断是否匹配成功,找到模板图所在的位置。 - 不会有边缘填充。 - 类似于卷积&#xff0c;滑动比较&#xff0c;挨个比较象素。 - 返回结果res大小是&#xff1a;目标图大小-模板图大小1&#xff08;H-…...