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

软考高级-系统架构设计师 案例题-软件架构设计

文章目录

  • 软件架构设计
      • 质量属性效用树,质量属性判断
      • 必背概念
      • 架构风格对比
      • MVC架构
      • J2EE四层结构
      • 面向服务架构SOA
      • 企业服务总线ESB
      • 历年真题
        • 【问题1】 (12分)
        • 【问题2】(13分)
      • 参考答案
      • 历年真题
        • 【问题1】(12分)
        • 【问题2】(13分)

软件架构设计

质量属性效用树,质量属性判断

1、性能
 指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。
2、可靠性
 是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力如MTTF、MTBF。设计策略:心跳、Ping/Echo、冗余、选举。
3、可用性
 是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间。设计策略:心跳、Ping/Echo、冗余、选举
4、安全性
 是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性设计策略:入侵检测、用户认证、用户授权、追踪审计。
5、可修改性
 指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。设计策略:接口-实现分类、抽象、信息隐藏。
6、功能性
 是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
7、可变性
 指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。
8、互操作性
 作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构。

必背概念

  • 软件架构风格
     是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
  • 架构风险
     是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
  • 风险点与非风险点
     不是以标准专业术语形式出现的,只是一个常规概念,即可能引起风险的因素,可称为风险点。某个做法如果有隐患,有可能导致一些问题,则为风险点;而如果某件事是可行的可接受的,则为非风险点。
  • 敏感点
     是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
  • 权衡点
     是影响多个质量属性的特性,是多个质量属性的敏感点。

架构风格对比

架构风格主要特点优点缺点适合领域
管道-过滤器过滤器相对独立功能模块复用;可维护性和可扩展性较强;具有并发性;模块独立性高。不适于交互性强的应用,对于存在关系的数据流必须进行协调。系统可划分清晰的模块;模块相对独立;有清晰的模块接口。
面向对象力争实现问题空间和软件系统空间结构的一致性。高度模块性;实现封装;代码共享灵活;易维护;可扩充性好。增加了对象之间的依赖关系多种领域
事件驱动系统由若干子系统构成且称为一个整体;系统有统一的目标;子系统有主从之分;每一个子系统有自己的事件收集和处理机制。适合描写系统组;容易实现并发处理和多任务;可扩展性好;具有类层次结构;简化代码;因为树型结构所以削弱了对系统计算的控制能力;各个对象的逻辑关系复杂。一个系统对外部的表现可以从它对事件的处理表征出来。
分层风格各个层次的组件形成不同功能级别的虚拟机;多层相互协同工作,而且实现透明支持系统设计过程中的逐级抽象;可扩展性好;支持软件复用。不同层次之间耦合度高的系统很难实现。适合功能层次的抽象和相互之间低耦合的系统。
数据共享风格采用两个常用构件中央数据单元和一些相对独立的组件集合。中央数据单元实现了数据的集中,以数据为中心。适合于特定领域适合于专家系统等人工智能领域问题的求解
解释器风格系统核心是虚拟机可以用多种操作来解释一个句子,灵活应对自定义场景。适合于特定领域适合于模式匹配系统与语言编译器。
闭环控制风格通过不断的测量被控对象,认识和掌握被控对象;将控制理论引入体系结构构建。将控制理论引入到计算机软件体系结构中。适合于特定领域该系统中一定存在有目标的作用、信息处理闭环控制过程。

MVC架构

 MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了三个核心模块:控制器、模型、视图。
(1)控制器(Controller)
 是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
(2)模型(Model)
 是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。模型表示业务数据和业务逻辑。
(3)视图 (View)
 是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
 MVC分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
 MVC分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑
在这里插入图片描述

J2EE四层结构

J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件被分别部署到不同的机器中。四层结构:
在这里插入图片描述

  • 客户层组件:J2EE应用程序可以是基于web方式的,也可以是基于传统方式的静态的HTML(标准通用标记语言下的一个应用)页面和Applets是客户层组件
  • web层组件:J2EEweb层组件可以是JSP页面或Servlet。
  • 业务层组件:业务层代码的逻辑用来满足特定领域的业务逻辑处理。
  • 信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的遗留信息系统.例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。

JSP+Servlet+JavaBean+DAO

  • JSP:用于显示、收集数据的部分。作为MVC中的视图V
  • Servlet:作为业务逻辑层,用于处理复杂的业务逻辑,如验证数据、实例化JavaBean、调用DAO连接数据库等。作为MVC中的控制器C。在其中会调用Service方法处理服务。
  • JavaBean:用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等。
  • DAO:用于连接数据库及进行数据库的操作如:查询、删除、更改等。
    DAO与JavaBean合在一起为MVC中的模型M
  • 基本流程:JSP发一个数据到servlet,servlet收到后做下解析再根据数据调用相应的service去服务,service如果有要调用数据库就通过DAO跟数据库交互,使用javaBean完成封装,返回结果给servlet,servlet再返回给JSP。

面向服务架构SOA

 面向服务的架构SOA:SOA是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务之间通过网络进行调用。

企业服务总线ESB

 企业服务总线ESB:简单来说是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通。
ESB特点:
1、SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
2、描述服务的元数据和服务注册管理
3、在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等;
4、发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。
ESB的主要功能:
(1)服务位置透明性;
(2)传输协议转换;
(3)消息格式转换;
(4)消息路由;
(5)消息增强;
(6)安全性;
(7)监控与管理。

历年真题

请详细阅读有关软件架构评估方面的说明,在答题纸上回答问题1至问题2。
 【说明】某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性。公司研发部门在需求分析的基础上,给出了在线交易系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:
(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;
(b)用户的信用卡支付必须保证9999%的安全性:
(c)系统升级后用户名要求至少包含8个字符;
(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;
(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能;
(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;
(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;
(h)需要在30人月内为系统添加公司新购买的事务处理中间件;
(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种
设计会导致支付部分代码的修改,影响系统的可修改性;
(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;
(k)用户信息数据库授权必须保证99.999%可用;
(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成;
(m)系统需要为后端工程师提供远程调试接口,并支持远程调试。

【问题1】 (12分)

 在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图4-1中(1)、(2)空白处;并选择题干描述的 (a) ~ (m),填入 (3) ~(6)空白处,完成该系统的效用树。
在这里插入图片描述

【问题2】(13分)

 在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。

参考答案

问题一:(1)性能 (2)可修改性 (3)e  (4)j  (5)i  (6)k
问题二:系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。风险点:(i);敏感点:(g);权衡点:(f)v纠正,g是风险点,i是敏感点。

历年真题

阅读以下关于软件架构风格的说明,在答题纸上回答问题1和问题2。
 【说明】某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下3项核心需求:
(1)集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。
(2)集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。
(3)在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。
 针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。

【问题1】(12分)

 请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。

参考答案:
 软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
 从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。
 从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。
 从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。

【问题2】(13分)

 在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。
参考答案:
 为了满足需求(2),应该采用解释器架构风格。具体来说,需要:①为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;②编写解释器对该语言进行解释;③生成对应的脚本语言程序。
 为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。

相关文章:

软考高级-系统架构设计师 案例题-软件架构设计

文章目录 软件架构设计质量属性效用树,质量属性判断必背概念架构风格对比MVC架构J2EE四层结构面向服务架构SOA企业服务总线ESB历年真题【问题1】 (12分)【问题2】(13分) 参考答案历年真题【问题1】(12分)【…...

计算机网络笔记-分组交换网中的时延

一、分组交换网络中的四种时延类型 1. 排队时延 在队列中,当分组在链路上等着被传输时的时延为排队时延,一个分组的排队时延长度取决于该分组前方等待传输的分组数量,如果排队队列为空,且没有正在传输的分组那么该分组的排队时延…...

数据结构与算法-图论-复习2(差分约束,强连通分量,二分图,LCA,拓扑排序,欧拉路径和欧拉回路)

7. 差分约束 原理 差分约束系统是一种特殊的不等式组,形如 xi​−xj​≤c。可以将其转化为图论中的最短路或最长路问题。 最短路求最大值:当我们要找出满足所有不等式的最大解时,使用最短路算法。对于不等式 xi​−xj​≤c,可以…...

git强制更新本地分支

你的需求是希望 自动拉取所有远程分支,并且在分支间存在冲突时 自动覆盖本地内容(不保留差异)。以下是优化后的解决方案: 最终解决方案(全自动强制覆盖) git fetch --all && for branch in $(git …...

PH热榜 | 2025-04-09

1. EZsite AI 标语:构建能够秒级产生收入的人工智能应用。 介绍:EZsite AI 让任何人都能轻松创建专业的网站和应用,不需要编写代码。它自动保存您的数据库信息,内置的 AI 聊天机器人能帮助您捕获潜在客户,并且通过 A…...

进度管理__制订进度计划_资源平衡和资源平滑

本文讲解的资源平衡与资源平滑,是制订进度计划的工具与技术的第3项: 资源优化。 1. 资源平衡 资源平衡是为了在资源需求与资源供给之间取得平等, 根据资源制约因素对开始日期和完成日期进行调整的一种技术。 如果共享资源或关键资源只在特定…...

【力扣hot100题】(080)爬楼梯

让我们掌声恭迎动态规划的始祖—— 最基础的动态规划,原始方法是维护一个数组,每次记录到该阶梯的方案数量,每次的数量是到上一个阶梯的方案数量加上到上上一阶梯的方案数量,因为只有两种走法。 进阶可以优化空间复杂度&#xf…...

redis_exporter服务安装并启动

redis_exporter服务安装并启动 1、介绍2、下载redis_exporter3、解压缩文件4、启动redis_exporter服务 1、介绍 Redis Exporter 是 Prometheus 官方推荐的 Redis 监控数据导出工具,用于将 Redis 实例的性能指标暴露为 Prometheus 可抓取的格式。 2、下载redis_exp…...

Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践

以下是 Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践: 1. 核心注解与配置类 (1) 启动安全配置 // 启动Web安全配置(推荐方式) Configura…...

Spring Boot 3.x 下 Spring Security 的执行流程、核心类和原理详解,结合用户描述的关键点展开说明,并以表格总结

以下是 Spring Boot 3.x 下 Spring Security 的执行流程、核心类和原理详解,结合用户描述的关键点展开说明,并以表格总结: 1. Spring Security 核心原理 Spring Security 通过 Filter 链 实现安全控制,其核心流程如下&#xff1a…...

[leetcode]判断质数

一.判断质数 1.1 什么是质数 质数&#xff08;素数&#xff09;就是只可以被自己和1整除的数叫做素数/质数 1.2判断方法 #include<bits/stdc.h> using namespace std; bool isPrime(int num) { if(num < 1) { return false;//a number less of …...

【结肠息肉AI论文集】Cross-level Feature Aggregation Network for Polyp Segmentation

标注&#xff1a;同样是一期结肠息肉论文写作评鉴 摘要 从结肠镜图像中准确分割息肉在结直肠癌的诊断和治疗中起着关键作用。尽管在息肉分割领域已经取得了一定的成效&#xff0c;但仍存在诸多挑战。息肉通常具有多种大小和形状&#xff0c;并且息肉与其周围区域之间没有明显…...

Redis缓存之预热、击穿、穿透、雪崩

面试切入点 缓存预热 什么是预热&#xff1f; mysql假如新增100条记录&#xff0c;一般默认以mysql为准作为底单数据&#xff0c;如何同步到redis(布隆过滤器)&#xff0c;这100条合法数据&#xff1f;&#xff1f; 为什么需要预热&#xff1f; mysql有100条新记录&#xff0…...

C++字符串复习

C字符串复习 前言 为了保证复习高效&#xff0c;以下不包括很简单的内容&#xff0c;例如cin。 C类型字符、字符串 输入方法 **char c getchar()**输入单个字符 string类型字符串 输入方法 getline(cin, str) 整行输入 常用方法 s.substr(pos, len)&#xff1a;截取字…...

centos7安装mysql5.7.44

一、下载 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 二、安装 1、解压 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 2、创建mysql用户组和用户 # 创建mysql用户组 groupadd mysql# 创建用户并添加到mysql用户组中 useradd -r -g m…...

内存分配中的堆(Memory Heap)详解

在计算机科学中&#xff0c;"堆"这个术语确实容易让人混淆&#xff0c;因为它同时用于描述两种完全不同的概念&#xff1a;数据结构中的堆和内存管理中的堆。上次我们讨论了数据结构中的堆&#xff0c;今天我将详细解释内存分配中的堆&#xff08;Memory Heap&#x…...

【大模型理论篇】关于生成式模型中联合分布概率学习必要性以及GPT是生成式模型的讨论

1. 背景 之前我们在《生成式模型与判别式模型对比(涉及VAE、CRF的数学原理详述)》以及《生成式模型算法原理深入浅出&#xff08;涉及Stable Diffusion、生成对抗网络、高斯混合模型、隐马尔可夫模型、朴素贝叶斯等算法原理分析及生成式模型解释&#xff09;》中&#xff0c;我…...

LeetCode738☞单调递增的数字

关联LeetCode题号738 本题特点 贪心&#xff0c;贪心在如果非单调递增&#xff0c;则想要保证数字整体最大&#xff0c;那低数位一定为9&#xff08;所有数字中最大的&#xff09; 本题思路 从后向前遍历&#xff0c;如果递增则 什么都不做如果非递增&#xff0c;增非递增位…...

本节课课堂总结

课堂总结&#xff1a; Spark运行架构&#xff1a; 运行架构&#xff1a; Spark 框架的核心是一个计算引擎&#xff0c;整体来说&#xff0c;它采用了标准 master-slave 的结构。 如下图所示&#xff0c;它展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master&…...

MyBatis中特殊符号处理总结

前言 MyBatis 是一款流行的Java持久层框架&#xff0c;广泛应用于各种类型的项目中。因为我们在日常代码 MyBatis 动态拼接语句时&#xff0c;会经常使用到 大于(>,>)、小于(<,<)、不等于(<>、!)操作符号。由于此符号包含了尖括号&#xff0c;而 MyBatis 使用…...

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解&#xff08;附渗透测试示例&#xff09; 一、DVWA靶场简介 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是专为网络安全学习者设计的漏洞演练平台&#xff0c;包含SQL注入、XSS、文件包含等10大Web漏洞模块&…...

若依前后端分离版本从mysql切换到postgresql数据库

一、修改依赖&#xff1a; 修改admin模块pom.xml中的依赖,屏蔽或删除mysql依赖&#xff0c;增加postgresql依赖。 <!-- Mysql驱动包 --> <!--<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> &l…...

【补题】Codeforces Round 974 (Div. 3) E. Rendez-vous de Marian et Robin

题意&#xff1a;给个图&#xff0c;两个人分别从点1和点n出发&#xff0c;问最早在哪个点可以相遇&#xff0c;其中某些点有马&#xff0c;骑上去之后可以在接下来剩余的时间内都可以将路程所需时间缩短一半。 关于题目数据见原题&#xff0c;这里说明太累了想偷懒Problem - 2…...

MySQL集群技术

当有数据时添加slave2 #从master节点备份数据 mysqldump -uroot -ptiminglee 1 > timinglee.sql 生产环境中备份时需要锁表&#xff0c;保证备份前后的数据一致 mysql> FLUSH TABLES WITH READ LOCK; 备份后再解锁 mysql> UNLOCK TABLES; mysqldump命令备份的数…...

Java 中的字节码

&#x1f50d; 什么是 Java 字节码&#xff08;Bytecode&#xff09;&#xff1f; 字节码是 Java 源码&#xff08;.java 文件&#xff09;被编译后生成的中间代码&#xff08;.class 文件&#xff09;&#xff0c;它不是机器码&#xff0c;而是一种 面向 JVM 的指令集。 可以…...

json 转 txt 用于 yolo 训练(可适用多边形标注框_python)

json 转 txt 用于 yolo 训练&#xff08;可适用多边形标注框_python&#xff09; import json import os import argparse from tqdm import tqdmdef convert_label_json(json_dir, save_dir, classes):json_paths os.listdir(json_dir)classes classes.split(,)for json_pa…...

SQL注入(SQL Injection)

目录 SQL注入(SQL Injection)是什么SQL注入的危害SQL注入的常见方式1. 经典注入(Error-Based Injection)2. 联合查询注入(Union-Based Injection)3. 时间盲注(Time-Based Blind Injection)4. 布尔盲注(Boolean-Based Blind Injection)5. 堆叠注入(Stacked Queries I…...

智慧厨房的秘密:当大模型遇见智能体

智慧厨房的秘密&#xff1a;当大模型遇见智能体 想象一下&#xff0c;一家餐厅里&#xff0c;顾客点了一份特别定制的菜肴。厨师不仅需要知道如何制作这道菜&#xff0c;还得根据当天的食材情况灵活调整配方&#xff0c;甚至考虑到顾客的口味偏好做出微调。这一切背后&#xf…...

IDEA遇到问题汇总

问题1&#xff1a;【异常】IDEA中报错&#xff1a;无效的目标发行版本 IDEA 报错&#xff1a;无效的源发行版-CSDN博客 【异常】IDEA中报错&#xff1a;无效的目标发行版本-CSDN博客 原因是&#xff1a;版本不兼容不一致&#xff0c;需要修改jdk、maven、以及目标字节码使之相一…...

状态管理组件Pinia 简介与底层原理 、Pinia 与其他状态管理库对比、Vue3 + Element Plus + Pinia 安装配置详解

一、Pinia 简介与底层原理 1. Pinia 简介 Pinia 是 Vue3 官方推荐的状态管理库&#xff0c;由 Vue 核心团队开发&#xff0c;旨在替代 Vue2 的 Vuex。其核心目标是提供一种更简洁、直观的状态管理方案&#xff0c;同时充分利用 Vue3 的响应式系统和 Composition API。 2. 底…...

本地部署 opik

本地部署 opik 1. 安装2. 访问 1. 安装 克隆代码&#xff0c; git clone https://github.com/comet-ml/opik.git使用 Docker compose 启动&#xff0c; cd opik/deployment/docker-compose docker compose up -d2. 访问 启动后&#xff0c;您可以在浏览器中访问 localhost:…...

操作系统之进程与线程的理解(一)

对进程的理解 进程是可以并发执行的程序在某个数据集合上的运行过程&#xff0c;是系统进行资源分配和调度的基本单位。进程由三部分组成&#xff0c;程序&#xff0c;数据和进程控制块&#xff08;简称PCB&#xff09;。简单的说&#xff0c;进程就是程序的一次执行 为确保进…...

JS 箭头函数

只能用于声明函数表达式更简洁。替代匿名函数 设置取消点击事件的默认行为 在这里插入图片描述...

Mb,Kb,byte,bits

1MB1024KB; 1KB1024byte(字节&#xff09;&#xff1b; 1byte8bits&#xff08;位&#xff09;&#xff1b; 小蓝准备用 256MB 的内存空间开一个数组&#xff0c;数组的每个元素都是 32 位 二进制整数&#xff0c;如果不考虑程序占用的空间和维护内存需要的辅助空间&#xf…...

x265 中 aqMode 和 hevcAq 的深度解析与应用技巧

aqMode 和 hevcAq 介绍 在 x265 中基本继承了 x264 中 aqmode 的思想,此外还引入了 hevcAq 算法工具,在 x265_param 结构体中有这两个参数变量开关相关解释。从声明注释可以理解,aqMode 和 x264 中 aqmode 的思想完全相似,也扩展了些功能,属于通用型自适应量化方法,基于 …...

(一)基于云平台微调大模型,以deepseek-coder-6.7b为例

一、租借rtx4090卡并创建示例 如下图&#xff0c;我们进入jupyter界面&#xff0c;然后创建笔记本 二、提前下载好模型到本地 为了节省时间&#xff0c;我们需要提前下好模型deepseek-ai/deepseek-coder-6.7b-instruct&#xff0c;然后再上传到autodl上直接本地加载。 下载方…...

【Docker基础】全面解析 Docker 镜像:构建、使用与管理

文章目录 一、Docker 镜像&#xff08;Docker Image&#xff09;详解1.1 Docker 镜像的结构1.2 Docker 镜像的每一层&#xff08;Layer&#xff09;1.3 镜像的构建过程1.4 镜像的使用1.5 镜像的优势 二、为什么需要镜像三、镜像命令3.1 命令清单3.2 详细解释 四、docker 操作案…...

3. git config

文章目录 基本概述配置级别基本用法设置配置项查看配置项删除配置项 常用配置项 基本概述 git config 的作用是&#xff1a;设置用户信息、编辑器、别名、仓库行为等。 配置级别 级别作用范围配置文件路径命令选项仓库级别&#xff08;Local&#xff09;当前仓库.git/config…...

docker 运行自定义化的服务-前端

运行自定义化的前端服务 具体如下&#xff1a; ①打包前端项目&#xff0c;形成dist包 ②编写dockerfile文件&#xff0c;文件内容如下&#xff1a; # 基础镜像(镜像名:版本号TAG) FROM nginx:1.0 # 镜像作者和相关元数据 LABEL maintainer"Atb" \version"1.0…...

error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408

在git push时报错&#xff1a;error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408 原因&#xff1a;可能是推送的文件太大&#xff0c;要么是缓存不够&#xff0c;要么是网络不行。 解决方法&#xff1a; 将本地 http.postBuffer 数值调整到500MB&…...

JMH 基准测试实战:Java 性能对比的正确打开方式!

&#x1f4d6; 摘要 在Java开发中&#xff0c;我们经常需要比较不同实现方式的性能差异。但如何科学、准确地进行性能测试呢&#xff1f;本文将带你深入理解JMH&#xff08;Java Microbenchmark Harness&#xff09;工具&#xff0c;通过实战演示如何正确编写和运行基准测试&a…...

etf可以T+0交易吗?

在我国的A股市场中&#xff0c;部分ETF基金支持T0交易&#xff0c;这为投资者提供了更灵活的交易策略。 支持T0交易的ETF基金类型包括&#xff1a; 货币型ETF&#xff1a;主要投资于货币市场工具&#xff0c;如短期债券和银行存款&#xff0c;具有较高的流动性。 债券型ETF&…...

解决问题:Vscode 自动更新不匹配远程服务器版本

避免自动更新&#xff1a; 1. 打开&#xff1a;文件 - 首选项 - 设置 - 应用程序 - 更新&#xff1b; 2. 设置下列选项&#xff1a; 如果已自动更新&#xff0c;如何回退至原有的历史版本 &#xff1a; 去官网下载所需的历史版本&#xff0c;然后直接按流程安装&#xff0c;…...

【Leetcode-Hot100】盛最多水的容器

题目 解答 目的是求面积最大&#xff0c;面积是由两个下标和对应的最小值得到&#xff0c;因此唯一的问题就是如何遍历这两个下标。我采用begin和end两个变量&#xff0c;确保begin是小于end的&#xff0c;使用它们二者求面积&#xff0c;代码如下&#xff1a; 很不幸 出错了…...

FFMEPG常见命令查询

基本参数 表格1&#xff1a;主要参数 参数说明-i设定输入流-f设定输出格式(format) 高于后缀名-ss开始时间-t时间长度codec编解码 表格2&#xff1a;音频参数 参数说明-aframes设置要输出的音频帧数-f音频帧深度-b:a音频码率-ar设定采样率-ac设定声音的Channel数-acodec设定…...

欢迎来到 Codigger Store:Boby周边专区

亲爱的 Codigger 用户们&#xff0c;感谢你们一直以来的支持与热爱&#xff01;你们的每一次代码跳跃、每一次项目成功&#xff0c;都离不开你们对编程的热情和对 Codigger 的信任。为了回馈大家的厚爱&#xff0c;我们在 Codigger Store 中特别开设了 Boby 周边专区&#xff0…...

决策树模型

决策树(TDS) 注意1&#xff1a;决策树有很多种算法&#xff0c;比如&#xff1a;ID3算法&#xff0c;C4.5算法&#xff0c;CART算法&#xff0c;这三个算法的区别是选择最优划分属性的方法不同&#xff0c;第一个是根据信息增益来选&#xff1b;第二个是找出信息增益高于平均水…...

解锁深度学习激活函数

在深度学习的广袤天地里&#xff0c;激活函数宛如隐匿于神经网络架构中的神奇密码&#xff0c;掌控着模型学习与表达的关键力量。今天&#xff0c;就让我们一同深入探究这些激活函数的奇妙世界&#xff0c;揭开它们神秘的面纱。 一、激活函数为何不可或缺&#xff1f; 想象一…...

Kubernetes 深入浅出系列 | 容器剖析之容器安全

目录 1、容器真的需要privileged权限吗?一、什么是 --privileged 权限&#xff1f;二、privileged 的风险到底有多大&#xff1f;三、常见需求场景及更安全的替代方式四、如何判断容器是否真正需要特权&#xff1f; 2、不以 Root 用户运行容器&#xff0c;真的更安全吗&#x…...

Spring Boot应用中可能出现的Full GC问题

Full GC的原理与触发条件 原理 标记-清除&#xff1a;首先遍历所有对象&#xff0c;标记可达的对象&#xff0c;然后清除不可达的对象。复制算法&#xff1a;将内存分为两部分&#xff0c;每次只使用其中一部分。当这部分内存用完时&#xff0c;将存活的对象复制到另一部分&a…...