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

【测试开发】概念篇 - 从理解需求到认识常见开发、测试模型

📢博客主页:https://blog.csdn.net/2301_779549673
📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨

在这里插入图片描述

在这里插入图片描述

文章目录

  • 🏳️‍🌈一、什么是需求
    • 1.1 用户需求
    • 1.2 软件需求
  • 🏳️‍🌈二、开发模型
    • 2.1 什么是“模型”
    • 2.2 软件的生命周期
    • 2.3 常见开发模型
      • 2.3.1 瀑布模型
      • 2.3.2 螺旋模型
      • 2.3.3 增量模型、迭代模型
      • 2.3.4 敏捷模型
    • 2.4 测试模型
      • 2.4.1 V模型
      • 2.4.2 W模型(双V模型)
  • 👥总结


11111111
11111111
11111111
11111111
**** 11111111

🏳️‍🌈一、什么是需求

在多数软件公司,会有两部分需求,一部分是用户需求一部分是软件需求

1.1 用户需求

用户需求: 可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略,通常是一句话。

用户的需求是五花八门,往往只是一句话
比如:实现一个声控灯,实现一个软件的登录功能

1.2 软件需求

或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。软件需求是测试人员进行测试工作的基本依据。

用户需求和软件需求有什么不同呢?看看下面的案例

女朋友饿了的例子
用户需求:
女朋友说,我饿了,这是一个用户需求.很简略.
软件需求:
需要你和她反复的沟通了解更加详细具体的需求,来制定解决方案
比如你问她,"想吃啥?"她说,“随便”
“吃米饭炒菜?”“不想吃”;“那你想吃啥?”“随便”
“吃油泼面?”“不想吃”;“那你想吃啥?”“随便”
最终理解清楚用户需求之后,知道女朋友想吃的是你做的红烧肉,那么再去研究肉怎么买,怎么做等等的具体步骤,是软件需求.

🏳️‍🌈二、开发模型

2.1 什么是“模型”

你以为的模型

在这里插入图片描述
实际的模型

在这里插入图片描述
随着软件工程学科的发展,人们对计算机软件的认识逐渐深入。

软件工作 的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。软件工程还包括很多技术性的管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步地建立起了标准或规范。

2.2 软件的生命周期

认识具体的开发模型之前先了解软件的生命周期。

什么是生命周期?

  • 生命周期指的是从生命的开始到生命结束的一段时间。以人为例,人类的生命周期是从生命孕育的开始,中间会经历幼年,童年,少年,青年,老年,最终直至死亡。

案例:
假如我想要建造一套房子(别问,问就是一个人造房子),房子的生命周期(流程)是什么样的?

在这里插入图片描述
因此,我们就得到了软件(开发)的生命周期:

  • 需求分析–计划–设计–编码–测试–运行维护

对于软件的生命周期中,每个阶段都在做什么呢?

在这里插入图片描述
在这里插入图片描述

2.3 常见开发模型

2.3.1 瀑布模型

在这里插入图片描述

瀑布模型 在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到。这会给项目带来很大的风险,尤其是集成的风险。因为如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才发现,通常会导致前面阶段的工作大面积返工,业界流行的说法是:“集成之日就是爆炸之日”。

尽管瀑布模型存在很大的缺陷,例如,在前期阶段未发现的错误会传递并扩散到后面的阶段,而在后面阶段发现这些错误时,可能已经很难回头再修正,从而导致项目的失败。但是目前很多软件企业还是沿用了瀑布模型的线性思想,在这个基础上做出自己的修改。例如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给用户

瀑布模型优缺点总结:
在这里插入图片描述

瀑布模型存在很严重的项目风险,那瀑布模型就不能够被采用了吗?

  • 瀑布模型的适用场景:需求固定的小项目

然而企业中存在许多些规模庞大、复杂度高、风险大的项目,这种情况下可以哪种模型呢?

2.3.2 螺旋模型

在瀑布模型的基础上,给各阶段引入了原型和风险分析,原型是基本版本

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式螺旋模型是渐进式开发模型的代表之一。

这对于那些规模庞大、复杂度高、风险大的项目尤其适合。 这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。因此,回归测试的重要性就不言而喻了。

在这里插入图片描述

在这里插入图片描述

适用场景: 规模庞大、复杂度高、风险大的项目。

2.3.3 增量模型、迭代模型

在这里插入图片描述

增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。

增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品 的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件 版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。

与此类似的有一个迭代开发,增量开发和迭代开发往往容易被人混淆,但是其实两者是有区别的。增量是逐块建造的概念,迭代是反复求精的概念。

例如画一幅人物画
在这里插入图片描述
增量模型是先画人的头部,再画身体,再画手脚……迭代模型是先画整体轮廓,再勾勒出基本雏形,再细化、着色…

适用场景: 大型项目,需求不明确

2.3.4 敏捷模型

在早期,迭代瀑布模型非常流行来完成一个项目。但是现在开发人员在使用它开发软件时面临着各种各样的问题主要困难包括在项目开发期间处理来自客户的变更请求以及合并这些变更所需的高成本和时间。为了克服瀑布模型的这些缺点,在1990年代中期提出了敏捷软件开发模型。

敏捷模型主要旨在帮助项目快速适应变更请求。因此,敏捷模型的主要目的是促进项目的快速完成。要完成这项任务,需要敏捷。敏捷性是通过使过程适应项目,删除对特定项目可能不是必需的活动来实现的。此外,避免任何浪费时间和精力的事情。

在敏捷模型中,需求被分解成许多可以增量开发的小部分。敏捷模型采用迭代开发。 每个增量部分都是在迭代中开发的。每次迭代都旨在小而易于管理,并且只能在几周内完成。一次为客户计划、开发和部署一个迭代。没有制定长期计划。

敏捷模型中有一个非常重要的《敏捷宣言》,宣言内容:

  1. 个体与交互重于过程和工具 - 强调高效的沟通
  2. 可用的软件重于完备的文档 - 强调请文档,文档不应该作为工作验收的标准
  3. 客户协作重于合同谈判 - 能够主动迎接变化,即使了解当下的需求
  4. 响应变化重于遵循计划 - 能够主动迎接变化

宣言中主要运用了对比的手法,然而,在每对比对中,后者并非全无价值,但我们更看重前者

通过敏捷宣言可以总结出敏捷模型的四个特点: 轻文档,轻流程,重目标,重产出。

敏捷开发有很多种方式,其中 scrum 是比较流行的一种。

Scrum是敏捷模型中的一种,又称为迭代式增量软件开发模型。

在scrum模型中,主要有三个角色五个重要会议
三个角色:

scrum由 product owner(产品经理)scrum master(项目经理)team(研发团队) 组成。·

  1. 其中 product owner(产品经理) 负责整理 user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
  2. scrum master(项目经理),负责召开各种会议,协调项目,为研发团队服务。
  3. team(研发团队),则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

迭代开发
与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代) ,其周期从1周到4周不等,但不会超过4周。参与的团队成员一般是5到9人。每期选代要完成的userstory是固定的。每次迭代会产生一定的交付。

在这里插入图片描述

scrum的基本流程如上图所示:

  • 产品负责人负责整理userstory(用户故事),形成左侧的 productbacklog(产品待办列表) 。
  1. 发布计划会议: productowner负责讲解userstory,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
  2. 迭代计划会议: 项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
  3. 每日例会: 每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
  4. 演示会议: 迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
  5. 回顾会议: 项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,以达到持续改进的效果。

在这里插入图片描述

敏捷中的测试
轻文档和快速迭代

  • 敏捷模型中强调轻文档,所以测试人员不应使用传统的Excel编写测试用例的方法,更多的使用思维导图、探索性测试(强调自由度,设计和执行同时进行,根据测试结果不断调整测试计划)、自动化测试等
  • 敏捷讲求合作,在敏捷项目组中,测试人员应多主动跟开发人员了解需求、讨论设计、一起。研究bug出现的原因。

2.4 测试模型

测试模型中有两个非常重要且具有标志性的测试模型: V模型W模型

2.4.1 V模型

在这里插入图片描述

V模型最早是由Paul Rook在20世纪80年代后期提出的,目的是改进软件开发的效率和效果。是瀑布模型的变种。

优点:

  • 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间.
    各阶段的对应关系,有效提升测试的质量和效率。
  • V模型指出:
    • 单元和集成测试应检测程序的执行是否满足软件设计的要求;
    • 系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
    • 验收测试确定软件的实现是否满足用户需要或合同的要求。

缺点:
仅仅把测试作为在编码之后的一个阶段,未在需求阶段就介入测试。缺点同瀑布模型。

2.4.2 W模型(双V模型)

V模型中 未将测试前置的问题 在W模型中得以解决。

在这里插入图片描述

W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。

特点:

  • 测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

优点:

  • 有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

缺点:

  • 需求、设计、编码等活动被视为串行的;
  • 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
  • 重流程,无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。

👥总结

本篇博文对 【测试开发】概念篇 - 从理解需求到认识常见开发、测试模型 做了一个较为详细的介绍,不知道对你有没有帮助呢

觉得博主写得还不错的三连支持下吧!会继续努力的~

相关文章:

【测试开发】概念篇 - 从理解需求到认识常见开发、测试模型

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...

【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)

【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】&…...

在sheel中运行Spark

RDD基本概念 Resilient Distributed Dataset 叫做弹性分布式数据集,是Spark中最基本的数据抽象,是分布式计算的实现载体,代表一个不可变,可分区,里面的元素并行计算的集合。 Dataset: 一个数据集合&#xf…...

如何从windows中的cursor打开windows里面的wsl中的项目

解决方法: ✅ 步骤 1:在 Windows 中安装 Cursor 首先,确保你已在 Windows 上安装了 Cursor 编辑器。 安装完成后,打开 Cursor 编辑器。​ ✅ 步骤 2:安装并配置 WSL 扩展 为了让 Cursor 与 WSL 集成,需…...

UE5 C++项目实现单例

在 UE5 中,要实现“全局只有一个实例”的单例模式,主要有两种思路:一种是传统 C++ 静态单例,另一种是利用 UE5 提供的Subsystem体系(如 UGameInstanceSubsystem、UWorldSubsystem 等)。下面先给出核心示例代码及对比,随后讨论典型使用场景、优缺点,对常见问题作出诊断并…...

信息论04:从信息熵到互信息——信息共享的数学度量

从信息熵到互信息:信息共享的数学度量 1. 信息论基础概念 1.1 信息熵(Information Entropy) 定义:信息熵由香农提出,用于量化随机变量的不确定性。对于离散随机变量X,其熵定义为: H ( X ) …...

MYSQL的DDL语言和单表查询

MYSQL的DDL语言和单表查询 Mysql介绍 SQL(Structured Query Language)是一种专门用于管理和操作关系型数据库的标准化语言,通过定义、查询、更新和控制数据,为应用程序提供一致且高效的持久化存储方式。它包含数据定义语言&…...

奇瑞依托汽车产业链,实现服务机器人万台下线

近日,奇瑞集团旗下墨甲机器人(MOJA)全球批量交付的消息得到官方确认。这一重大进展不仅标志着奇瑞在服务机器人领域的商业化落地迈出关键一步,更成为国产智能装备进军全球市场的重要里程碑。 墨甲机器人简介 产品定位 墨甲是奇…...

Python Bug 修复案例分析:函数参数传递引发的逻辑错误修复

在 Python 编程学习的过程中,各种意想不到的 Bug 常常会阻碍我们编写的程序的正常运行。这次,我们将围绕一个因函数参数传递导致逻辑错误的案例,深入剖析 Bug 的修复全过程,帮助初学者掌握处理这类问题的方法。 案例背景 最近编写…...

论文阅读笔记——ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors

RoboGround 论文 一类中间表征是语言指令,但对于空间位置描述过于模糊(“把杯子放桌上”但不知道放桌上哪里);另一类是目标图像或点流,但是开销大;由此 GeoDEX 提出一种兼具二者的掩码。 相比于 GR-1&#…...

deeplabv3+街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用,cityscapes数据集_23

目录 0、简介1、下载链接1.1、CSDN链接,含权重文件直接使用,建议直接下这个,还不限速。1.2 Github链接: 2、下载代码,下载预训练好的权重3、预测代码4、像素提取,或者说类别提取5、文档部分内容截图6、其他…...

JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧

JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧 引言 在当今快速发展的Web世界中,性能已经成为衡量应用质量的关键指标。随着Web应用复杂度的不断提升,JavaScript作为前端开发的核心语言,其性能优化变得尤为重要。本文旨在全面深入地探讨JavaScript性能优化的各个方…...

第2章——springboot核心机制

一、为何以继承方式引入SpringBoot 1.提出疑问 以前我们在开发项目时&#xff0c;需要什么&#xff0c;引入对应的依赖就行&#xff0c;比如我们需要连接mysql数据&#xff0c;则引入mysql驱动的依赖&#xff0c;如下&#xff1a; <dependency><groupId>com.mys…...

huggingface 热门开源TTS模型Dia-1.6B,支持多人对话生成、情感控制~

简介 Dia-1.6B 是一款由 Nari Labs 开发的开源文本转语音&#xff08;TTS&#xff09;模型&#xff0c;专注于生成自然对话。其项目背景和模型架构基于近期可用的网络信息进行了详细分析&#xff0c;以下是全面的报告。 项目背景概述 Dia-1.6B 的开发始于 Nari Labs&#xff…...

深入理解West:介绍、使用及与Repo的对比

目录 引言 West简介 West的由来 West的核心功能 West的架构与工作流程 West安装与使用 环境准备与安装 Manifest 文件结构解析 常用命令详解与进阶用法 Tip与Troubleshoot 实践案例:基于West的Zephyr项目管理 初始化与同步 构建与闪存 插件示例:自定义命令 Repo简介 Repo的背…...

力扣-hot100 (矩阵置零)

73. 矩阵置零 中等 给定一个 *m* x *n* 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 示…...

OpenKylin安装Elastic Search8

一、环境准备 Java安装 安装过程此处不做赘述&#xff0c;使用以下命令检查是否安装成功。 java -version 注意&#xff1a;Elasticsearch 自 7.0 版本起内置了 OpenJDK&#xff0c;无需单独安装。但如需自定义 JDK&#xff0c;可设置 JAVA_HOME。 二、安装Elasticsearch …...

【JVM】从零开始深度解析JVM

本篇博客给大家带来的是JVM的知识点, 重点在类加载和垃圾回收机制上. &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&#x1f680; …...

制造企业PLM系统成本基准:2025年预算分配与资源成本率的5种优化模型

在 2025 年制造业数字化转型的浪潮中&#xff0c;PLM&#xff08;产品生命周期管理&#xff09;系统已成为制造企业提升核心竞争力的关键工具。然而&#xff0c;PLM 系统的实施和运营成本较高&#xff0c;如何有效控制成本、优化预算分配和资源成本率&#xff0c;成为企业关注的…...

【Python】一键提取视频音频并生成MP3的完整指南 by `MoviePy`

摘要 昨天&#xff0c; 我在让一个小朋友给我整理一次培训的视频的时候&#xff0c;我看到他把视频文件放到剪映里面处理。 我以为他要干什么呢&#xff0c; 还很期待&#xff0c;结果他只是为了导出音频而已。 于是就有了今天的这篇博客。 作为音视频处理领域的常用需求&…...

Golang领域Beego框架的中间件开发实战

在Golang的Beego框架中&#xff0c;中间件&#xff08;Middleware&#xff09;是一种强大的机制&#xff0c;用于在请求处理的不同阶段插入自定义逻辑。 中间件可以用于处理日志记录、身份验证、错误处理、请求/响应修改等任务。 Beego框架中间件开发的实战指南&#xff1a; …...

Elasticsearch:我们如何在全球范围内实现支付基础设施的现代化?

作者&#xff1a;来自 Elastic Kelly Manrique SWIFT 和 Elastic 如何应对基础设施复杂性、误报问题以及日益增长的合规要求。 金融服务公司在全球范围内管理实时支付方面面临前所未有的挑战。SWIFT&#xff08;Society for Worldwide Interbank Financial Telecommunication -…...

【LLIE专题】基于 CLIP 的无监督背光增强算法

CLIP-LIT: Iterative Prompt Learning for Unsupervised Backlit Image Enhancement&#xff08;2023&#xff0c;ICCV&#xff09; 专题介绍一、研究背景二、CLIP-LIT方法三、实验结果四、总结五、思考 本文将对 CLIP-LIT: Iterative Prompt Learning for Unsupervised Backl…...

深入了解酒店一次性牙刷:材质选择与设计考量全解析

酒店的一次性牙刷是我们住酒店时常见的用品&#xff0c;它方便了很多旅客出行&#xff0c;虽小巧&#xff0c;却对人们口腔清洁有一定作用&#xff0c;扬州卓韵酒店用品在这个领域表现优秀&#xff0c;下面我们就深入了解酒店一次性牙刷。 一次性牙刷的材质相当重要。常见的有…...

[人机交互]理解用户

一.解释什么是认知&#xff0c;以及它对交互设计的重要性 1.1什么是认知 认知是指与knowing相关的能力&#xff0c;行为和过程&#xff08;考填空&#xff09; -如何感知物理刺激&#xff1f;如注意、知觉等 -如何认识自我、他人以及环境&#xff1f;如意识、记忆等 -如何…...

css3伸缩盒模型第二章(侧轴相关)

css3伸缩盒模型第二章(侧轴相关) 侧轴对齐方式 侧轴对齐我们需要分两种情况&#xff0c;一种是多行&#xff0c;一种是单行&#xff0c;两种设置方式不同 属性&#xff1a;align-items 单行属性&#xff1a; align-content 多行 单行 align-items flex-start: 侧轴的起点对…...

【WPS】怎么解决“word的复制表格”粘贴到“excel的单元格”变多行单元格的问题

把 word文档复制表格到这个excel表格上面的话&#xff0c;会出现由单个单元格变成多行单元格的情况。 现在&#xff0c;就这个问题怎么解决&#xff0c;提出了一个方案&#xff0c;就是先查找是什么导致了这个换行&#xff0c;然后再将换行的这个字符进行一个整体的替换&#x…...

股指期货深度贴水是什么意思?

如果贴水的幅度特别大&#xff0c;比如股票指数是3000点&#xff0c;但股指期货的价格只有2800点&#xff0c;贴水了200点&#xff0c;这就叫“深度贴水”。简单来说&#xff0c;股指期货贴水就是指股指期货的价格低于其对应的现货指数价格。当这种贴水程度较大时&#xff0c;就…...

GCC编译器安装详细说明(举例arm-2013q3)

比如在官网GNU Arm Embedded Toolchain project files : GNU Arm Embedded Toolchain 下载了一个gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2 1 sudo tar -xvf gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2 解决了解压 在部署环境&#xff0c;在安装2…...

第十一届蓝桥杯 2020 C/C++组 蛇形填数

目录 题目&#xff1a; 题目描述: 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述: 题目链接&#xff1a; 蛇形填数 - 蓝桥云课 思路&#xff1a; 思路详解&#xff1a; 看图找规律…...

https://juejin.cn/editor/drafts/7262346366541070395

.Net Core从零学习搭建权限管理系统教程 推荐一组WPF自定义控件开源项目。 项目简介 这是基于WPF开发的&#xff0c;为开发人员提供了一组方便使用自定义组件&#xff0c;并提供了各种常用的示例。 包含组件&#xff1a;数据表格、属性列表、树形列表、选色器、单选框列表、…...

STL?string!!!

一、引言 在之前的文章中&#xff0c;我们一同学习了有关类和对象、模板、动态内存管理的相关知识&#xff0c;那么接下来一段时间我们将要趁热打铁&#xff0c;一起来手撕C库中最重要的一个库----STL中的一些容器&#xff0c;在手撕它们之前&#xff0c;我将先介绍一下对应的容…...

CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略

摘要 本文详述 CentOS 7 系统下安装指定版本 Docker &#xff0c;涵盖镜像加速配置&#xff08;实测最快&#xff09;、存储位置优化、日志轮转等核心配置。 文章目录 一、安装指定版本Docker1.1 卸载旧版本&#xff08;如有&#xff09;1.2 安装依赖包1.3 添加Docker仓库&…...

域名别名(CNAME)解析及域名注册操作步骤

以虚拟主机为例&#xff0c;大多网站空间无独立ip&#xff0c;域名打开以别名解析为主&#xff0c;那域名别名&#xff08;CNAME&#xff09;如何解析呢&#xff1f;以下以新网为例&#xff0c;别名解析操作步骤&#xff1a; 1.登录域名管理界面&#xff0c;点击管理解析记录; …...

JVM内存模型深度解剖:分代策略、元空间与GC调优实战

堆 堆是Java虚拟机&#xff08;JVM&#xff09;内存管理的核心区域&#xff0c;其物理存储可能分散于不同内存页&#xff0c;但逻辑上被视为连续的线性空间。作为JVM启动时创建的第一个内存区域&#xff0c;堆承载着几乎所有的对象实例和数组对象&#xff08;极少数通过逃逸分…...

Unity_JK框架【1】 框架导入 对象池示例 (资源管理底层)

一、JK框架介绍 主要功能系统&#xff1a; 对象池系统&#xff1a;重复利用GameObject或普通class实例&#xff0c;并且支持设置对象池容量 事件系统&#xff1a;解耦工具&#xff0c;不需要持有引用来进行函数的调用 资源系统 Resources版本&#xff1a;关联对象池进行资源…...

JDK 发展历史及其版本特性

JDK&#xff08;Java Development Kit&#xff0c;Java开发工具包&#xff09;是用于开发Java应用程序的核心工具之一。它由Oracle&#xff08;最初由Sun Microsystems&#xff09;提供&#xff0c;包含了Java编译器、Java运行环境&#xff08;JRE&#xff09;、Java标准类库等…...

B站视频下载到电脑的方法总结

将B站&#xff08;哔哩哔哩&#xff09;视频下载到电脑的方法有多种&#xff0c;以下是几种常见且有效的方法&#xff0c;分为 官方工具 和 第三方工具 两类&#xff1a; 一、官方方法&#xff08;B站客户端或功能&#xff09; 哔哩哔哩客户端&#xff08;UWP/PC版&#xff09;…...

2025 后端自学UNIAPP【项目实战:旅游项目】2、安装下载引用前端UI框架:uview-plus

1、uview-plus官网地址&#xff0c;有详细介绍&#xff0c;感兴趣的可以深入了解学习 介绍 | uview-plus - 全面兼容nvue/鸿蒙/uni-app-x的uni-app生态框架 - uni-app UI框架 2、Hbuilder X 方式安装下载引入uview-plus ①进入该网址&#xff0c;点击 下载插件并导入Hbuild…...

Vue 的双向绑定原理,Vue2 和 Vue3 双向绑定原理的区别

Vue 的双向绑定原理&#xff0c;Vue2 和 Vue3 双向绑定原理的区别 Vue 的双向绑定&#xff08;Two-way Data Binding&#xff09;是其核心特性之一&#xff0c;其本质是通过数据劫持结合发布-订阅模式实现的。以下是 Vue2 和 Vue3 在双向绑定原理上的区别和演进&#xff1a; 文…...

RAG_Techniques:探索GitHub热门RAG技术开源项目

RAG_Techniques&#xff1a;探索GitHub热门RAG技术开源项目 引言项目概述RAG技术简介与重要性核心功能详解1. 分类清晰的技术体系2. 前沿技术解析3. 评估工具与方法 安装和使用教程应用场景和实际价值企业知识库和文档检索教育和研究辅助个性化内容推荐 结论 引言 在当今AI领域…...

Java高频面试之并发编程-12

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天又来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;详细说说java的内存模型 Java内存模型&#xff08;Java Memory Model, JMM&#xff09;是Java多线程编程的核心&#…...

多线程系列五:面试中常考的单例模式

1.设计模式 在了解单例模式之前我们先要了解设计模式&#xff1a; 设计模式是一种软性规定&#xff0c;遵守了设计模式&#xff0c;代码的下限就被兜住了&#xff0c;类似于棋谱&#xff0c;是大佬设计出来的&#xff0c;让小白程序员也能写出好的代码 设计模式有很多种&#x…...

音视频之H.265/HEVC编解码并处理

H.265/HEVC系列文章&#xff1a; 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 4、音视频之H.265/HEVC变换编码 5、音视频之H.265/HEVC量化 6、音视频之H.265/HEVC环路后处理 7、音视频之H.265/HEVC熵编…...

Python入门(一)

目录 一、Python数据类型 1.字面量 2.注释 3.变量 4.数据类型 二、 运算符 1.数据类型之间的相互转换 2 算数运算符 3、逻辑运算符 三、判断语句 if 四、循环 1、while循环 2、for循环 2.1 for...else... 五、格式化字符串 1.字符串 1.1创建字符串的方式&…...

2025年01月09日德美医疗前端面试

目录 vue2 的双向绑定的原理vue3 的双向绑定原理vue 的生命周期vue 子组件为何不能修改父组件的值js delete 删除数组的某一个值会怎么样vue 和 react 的 diff 算法什么是闭包原型链this指向 vue2 的双向绑定的原理 以下是 Vue 2 双向绑定的原理&#xff1a; 1. 核心概念 …...

02 mysql 管理(Windows版)

一、启动及关闭 MySQL 服务器 1.1 通过 “服务” 管理工具 winr打开运行&#xff0c;输入services.msc 找到MySQL80&#xff0c;这个是我们在安装mysql的时候给的服务的名称&#xff0c;具体见文章mysql 安装 右键选择启动或者停止。 1.2 通过命令提示符 1.2.1 关闭命令…...

开发搭载OneNet平台的物联网数据收发APP的设计与实现

一、开发环境与工具准备 工具安装 下载HBuilderX开发版(推荐使用开发版以避免插件兼容性问题)安装Node.js和npm(用于依赖管理及打包)配置Android Studio(本地打包需集成离线SDK)项目初始化 创建uni-app项目,选择“默认模板”或“空白模板”安装必要的UI库(如uView或Van…...

ntdll!LdrpInitializeProcess函数分析之Peb->Ldr和全局变量ntdll!PebLdr的关系

代码部分A&#xff1a; PEB_LDR_DATA PebLdr; //全局变量ntdll!PebLdr NTSTATUS LdrpInitializeProcess ( IN PCONTEXT Context OPTIONAL, IN PVOID SystemDllBase ) { 代码部分B&#xff1a; // // Figure out process name. // Teb NtCurrentTeb…...

如何开始使用 Blender:Blender 3D 初学者指南和简介 怎么下载格式模型

Blender 是一个强大的 3D 创作套件&#xff0c;为动画、视觉效果、艺术等提供了一系列功能。无论您是初学者还是经验丰富的艺术家&#xff0c;Blender 都提供了一个免费的开源平台来释放您的创造力。凭借其内置的视频序列编辑器&#xff0c;Blender 还提供基本的编辑功能&#…...