系统架构设计师案例分析题——软件架构设计篇
重中之重,本题争取拿下25满分~
目录
一.核心知识
1.什么是架构风格
2.RUP的9个核心工作流
3.企业应用集成方式
4.软件质量属性
5.SySML系统建模语言9种图
6.云计算架构
7.中间件
8.构件、连接件、软件重用
9.层次型架构的缺点
10.架构开发方法ADM
11.微服务架构的优缺点
11.云原生架构
12.SOA面向服务架构
13.DSSA特定领域软件架构
二.案例考察扩展
1.应用网关的作用(和微服务架构息息相关)
2.ABSD
3.风险点、敏感点、权衡点
4.质量属性的设计策略
5.遗留系统处理
6.各种架构风格的优缺点、特点
三.真题
1.2024下半年
2.2024上半年
一.核心知识
1.什么是架构风格
类似于建筑风格,从相同类型的软件系统中抽取其架构的共性,是一种惯用模式,反映了众多系统共有的结构和语义。
- 软件架构为软件系统提供了一个机构、行为和属性的高级抽象
- 软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约数
2.RUP的9个核心工作流
- 业务建模:为目标组织开发一个构想,基于这个构想在用例和对象模型中定义组织过程、角色和责任
- 需求:描述系统应该做什么,与开发人员和用户达成共识
- 分析与设计:对需求进行需求分析,设计则是设计类、接口、包,诸如生成类图,对类进行分组、构件打包
- 实现:主要是进行软件开发的过程,以组件形式实现类与对象,最后成为可执行的系统
- 测试:对系统进行功能测试,主要分为功能测试和非功能测试,功能测试又分为白盒测试、黑盒测试等。非功能测试分为性能测试、可用性测试等。
- 部署:对软件进行打包,并部署在服务器上
- 配置与变更管理:控制项目中的产物,追踪软件创建过程中的版本。
- 项目管理:平衡冲突,管理风险,克服各种约束并确保成功交付。
- 环境:提供软件开发环境、包括过程和工具。
3.企业应用集成方式
EAI分为4个集成:
- 界面集成:把各应用的界面集成起来,形成统一入口,有整体的感觉。
- 数据集成:控制集成和过程集成的基础,可以提供企业信息共享能力。
- 控制集成:多个应用系统进行绑定,像一个系统一样输入和产生输出数据,实现多个系统功能的叠加。
- 过程集成:为实现整体的业务目标,定义、关联管理不同的业务古城,实现信息交换、降低成本,包括过程管理、工程建模和工作流。
4.软件质量属性
- 性能:系统的响应能力,即要经过多长时间才能对某个事件做出响应,火灾在某段事件内系统所能处理的事件的个数。
- 可靠性:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力
- 可用性:系统能够正常运行的时间比例。
- 安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
- 可修改性:指能够快读地以较高的性价比对系统进行变更的能力。
- 易用性:应有十分友好的用户界面,用户易于使用。
5.SySML系统建模语言9种图
- 用例图:用于表达系统执行的用例,以及引起用例的行为者和其中的参与者。
- 活动图:用于指定一种行为,主要关注控制流程,以及输入通过一些了动作转换为输出的过程。
- 状态机图:用于指定一种行为,主要关注模块的一系列状态,以及响应事件时,状态之间的可能转换
- 序列图:用于指定一种行为,主要关注模块的组成部分如何通过操作调用和异步信号交互。
- 时间图:描述系统某个活动状态或属性随时间的变化。
- 模块定义图:用于表示模块和值类型之间的元素,以及那些元素之间的关系。
- 内部模块图:用于指定单个模块的内部结构。
- 参数图:用于表述一种或多种约束。
- 需求图:用于表示基于文字的需求之间的7种关系(包含、跟踪等,不重要的知识点)
6.云计算架构
5个层次:
- 管理层:提供对所有层次云计算服务的管理功能
- 用户访问层:方便用户使用云计算服务,提供相应的访问接口
- 应用层:提供软件服务,如商业智能,saas
- 平台层:paas,平台即服务,提供各种中间件和数据库系统
- 资源层:提供虚拟化的资源,隐藏物理资源的复杂型,如iaas
7.中间件
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用在不同的技术之间共享资源。
作用:
- 负责客户机与服务器之间的连接和通信
- 提供应用层不同服务之间的互操作机制
- 提供多层架构的应用开发和运行的平台
- 屏蔽硬件、操作系统、网络和数据库的差异
- 提供应用的负载均衡和高可靠性、安全机制与管理功能
- 提供一种通用的服务去执行不同的功能,避免重复的工作和使应用之间高效协作
8.构件、连接件、软件重用
- 构件即组件,是一个功能相对独立的、具有可重用价值的软件单元。
- 连接件事一种架构元素,通过对构件之间交互规则的建模来实现构件之间的连接。
- 软件重用师使用已有的软件产品来开发新软件系统的过程。
构件的三个特性:独立部署单元、没有外部可见状态、作为第三方那的组装单元。
系统构件组装分为三个不同的层次:定址、集成、扩展。
9.层次型架构的缺点
- 层与层之间可能难以抽象和划分
- 分层增加了系统的复杂性,使得系统变得庞大
- 不同层次之间的耦合度高的系统难以实现
10.架构开发方法ADM
ADM生命周期:准备、需求管理、架构愿景、业务架构、信息系统架构、技术架构、机会和解决方案、迁移规划、实施治理、架构变更管理。
11.微服务架构的优缺点
优点:
- 职责单一、独立性强
- 容错能力强
- 松耦合,易拓展
- 技术异构
缺点:
- 测试和运维均复杂
- 分布式环境下的数据一致性更为复杂
11.云原生架构
设计原则:
- 服务化原则:使用微服务架构进行系统开发
- 弹性原则:可以根据业务自动伸缩或者扩容
- 韧性原则:面对异常的抵抗能力
- 自动化原则:通过自动化运维工具进行部署
- 可观测原则:通过日志、链路追踪和度量
- 零信任原则:默认不信任内部或者外部的任何人、系统、设备
- 架构持续演进原则:业务高速迭代的情况下架构与业务的平衡
12.SOA面向服务架构
面向服务架构(SOA)是一种软件设计范式,旨在通过将应用程序功能分解为可重用的独立服务,提升系统的灵活性和可维护性。
- 服务为核心:功能单元以“服务”形式封装,每个服务具备明确的业务目标(如用户管理、订单处理),并通过标准化接口(如REST、SOAP)暴露功能。
- 松耦合:服务间依赖最小化,通过接口契约交互,内部实现细节对调用者透明。例如,支付服务升级无需修改调用它的订单服务。
- 标准化通信:使用通用协议(HTTP、消息队列)和数据格式(XML、JSON),确保跨平台互操作性。如Java服务可通过RESTful API与.NET服务通信。
- 服务自治:服务独立部署、管理和扩展。例如,高并发的身份验证服务可单独集群部署,无需牵连库存服务。
- 可组合性:通过编排服务构建复杂流程。例如,电商下单流程可组合库存检查、支付、物流服务实现。
关键优势
-
复用性:单点登录服务可被多个系统复用,减少重复开发。
-
敏捷性:业务规则变更时,仅需修改对应服务(如税率计算服务)。
-
异构集成:将遗留系统(如COBOL主机)封装为服务,融入现代架构。
-
可扩展性:热门服务(如推荐引擎)可独立横向扩展。
13.DSSA特定领域软件架构
特性:
- 严格定义的问题域和解决域,不可越界
- 具有普适性
- 对整个领域进行适度的抽象
- 架构在该领域中需要具备可重用的元素
创建步骤:
- 定义领域范围
- 定于领域数据字典
- 定义设计和需求约束
- 产生特定领域架构
- 产生、搜集可重用的构件
二.案例考察扩展
1.应用网关的作用(和微服务架构息息相关)
- 提供统一的入口
- 权限身份认证等安全管理
- 流量限流、性能监控
- 异常重试
- 服务降级
- 数据缓存
2.ABSD
ABSD(Architecture-Based Software Design,基于体系结构的软件设计)是一种以软件架构为核心的开发方法,强调通过体系结构驱动设计过程,确保系统满足功能需求、质量属性及业务目标。
核心思想:
体系结构驱动,分层与抽象、复用与模块化
阶段划分:
体系结构需求、体系结构设计、文档化、复审、实现、演化
关键特点:
- 迭代性与递归性:各阶段可反复迭代
- 多视图描述:增强设计全面性
- 质量属性导向:明确非功能性需求,确保架构的健壮性
- 工具与模板支持
3.风险点、敏感点、权衡点
举例:
- 敏感点:对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计
- 权衡点:更改系统加密的级别将会对安全性和性能产生影响
- 风险点: 可能导致部分业务功能的重复,影响系统的可修改性
4.质量属性的设计策略
- 性能:优先级队列、引入并发机制、异步处理、CDN加速
- 可用性:心跳、Ping/echo、冗余设计
- 可修改性:信息隐藏、松耦合通信
- 安全性:加密传输、认证授权、审计日志
- 可靠性:事务机制、幂等设计
- 易用性:用户反馈迭代、UI一致性设计
5.遗留系统处理
6.各种架构风格的优缺点、特点
过多,篇幅有限,这里不总结,各位自行搜索或者问Deepseek也行,重中之重,无论选择、案例还是论文都有极大概率设计。
三.真题
1.2024下半年
1.给出诸多需求分析的条目,判断属于哪些质量属性。
几乎每次都考,要学会辨析。
2.针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳模式的实现原理,张工认为从资源利用率的角度来看采取心跳模式策略比较合适,简述为什么。
实现原理:
- ping/echo:通过 ICMP 协议发送一个“Echo Request”消息到目标主机,等待其回复“Echo Reply”。这是一种网络层的连通性测试方法。echo:更广泛地指任何类型的请求-响应模式,用于验证远程服务或组件是否可达和正常工作。这可以是基于HTTP、TCP等协议的简单请求。
- 心跳模式:客户端定期向服务器发送心跳信号(如HTTP请求),服务器接收到后立即回应。如果连续几次心跳未得到响应,则认为服务器可能出现故障。心跳信号通常包含少量数据,比如时间戳或简单的健康检查信息,以确保不仅网络连接正常,而且应用程序本身也在正确运行。
采取心跳模式的原因:(实际上就是讲述心跳的优点)
- 针对性强,减少不必要的通信开销;
- 按需调整频率和内容,优化资源使用,比较灵活;
- 结合健康检查,提高诊断精度;
- 支持复杂环境下的高效运作。
2.2024上半年
1.简述微服务架构,并分析优缺点
微服务是一种软件架构风格,将应用程序拆分为多个小型、独立部署的服务,每个服务负责特定功能,通过轻量级通信协议(如HTTP/REST)进行交互。这种架构允许各服务独立开发、测试、部署和扩展,促进敏捷开发和持续交付。
优点:
- 独立部署:各服务可独立部署,减少对其他模块的影响,提升发布频率和灵活性。
- 技术多样性:不同服务可以使用不同的技术栈,最适合解决各自的问题。
- 可扩展性:根据需要单独扩展某个服务,提高资源利用效率。
缺点:
- 复杂性增加:系统拆分成多个服务后,增加了运维和管理复杂度。
- 网络通信开销:服务之间的通信依赖网络,可能带来延迟和性能问题。
- 数据一致性:分布式系统的数据一致性管理更加复杂,需要额外的机制保障数据同步。
2.质量效用树填空
还是有关质量属性的题目,必须拿下。
3.质量属性场景中,使用六元素来描述题目中可用性的两个场景。
六元素:
- 刺激源:某个生成该刺激的实体(人,计算机,其它任何刺激器)
- 刺激:指当刺激达到系统时需要考虑的条件。
- 环境:指该刺激在某些条件哪发生。
- 制品:某个制品被激励,可能是整个系统,也可能是系统的一部分。
- 响应:指在激励达到后所采取的行动。
- 响应度量:当响应发生时,应当能够以某种方式对其进行度量。
总的来说,本题相较于其他4者,和课本的结合度最高,争取拿下25满分~
相关文章:
系统架构设计师案例分析题——软件架构设计篇
重中之重,本题争取拿下25满分~ 目录 一.核心知识 1.什么是架构风格 2.RUP的9个核心工作流 3.企业应用集成方式 4.软件质量属性 5.SySML系统建模语言9种图 6.云计算架构 7.中间件 8.构件、连接件、软件重用 9.层次型架构的缺点 10.架构开发方法ADM 11.微…...
系统架构设计(十一):架构风格总结2
架构风格汇总 架构风格核心特点应用场景分层架构(Layered)将系统划分为多个层次,每层只依赖于下一层企业应用、MIS 系统、三层架构客户端-服务器(C/S)分为服务端与客户端,服务集中,客户端请求数…...
泛微对接金蝶云星空实战案例技术分享
前言 在企业信息化建设中,OA系统与ERP系统对接往往是一个复杂而关键的环节。OA系统通常具有高度的自定义性,其基础资料和单据可能与ERP系统存在字段不一致等问题。同时,OA系统涉及审批流程及流程发起方定义,增加了对接的复杂性。…...
Predict Podcast Listening Time-(回归+特征工程+xgb)
Predict Podcast Listening Time 题意: 给你没个播客的信息,让你预测观众的聆听时间。 数据处理: 1.构造新特征收听效率进行分组 2.对数据异常处理 3.对时间情绪等进行数值编码 4.求某特征值求多项式特征 5.生成特征组合 6.交叉验证并enc…...
Java并发编程的挑战:从理论到实战
在现代软件开发中,随着多核处理器的普及和系统性能要求的提高,并发编程已经成为Java开发者必须掌握的核心技能之一。然而,Java并发编程不仅仅是“创建多个线程”那么简单,它涉及到线程安全、资源竞争、死锁、通信机制、性能优化等多个复杂问题。 本文将围绕Java并发编程中…...
大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶-文献精读129
Systematic identification and expression profiles of the BAHD superfamily acyltransferases in barley (Hordeum vulgare) 系统鉴定与大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶的表达谱分析 摘要 BAHD 超家族酰基转移酶在植物中催化和调控次…...
信任的进阶:LEI与vLEI协同推进跨境支付体系变革
在全球经济版图加速重构的背景下,跨境支付体系正经历着前所未有的变革。2022年全球跨境支付规模突破150万亿美元,但平均交易成本仍高达6.04%,支付延迟超过2.7天。 这种低效率背后,隐藏着复杂的身份识别困境:超过40%的…...
当语言模型学会犯错和改正:搜索流(SoS)方法解析
引言 语言模型的能力日新月异,但它们在执行复杂规划任务时仍面临着明显的局限。这是因为大多数训练数据只展示了最终的"正确答案",而非解决问题的完整过程。想象一下,如果我们只能看到数学题的最终答案,而从不知道解题…...
Centos7.9同步外网yum源至内网
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum makecache yum repolist安装软件 yum install -y yum-utils createrepo # yum-utils包含re…...
OTA与boot loader
OTA指的是无线升级,通常用于更新设备的固件或软件,用户不用手动操作,非常方便。而bootloader是启动时加载操作系统的程序,负责硬件初始化和启动流程。 首先,OTA是如何通过bootloader工作的。OTA下载更新包后࿰…...
【目标检测】【Transformer】Swin Transformer
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows Swin Transformer:基于移位窗口的分层视觉Transformer CVPR 2021 0.论文摘要 本文提出了一种新型视觉Transformer——Swin Transformer,其可作为计算机视觉领域的…...
Class类的详细说明
Class类的详细说明 Class 类是Java反射机制的核心,每个Java类或接口在JVM中都有一个对应的 Class 对象,用于表示该类的元数据(如类名、方法、字段、构造器等)。以下是其核心知识点: 1. 获取Class对象的三种方式 方式…...
电商项目-品牌管理微服务开发
一、功能分析 品牌管理微服务包括: (1)查询全部列表数据 (2)根据ID查询实体数据 (3)增加 (4)修改 (5)删除 (6)分页…...
【Linux网络编程】Socket编程:协议理论入门
前言 首先,在学习Socket编程之前,我们应该了解关于网络的一些基本概念,虽然说没有这些理论概念并不影响编程,但是以后工作时扯扯皮还是有用的。而且,一个开发网络程序的人不知道网络领域的一些基本概念,这说…...
Redis——缓存雪崩、击穿、穿透
缓存雪崩 大量缓存数据在同一时间过期或者Redis故障宕机时,若此时有大量请求,都会直接访问到数据库,导致数据库压力倍增甚至宕机。 大量数据同时过期解决方案: 1、均匀设置过期时间: 设置过期时间的时候可以追加一…...
基于QT和FFmpeg实现自己的视频播放器FFMediaPlayer(一)——项目总览
在音视频开发的学习过程中,开发一款视频播放器是FFmpeg进阶的最好实战方法。本文将基于 QT 和 FFmpeg 着手实现自定义视频播放器 FFMediaPlayer,作为系列文章的开篇,我们先来整体了解项目的设计思路、架构与配置。 一、软件设计五大原则 …...
panda机械臂的正逆运动学分析与仿真
文章目录 前言Panda机械臂的DH参数法建模正运动学逆运动学误差函数雅可比矩阵高斯-牛顿法(Gauss-Newton) 参考代码获取 前言 机械臂的位置运动学分析是机器人控制与轨迹规划的核心基础,其研究内容主要分为正运动学(Forward Kinem…...
网络切片:给用户体验做“私人定制”的秘密武器
网络切片:给用户体验做“私人定制”的秘密武器 咱们平时用手机上网、看视频、玩游戏,网络体验好不好,一半都靠运营商给的网络质量。可你有没有想过,为什么同一张网络,有的人能流畅刷视频,有的人却卡得要命?这其实就是网络资源分配的问题——不同应用、不同用户的需求差异…...
HarmonyOS NEXT~鸿蒙应用上架指南:HarmonyOS应用发布全流程解析
HarmonyOS NEXT~鸿蒙应用上架指南:HarmonyOS应用发布全流程解析 引言 随着华为鸿蒙操作系统(HarmonyOS)生态的快速发展,越来越多的开发者希望将自己的应用上架到鸿蒙应用市场。本文将详细介绍鸿蒙应用上架的全流程,帮助开发者顺…...
大模型在腰椎间盘突出症预测与治疗方案制定中的应用研究
目录 一、引言 1.1 研究背景 1.2 研究目的与意义 二、腰椎间盘突出症概述 2.1 定义与病因 2.2 症状与诊断方法 2.3 治疗方法概述 三、大模型技术原理与应用基础 3.1 大模型的基本原理 3.2 大模型在医疗领域的应用现状 3.3 用于腰椎间盘突出症预测的可行性分析 四、…...
【漫话机器学习系列】264.内距(又称四分位差)Interquartile Range
深入理解内距(Interquartile Range,IQR)——数据分析中的异常值利器 在日常的数据分析中,我们经常需要识别和处理异常值(Outliers),而内距(Interquartile Range,简称 IQR…...
高并发内存池|定长内存池的设计
二、定长内存池的设计 设计一个定长的内存池,这个内存池的定长在于,当剩余空间使用完毕后,总是开辟相同长度的新空间来使用。我们会使用到一个指针来切割划分大空间为小空间。大空间是内存池向系统申请的内存大小,而小空间是程序…...
STM32外设DA实战-DAC + DMA 输出正弦波
STM32外设DA实战-DAC DMA 输出正弦波模板 一,方法思路二,CubeMX配置三,代码实现1,生成正弦波查找表2,代码实现 一,方法思路 DAC 的一个常见应用是产生任意波形,比如平滑的正弦波。如果让 CPU …...
【React Fiber 架构详解】
React Fiber 架构详解 React Fiber 是 React 16 引入的核心协调算法重构,旨在解决传统同步渲染的性能瓶颈,提升用户体验。其核心在于将渲染任务拆解为可中断、优先级可控的增量单元,并通过链表数据结构优化调度流程。以下是其核心原理与工作机制的详细解析: 一、Fiber 的起…...
UDP的单播组播与广播
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、基于IP的传输层协议,它提供了简单的、不可靠的数据报服务。UDP支持三种主要的通信方式:单播、组播和广播。 1. UDP 单播(Unicast)…...
上集:一个前端的血泪复仇记 —— 静态部署的胜利
“我只是想部署一个小项目,结果干翻了Spring Security、Next.js 和 AI —— 三个加起来至少值我两天命。” 话说有一天,我朋友搭了一个小系统,前后端分离,说大不大,说小不小。后端Spring Boot 3.4.5,前端Ne…...
网络流量分析 | Zeek(上)
介绍 Zeek 是一个开源且商用的网络监控和流量分析工具,许多的运维人员将 Zeek 作为网络安全监控器(Network Security Monitor,NSM),以支持可疑或恶意活动的调查。在安全领域之外,Zeek 还可被用于各种流量分…...
Unity3D仿星露谷物语开发44之收集农作物
1、目标 在土地中挖掘后,洒下种子后逐渐成长,然后使用篮子收集成熟后的农作物,工具栏中也会相应地增加该农作物。 2、修改CropStandard的参数 Assets -> Prefabs -> Crop下的CropStandard,修改其Box Collider 2D的Size(Y…...
AUTOSAR图解==>AUTOSAR_SRS_WatchdogDriver
AUTOSAR 看门狗驱动 (Watchdog Driver) 详解 AUTOSAR基础软件模块之看门狗驱动技术分析 目录 概述 1.1 看门狗驱动的作用 1.2 适用范围架构设计 2.1 总体架构 2.2 内部结构 2.3 接口设计功能实现 3.1 初始化和模式切换 3.2 状态管理 3.3 外部看门狗支持配置参数 4.1 核心配置项…...
Fidder基本操作
1.抓取https请求 Fidder默认不能抓取https请求,我们必须通过相应的设置才能抓取https请求 1.选择tools下的option 2.选择https选项,并且勾选下面的选项 3.点击Actions导出信任证书到桌面(expert root certificate to desktop) 4.在浏览器中添加对应的证…...
在线教育本地化分发:代理IP实现区域访问控制与内容适配
在在线教育本地化分发场景中,代理IP通过地理精准识别、动态内容适配与合规访问控制,成为突破区域限制、提升用户体验的核心技术工具。以下是基于2025年技术实践的解决方案: 一、区域访问控制的核心机制 地理IP库匹配与白名单策略 通过代理IP的…...
JAVA的常见API文档(上)
游戏打包 注意API文档中的方法不需要记忆!! 了解之后如果需要可以查询API文档 对Math的方法总结: 运用刚学的Math方法加快代码的运行效率 可以减少循环次数 找规律: 发现因子有规律: 必定一个大于平方根,…...
【数据结构】_二叉树
1.二叉树链式结构的实现 1.1 前置说明 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树&#x…...
ALIENTEK精英STM32F103开发板 实验0测试程序详解
#include "sys.h" #include "usart.h" #include "delay.h" //ALIENTEK精英STM32F103开发板 实验0 //新建工程 实验 //技术支持:www.openedv.com //广州市星翼电子科技有限公司 int main(void) { u8 t0; //见注释1 St…...
LeetCode 33. 搜索旋转排序数组:二分查找的边界艺术
文章目录 问题描述解决思路代码实现关键点解析1. 为什么用 nums[left] < nums[mid]?2. 示例分析案例 1:数组 [3, 1],目标值 1案例 2:数组 [5],目标值 5 边界条件处理1. 单元素数组2. 完全有序数组3. 严格递增与重复…...
Rust 学习笔记:关于 HashMap 的练习题
Rust 学习笔记:关于 HashMap 的练习题 Rust 学习笔记:关于 HashMap 的练习题以下代码能否通过编译?若能,输出是?以下代码能否通过编译?若能,输出是? Rust 学习笔记:关于 …...
(头歌作业)—6.1 葡萄酒评论分析报告(project)
第1关:葡萄酒评论分析报告——国家列表和平均分 任务描述 本关任务:编写程序,多维度分析葡萄酒数据。 相关知识 葡萄酒评论分析报告描述 winemag-data.csv 文件 winemag-data.csv 包含 编号、国家、描述、评分、价格、省份 等 6列 和12974…...
下集:一条打包到底的静态部署之路
说完坑,再来讲正经操作。 这次我决定写得明明白白,清清楚楚,把那条“Spring Boot 扛着 Next.js 上线”的路子掰碎了揉细了告诉你。 无废话、无迷信、无AI幻觉。 第一步:Next.js 静态导出 项目根目录下的 next.config.js 要写得…...
多商户商城系统源码解析:开发直播电商APP的技术底层实战详解
随着直播电商的火爆,越来越多的创业者和企业都在寻求打造自己的多商户商城系统,以实现“人、货、场”三者的深度融合。然而,从一个简单的电商平台到一个功能完善的直播电商APP,其技术底层架构和实现过程并非一蹴而就。本文将从架构…...
每日Prompt:生成自拍照
提示词 帮我生成一张图片:图片风格为「人像摄影」,请你画一张及其平凡无奇的iPhone对镜自拍照,主角是穿着JK风格cos服的可爱女孩,在自己精心布置的可按风格的房间内的落地镜前用后置摄像头随手一拍的快照。照片开启了闪光灯&…...
LeetCode 热题 100_寻找重复数(100_287_中等_C++)(技巧)(暴力解法;哈希集合;二分查找)
LeetCode 热题 100_寻找重复数(100_287_中等_C) 题目描述:输入输出样例:题解:解题思路:思路一(暴力解法):思路二(哈希集合):思路三&am…...
多模态学习(三)—— ROPE位置编码:从理论到实践
ROPE位置编码:从理论到LLaMA的实践 一、前言 ROPE(Rotary Positional Embedding,旋转位置编码)是一种通过旋转矩阵将位置信息融入Token Embedding的编码方法。相比传统Transformer的绝对位置编码,ROPE能更灵活地建模…...
Redis——过期删除策略和内存
过期删除策略 Redis可以对key设置过期时间,因此需要有相应的机制将已过期的键值对删除 设置了过期时间的key会存放在过期字典中,可以用presist命令取消key过期时间 过期字典存储在redisDb结构中: typedef struct redisDb {dict *dict; …...
Selenium无法定位元素的几种解决方案详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法: …...
开源项目实战学习之YOLO11:12.3 ultralytics-models-sam-encoders.py源码分析
👉 点击关注不迷路 👉 点击关注不迷路 👉 另外,前些天发现了一个巨牛的AI人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。感兴趣的可以点击相关跳转链接。 点击跳转到网站。 ultralytics-models-sam 1.sam-modules-encoders.pyblocks.py: 定义模型中的各…...
Bitmap原理及Hive去重方式对比
1. 什么是 Bitmap? Bitmap(位图)是一种用位(bit)来表示数据集合的数据结构。每个位代表一个元素是否存在,比如: 一个长度为N的bitmap,每一位对应一个元素的状态(0或1&a…...
力扣-比特位计数(统计一个数二进制下1的个数)
下面是题面 1.用c的内置函数__builtin_popcount() 语法:__builtin_popcount(int x),函数会返回一个二进制下x所含的1的个数 2.直接数位枚举 这是最慢也是暴力做法,写法也很简单 用一个while循环…...
开源项目实战学习之YOLO11:12.2 ultralytics-models-sam-decoders.py源码分析
👉 点击关注不迷路 👉 点击关注不迷路 👉 另外,前些天发现了一个巨牛的AI人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。感兴趣的可以点击相关跳转链接。 点击跳转到网站。 ultralytics-models-sam 1.sam-modules-decoders.pyblocks.py: 定义模型中的各…...
Python训练营打卡Day28
浙大疏锦行 DAY 28 类的定义和方法 知识点回顾: 1.类的定义 2.pass占位语句 3.类的初始化方法 4.类的普通方法 5.类的继承:属性的继承、方法的继承 作业 题目1:定义圆(Circle)类 要求: 1.包含属性&#x…...
【前端基础】HTML元素隐藏的四个方法(display设置为none、visibikity设置为hidden、rgba设置颜色、opacity设置透明度)
HTML元素隐藏的四个方法 1、display设置为none 元素不显示出来。不占位置,也没有任何空间。就不存在一样。 2、visibility设置为hidden 默认:visible。元素可见设置为hidden:元素不可见,但是会占据这个元素应该占用的空间。 3、…...