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

【roadMap】我转行软件测试的经历

在这里插入图片描述

软件测试这行咋样?

如果你简单了解过「软件测试工程师」这个岗位,就会知道它的基本特点:

  1. 待遇比开发低,比其他行业高
  2. 入门丝滑,算是技术岗最简单的一类
  3. 测试行业有细分领域:功能、性能、自动化…

每个行业都是一座围城,城外的人想进来,城内的人想出去。2024年加入软件测试=49年入国军?
授人以渔不如授人以渔,无论你最终是否入门,下面这个思维模型都可以参考:

行业前景个人兴趣转行成本
供需关系
竞争
待遇
稳定性
操作系统
编程
算法
时间
经济

所谓无利不起早,我转行的原因就是软件测试比起我之前的工作待遇薪水高很多。
通过上面的思维模型了解行业的供需关系后,我先是通过求职软件「boss直聘」、「前程无忧」、「拉勾网」十几个求职app查看软件测试岗位的薪资待遇,发现符合我的心理预期。供需关系、行业竞争、稳定性都是和大环境相关联的,前几年疫情各行各业都不好做,IT类的大环境也不会好,但是不排除有的行业和公司业绩比以前好,所以不用太过于纠结。

模型中的第二类是个人兴趣,我对电脑游戏很感兴趣,也渐渐的对这些代码是如何呈现出游戏的画面、逻辑产生了兴趣,所以学习编程和算法等对我来说也不是大问题。需要注意的是,在这里除非你是特别厌烦代码,一看到就头疼,其他的情况都不必直接因为兴趣而拒绝了解一个能赚高薪的行业。

确定了前面两个模型,接下来就是转行的时间和经济成本。如果你是理科生,那么恭喜你转行还是比较简单的,大概脱产1-3个月学完一套软件测试的课程后就可以投简历出去面试了;如果你是文科生,可能要花更久的时间,要有个心理预期。学习的时间也不是固定的,每个人学习的能力不同,学完一套课程所花的时间也是不同的。如果你的英语水平比较好,那也要恭喜你,学完甚至可以直接投外企。

入门要学什么?

软件测试的领域细分有很多,但功能测试是最最基础的岗位,无论你的目标是自动化测试、性能测试、测试开发,都必须会做手动的功能测试,就像是建筑的地基一样。

功能测试是软件测试的基础,主要是对软件的功能进行验证。就像我们平时使用各种软件,功能测试人员要确保软件的各项功能都能正常运行。比如一个购物软件,功能测试人员要检查下单、支付、退款等功能是否顺畅。功能测试的特点是操作起来就像你平时双十一在淘宝购物一样简单,很多人要问了,那我是不是不用学就可以做了?巧了,我就尝试过。当时我从网上搜索了一些面试题目先背完,在boss上投递简历后获得一个面试机会。面试一开始还好,靠着背过的面试题目和一些网上的帖子,大概知道面试者提问的意图,也给出了针对性的回答。基本的考验通过后,面试者问到一些技术性的问题就回答不上来了,当时面试官拿出一张纸和笔让我手写一个连表查询的sql,我憋了半天写了一堆shit,致此想要碰运气的我露出了马脚。我是一个比较谨慎的人,临走的时候还不忘确认一下这个岗位的待遇是不是和boss上写的一样,以及试用期的待遇。

现在回头想想这段经历还是可歌可泣,值得纪念的是我虽然失败了,但是它强化了我要潜心学习好相关知识入门的决心,这次的线下面试让我感受到测试工程师这个岗位前景还是不错的。然后我在网上开始找教学的资料,当时的整个行业学习资料比较散乱,我根据面试的要求东拼西凑了一套学习资料,但是没有多久我就学不下去了,主要原因有两点。第一是独自在家学习的效率比较低,学到一半想打会游戏,过一会肚子饿了,搞来搞去半个月进展堪忧,这个原因占20%。网上的资料良莠不齐,刚学的知识还没记牢,又被推翻了,这种感觉是非常痛苦的,产生了对知识可信度的怀疑,我想着学的慢不要紧,学错了就麻烦了。于是我就去报了个培训班,开始系统的学习。

自学vs报班学习

在培训班的日子按部就班,每天都有老师讲课,身边有同学一起讨论问题,唯独难受的是没有收入,导致那几个月吃的清汤寡水的。好在精神上比较有希望,一方面培训班的老师都比较有经验,教学的过程也不是很枯燥。我还记得有一个老师每天都坐高铁从上海往返杭州,她讲的知识偏理论,但是每次都是脱稿,那些测试的概念全部都烂熟于心,每节课的板书都是有几百上千个节点的思维导图,老师的专业像是给了我一记定心丸。培训很快进入尾声,要写简历找工作了,我是班上第一批找到工作的,薪资也是第一梯度,想想看还是很幸运的,不然还真不知道培训的贷款上哪儿去还…
在这里插入图片描述

关于培训班,这个因人而异,像是我当时自控能力不够、迫切的希望有一份工作,网上又找不到系统的教程,综合考虑后去参加的培训。即使如此,还钱的时候也是很肉疼。如果你正待业在家或脱产学习,想要有一个类似学校的环境学习,不想费力自己折腾学习资料,可以考虑正规的培训机构。如果你的自学能力尚可,目前有一份薪水不高但比较轻松的工作,每天的学习时间能保证,那么不建议你报培训班。今年已经是AI的时代了,充分利用好AI学习就是你最好的老师。
都2024年了,如果你还不会用AI学习,不仅是IT行业,在任何行业你都会被擅用新时代工具的人碾压。这是我用AI工具生成的软件测试学习路线,虽然只有一些大方向的基础框架,但还是很全面的,想要深入学习你只要再拿具体的知识点向AI提问即可。
在这里插入图片描述

准备面试

回忆起我在培训班学到的全部知识,也是屈指可数。要是当时有AI,我也不会去培训了,GPT就是一个最好的老师,可以互动问问题,它能给你正确的答案,这就够了。

入行必学四大金刚:

  1. 软件测试理论知识
  2. linux操作系统基本操作
  3. 数据库mysql基本操作
  4. 基础网络知识tcp协议等

第一点自然不用多说,万丈高楼平地起。
面试时肯定会考你:
软件测试是干嘛的?
掌握测试类型:了解功能测试、性能测试、安全测试、回归测试等不同类型的测试
测试生命周期:熟悉软件测试的各个阶段,包括测试计划、设计、执行、缺陷管理和报告。
项目中软件测试的人员参与的环节有哪些?
测试用例的设计方法有哪些?
一条测试用例的要素有哪些?

第二个是linux相关的知识要学习:

linux的基本操作有哪些命令?此问要能列举出十条常用的,例如登陆服务器、文件的增删改查、拷贝文件、移动文件、修改文件权限,稍微进阶一点的要会怎么搜索文件内容、上传下载文件…
这是你在工作中的工具,不会的话会步履维艰,一个简单的任务你要去先查一下怎么操作、还要确认这个操作会不会有风险。
这和开车一个道理,总要学会操作再去开,否则就是上车了在车上百度的面前的按键都是什么作用,左右脚哪个是刹车哪个是油门,很容易出洋相闹笑话。

第三是数据库mysql的知识:

  1. 数据库操作:创建、删除、使用
  2. 表操作:创建表、查看表结构、删除表、截断表
  3. 数据操作:数据插入、删除、修改、查询
  4. 索引操作:索引的创建、删除、查看
  5. 事务的理解,事务开始、提交、回滚

第四是基础网络知识:

网络知识向来是程序员面试的重灾区,就算是一个工作好几年的开发也不一定有好的网络基础知识。如果你面试的公司是涉及到网络、交换机、硬件,那么一定要好好掌握,如果是互联网项目,前两点掌握了基本够用了。

  1. 网络基础

    OSI模型,它有多少层、
    TCP/IP模型与OSI模型的区别是什么、
    什么是IP地址?
    IPv4和IPv6的区别是什么、
  2. TCP与UDP

    TCP和UDP的主要区别是什么、
    什么是TCP三次握手和四次挥手?(经典必考)、
    TCP的流量控制和拥塞控制是如何工作的?
  3. 路由与交换

    路由器和交换机的主要功能是什么、
    什么是子网掩码、如何计算子网、
    VLAN的概念作用是什么?
  4. DNS与DHCP

    DNS的工作原理是什么、
    什么是DHCP、
    如何配置一个DHCP服务器?
  5. 网络安全

    防火墙作用是什么?
    VPN的工作原理是什么?
    DDoS攻击如何防范?
  6. 其他

    HTTP和HTTPS之间的区别是什么?
    请解释一下什么是负载均衡。
    有哪些因素会影响网络延迟?

以上就是最基础需要掌握的知识内容,现在咱会了这些已经可以开车上路了,但是路上的信号灯和那些车道的标志咱还不熟悉,心里有点虚,甚至运气不好还遇上加塞的车,咱这么上路还存在安全隐患。

但是现在副驾有一个老司机,告诉你说先别慌,稳住!咱们见招拆招。

除了上面说的四大金刚,咱们还需要掌握一些基础的测试工具如JMeter、Postman等,达到熟练运用。

面试准备

上面说的问题都是技术类,是我们的地基。地基打好了,我们要做的就是把咱们的地面给它装饰一下,例如设计草坪、设计喷泉等,增加一些生活化的气息,毕竟环境好了人的心情才会好嘛。

面试前精心准备一份简历,不必多说。
面试前给自己打气,把状态调整好,注重面试礼仪不要迟早、着装干净整洁即可。
面试时不要紧张,遇到不会的问题说出自己的思考过程,展现给面试官你的思考能力。
沟通与表达:清晰的表达自己的观点,切记模棱两可。
情商问题:例如你们团队有冲突时怎么处理,开发和产品打起来了诸如此类,站在维护公司利益的角度阐明观点即可,切记不要太过随意,这可能是你给面试官留下好印象的机会。
在这里插入图片描述

面试复盘

成功的路不可能一帆风顺,失败了我们从中吸取教训,每次面试都做一个自我评价,找到下次可以改进的地方。基础不牢就夯实基础,表达不通畅就大胆表达说出来,张大嘴巴多练几次就好了,勇敢的人不仅能先享受世界,还能先获得高薪。复盘面试时也对面试官和公司进行一些评价,这里不必花费太多时间,体会面试官问问题背后的用意,体会说话的艺术,有助于你通过更多的面试。有些面试官问问题不喜欢直接问,比如说“你能接受加班吗?”其实是在判断你是否愿意为了公司多付出时间义务加班,这时候不要简单回答能或者不能,例如说“测试行业为了项目上线是难免要加班的,毕竟一个团队哪一环缺了都不行。”即表达出你对(国内)IT行业的了解,也表现出了你的团队精神。有的单位是强制要求每周加班几天到几点的,为了防止踩坑可以反问“咱们公司有强制加班么?“不建议去强制加班的公司,除非你就只有这一个offer且家里实在是揭不开锅了。这种公司对人的热情和身体消耗太大了,去了也建议尽早跳槽。

正式工作后

进入公司后,你会发现很多学习的东西都和单位实际用的对不上,别着急,这是正常的。先和前辈们了解清楚公司的业务、用到的语言、工具,这时大概率你还在试用期,可能拿着80%或者100%的工资,但是不要松懈,试用期不通过也是比较蛋疼的,而且你新入行就不通过很可能会对这行产生抵触的情绪。所以要每天做好工作的回顾和复盘,把你的一天总结一下,一个月后你就会发现哪些东西已经熟悉了,哪些东西还未掌握,对症下药即可。

先在公司呆住了,有还算可以的稳定的收入,也不要忘记给自己适当的放松一下,周末出去和朋友吃个饭联络一下感情,或是买点喜欢的东西奖励一下自己。接下来就是你的个人成长啦,学习你们项目用到的架构、中间件、开发语言提升自己。

个人职业发展

手工测试做久了了解一下python,做一些接口自动化测试、UI自动化测试,或是你走的更远,学习开发一个测试平台,开发一套自动化的框架,都能帮助你在这条路上走得更远。不用纠结学习哪种代码语言,按我的经验往往你会了解很多种,如果你想走得更远做自动化就选python深耕,想做开发的话不仅要先了解基础语法,还要深入了解web框架,例如python中的django、go中的gin、java中的spring-boot。这些语言我都学习了基础和web框架,现在我想做出一个自己的网站,我又要去学习前端的javascript、vue框架,所以学习什么语言并不是盲目的,而是出于你要干什么事这个目的去学习,学以致用。

我的成长路线

如你所见,我最初也是做手工测试,每天就在我们的网站上点点点,我还记得我刚入职时很开心,上午领了电脑一个下午埋头找出了20多个bug,领导当天就对我刮目相看。一开始我觉得这很平常,一个bug非常多的网站,只要用心找就能找出很多。几年之后我才懂得,做功能测试久了会变得麻木,整天对着网页做输入、点击、用眼睛判断对错,机械化的工作非常的无聊,it’s too boring!

在项目不忙的时候,我自学python,用pytest框架做接口自动化,做测试前先把我们的后端接口用脚本跑一轮,再去做功能测试,这时我体会到了为什么测试用例一定要分优先级,写自动化用例时先把高级的用例自动化掉,手工测试前你心里就有谱了,对这个版本重要的功能后端先有个质量评估,而这些都不需要花费你的时间,喝杯咖啡,等程序跑完出报告即可,我当时很开心用学到的技能减轻了工作量。

这个过程就像玩游戏一样,得到了正反馈,我更加一发不可收拾,开始学习UI自动化、写shell脚本辅助测试、甚至去了解了单元测试。在这个过程就像升级打怪,会遇到打不过的boss卡住,但总能有办法过关,你的角色在不断的升级。

进入测试行业6年,我不仅收获了很多新的技能,从基础的功能测试做到自动化测试、性能测试专家、测试开发。测试行业让我获得了更高的薪水,生活更有质量。很多人说测试是项目里最底层的,这种人是把自己的成见前行安到一个职位上,真的很下头。所有的岗位都有存在的意义,没必要踩高捧低,你问问那些说测试不好的人为啥不去当CEO还在当牛马人?每个阶段我都有一个自己的目标,学习对应的知识,做全栈测试开发是我的下一个目标,我要开发出一个自己喜欢的游戏风格的博客网站。

路不通时,及时换轨,才是对自己人生最好的负责。什么是围城?城里的人想出去,城外的人想进来。

相关文章:

【roadMap】我转行软件测试的经历

软件测试这行咋样? 如果你简单了解过「软件测试工程师」这个岗位,就会知道它的基本特点: 待遇比开发低,比其他行业高入门丝滑,算是技术岗最简单的一类测试行业有细分领域:功能、性能、自动化… 每个行业…...

回归任务与分类任务应用及评价指标

能源系统中的回归任务与分类任务应用及评价指标 一、回归任务应用1.1 能源系统中的回归任务应用1.1.1 能源消耗预测1.1.2 负荷预测1.1.3 电池健康状态估计(SOH预测)1.1.4 太阳能发电量预测1.1.5 风能发电量预测 1.2 回归任务中的评价指标1.2.1 RMSE&…...

半导体制造全流程

半导体制造是一个极其复杂且精密的过程,主要涉及将硅片加工成功能强大的芯片。以下是半导体制造的全流程概述: 1. 硅材料制备 硅提纯: 使用冶金级硅,进一步提纯为高纯度硅(电子级硅),纯度可达 …...

Mac m2电脑上安装单机Hadoop(伪集群)

1. 引言 本教程旨在介绍在Mac 电脑上安装Hadoop 2. 前提条件 2.1 安装JDK Mac电脑上安装Hadoop,必须首先安装JDK,并配置环境变量(此处不做详细描述) 2.2 配置ssh环境 关闭防火墙 在Mac下配置ssh环境,防止后面启…...

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook,返回一个函数的 memoized的值; 2、如果多次传入的依赖项不变,那么多次定义的时候,返回的值是相同的,防止频繁触发更新; 3、多应用在 父组件为函…...

悬赏任务源码(悬赏发布web+APP+小程序)开发附源码

悬赏任务源码是指一个软件或网站的源代码,用于实现悬赏任务的功能。悬赏任务是指发布方提供一定的奖励,希望能够找到解决特定问题或完成特定任务的人。悬赏任务源码通常包括任务发布、任务接受、任务完成和奖励发放等功能的实现。搭建悬赏任务源码是一个…...

Collection接口

目录 一. Collection基本介绍 二. Collection中的方法及其使用 1. 添加元素 (1) 添加单个元素 (2) 添加另一集合中的所有元素 2. 删除元素 (1) 删除单个元素 (2) 删除某个集合中包含在其他集合中的元素 (3) 保留两个集合中的交集部分, 删除其他元素. 3. 遍历元素 (1) …...

电机驱动模块L9110S详解

电机驱动模块是一种用于控制和驱动电机的设备,它能够将控制信号转化为适合电机操作的电流和电压。通过电机驱动模块,可以实现对电机的速度、方向等参数进行精确控制。 今天我们要介绍的 L9110S 电机驱动适合大学生、工程师、个人DIY、电子爱好者们学习和…...

路由之间是怎么跳转的?有哪些方式?

1. React 路由跳转方式&#xff08;React Router&#xff09; 在 React 中&#xff0c;路由跳转通常使用 React Router 来管理。React Router 提供了不同的跳转方式。 <Link> 组件跳转 使用 <Link> 组件来进行路由跳转&#xff0c;它会渲染为一个 HTML <a> …...

AudioSegment 将音频分割为指定长度时间片段 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…...

双目摄像头标定方法

打开matlab 找到这个标定 将双目左右目拍的图像上传&#xff08;左右目最好不少于20张&#xff09; 等待即可 此时已经完成标定&#xff0c;左下角为反投影误差&#xff0c;右边为外参可视化 把这些误差大的删除即可。 点击导出 此时回到主页面&#xff0c;即可看到成功导出 Ca…...

题解 - 莱布尼茨三角形

题目描述 世界上著名的莱布尼茨三角形如图所示&#xff0c;请编程输出图中排在第n行从左边数第m个位置上的数。 输入 共一行&#xff0c;有二个整数N 和M(N<15)&#xff0c;两数间用空格隔开。 输出 共一行&#xff0c;有二个整数&#xff0c;两数间用“/”隔开&#xff…...

低代码开发:企业数智化转型中的关键角色与实践案例分析

引言 随着信息技术的飞速发展&#xff0c;企业数智化转型已成为提升竞争力和实现可持续发展的必经之路。在这一过程中&#xff0c;低代码开发平台作为一种新兴的开发模式&#xff0c;正逐渐成为企业数智化转型的关键角色。本文将探讨低代码开发在企业数智化转型中的作用&#x…...

【ubuntu24.04】PDFMathTranslate 本地PDF翻译GPU部署

https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker排不上号官方都是要安装包,感觉可以本地试着源码部署一下, http://localhost:7860/官方是这个端口,但是我本地启动是:5000IDEA 里本地 backend启动效果 GUI 是监听7860的...

基于Spring Boot + Vue的摄影师分享交流社区的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…...

高空坠物识别

目录 一、回答二、其他参考 prompt 有没有识别高空坠物的github项目一、回答 根据您的请求&#xff0c;以下是一些在GitHub上可以找到的关于识别高空坠物的项目&#xff1a; 1、overthecity 这是一个监控高空抛物的云端服务项目&#xff0c;它利用Edison的计算能力对高空抛物…...

22. 正则表达式

一、概述 正则表达式&#xff08;regular expression&#xff09;又称 规则表达式&#xff0c;是一种文本模式&#xff08;pattern&#xff09;。正则表达式使用一个字符串来描述、匹配具有相同规格的字符串&#xff0c;通常被用来检索、替换那些符合某个模式&#xff08;规则&…...

阿里云数据库MongoDB版助力极致游戏高效开发

客户简介 成立于2010年的厦门极致互动网络技术股份有限公司&#xff08;以下简称“公司”或“极致游戏”&#xff09;&#xff0c;是一家集网络游戏产品研发与运营为一体的重点软件企业&#xff0c;公司专注于面向全球用户的网络游戏研发与运营。在整个产业链中&#xff0c;公…...

leetcode230.二叉搜索树中第k小的元素

标签&#xff1a;二叉搜索树&#xff1b;中序遍历 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1…...

深入了解C++中const的用法

文章目录 一、C中的const如何理解&#xff1f;二、C中的const与C语言中的const有何区别&#xff1f;三、const与指针、引用的结合使用 一、C中的const如何理解&#xff1f; 在C中&#xff0c;const是一个关键字&#xff0c;用来表示常量性&#xff0c;意在告诉编译器某些变量或…...

adb连接逍遥安卓模拟器失败的问题解决方案

1、逍遥安卓模拟器进入系统应用&#xff0c;设置-关于平板电脑-版本号&#xff0c;连续点击3次以上&#xff0c;直到提示进入开发者模式&#xff0c;返回设置界面&#xff0c;进入【开发者选项】-【USB调试】开启&#xff0c;之后重启模拟器再次adb尝试连接。 2、android stud…...

【Go基础】Go算法常用函数整理

Go算法常用函数整理 使用 Go 语言编写算法题时&#xff0c;掌握一些常用的函数和用法可以大大提高效率。 1. 排序 (slices 包)&#xff1a; slices.Sort(x []T)&#xff1a; 对切片 x 进行升序排序。需要 Go 1.18 版本。T 需要实现 constraints.Ordered 接口&#xff0c;例如…...

【rust杂乱笔记】

code . 打开vscode fn main() {println!("hello world!") }loop{}循环; break跳出循环 // 引入三方库 use rand::Rng; // 引入标准库中的输入输出 use std::cmp::Ordering; use std::io;// main函数 先执行main函数 fn main() {// 打印的宏方法// 打印提示信息print…...

BFS算法题

目录 1.BFS 2.树里的宽搜 题目一——429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目二——103. 二叉树的锯齿形层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目三——662. 二叉树最大宽度 - 力扣&#xff08;LeetCode&#xff09; 题目四——…...

辅助函数:mapMutations,mutations里的方法映射到组件的methods中

或者&#xff0c;页面已经映射了该方法 &#xff0c;直接在该页面使用该方法。也就是不用在组件函数中向仓库传递修改数据信息&#xff0c;直接使用映射过来的方法修改数据 修改标题 跟在methods中定义函数不一样调用mutations方法修改标题不一样&#xff0c;新修改的数据是要写…...

XX服务器上的npm不知道咋突然坏了

收到同事的V&#xff0c;说是&#xff1a;182上的npm不知道咋突然坏了&#xff0c;查到这里了&#xff0c;不敢动了。 咱一定要抓重点&#xff1a;突然坏了。这里的突然肯定不是瞬间&#xff08;大概率是上次可用&#xff0c;这次不可用&#xff0c;中间间隔了多长时间&#x…...

2024年山西省第十八届职业院校技能大赛 (高职组)“信息安全管理与评估”赛项规程

2024年山西省第十八届职业院校技能大赛 &#xff08;高职组&#xff09;“信息安全管理与评估”赛项规程 一、赛项名称 赛项名称&#xff1a;信息安全管理与评估 英文名称&#xff1a;Information Security Management and Evaluation 赛项组别&#xff1a;高职教师组 赛项归属…...

Excel拆分脚本

Excel拆分 工作表按行拆分为工作薄 工作表按行拆分为工作薄 打开要拆分的Excel文件&#xff0c;使用快捷键&#xff08;AltF11&#xff09;打开脚本界面&#xff0c;选择要拆分的sheet&#xff0c;打开Module&#xff0c;在Module中输入脚本代码&#xff0c;然后运行脚本 Su…...

深入解析MySQL事务隔离级别与锁机制在银行账户业务中的应用

一、引言 在金融行业&#xff0c;尤其是银行账户业务中&#xff0c;数据的一致性和安全性至关重要。MySQL作为一种广泛使用的数据库&#xff0c;其事务隔离级别和锁机制在保证数据一致性方面发挥着重要作用。本文将针对银行账户查询与转账业务&#xff0c;探讨如何运用事务锁来…...

Linux 设备树

学习设备树之前你需要知道什么&#xff1f; 因为设备树描述了整个芯片和开发板等所有硬件信息内容&#xff0c;所以他的信息量是非常庞大的&#xff0c;RK的linux的设备树算下来大概就有九千多行&#xff0c;大家不要被这个数字给吓到&#xff0c;这些内容都是原厂工程师写的&a…...

Ollama管理本地开源大模型,用Open WebUI访问Ollama接口

现在开源大模型一个接一个的,而且各个都说自己的性能非常厉害,但是对于我们这些使用者,用起来就比较尴尬了。因为一个模型一个调用的方式,先得下载模型,下完模型,写加载代码,麻烦得很。 对于程序的规范来说,只要东西一多,我们就需要一个集中管理的平台,如管理python…...

面向对象进阶:多态

黑马程序员Java个人笔记 BV17F411T7Ao p129~132 目录 多态 多态调用成员的特点 调用成员变量 调用成员方法 理解 多态的优势 解耦合 多态的弊端 解决方案&#xff1a;强制类型转换 instanceof jdk14新特性&#xff0c;将判断和强转放一起 总结 多态 多态调…...

设置IMX6ULL开发板的网卡IP的两种方法(临时生效和永久有效两种方法)

设置开发板网卡的IP&#xff0c;有两种方法。 方法一&#xff1a;临时生效 第一种方式是临时设置&#xff0c;只有本次有效&#xff0c;重启后又要重新设&#xff0c;命令为&#xff1a; ifconfig eth0 192.168.5.9设置成功后可以使用ifconfig命令来查看已设置的 IP 地址。 …...

Navicat for MySQL 查主键、表字段类型、索引

针对Navicat 版本11 &#xff0c;不同版本查询方式可能不同 1、主键查询 &#xff08;重点找DDL&#xff01;&#xff01;&#xff01;&#xff09; 方法&#xff08;1&#xff09; &#xff1a;右键 - 对象信息 - 选择要查的表 - DDL - PRIMARY KEY 方法&#xff08;2&…...

二十七、Tomcat专题总结与拓展

文章目录 一、Tomcat设计思路总结1、Tomcat整体架构2、Tomcat设计思路 二、Tomcat源码设计精髓三、拓展&#xff1a;SpringBoot整合Tomcat源码分析四、拓展&#xff1a;SpringBoot整合Undertow实战1、Undertow概述2、SpringBoot集成Undertow2.1、引入依赖2.2、application.prop…...

WPF+MVVM案例实战与特效(三十九)- 深度剖析一个弧形进度条的实现

文章目录 1、使用 Path 结合 ArcSegment 绘制圆弧1、属性解读2、静态圆弧3、动态圆弧4、运行效果5、圆弧两端点的形状2、总结1、使用 Path 结合 ArcSegment 绘制圆弧 1、属性解读 Path 是 WPF 中的一个标记元素,用于绘制复杂的几何路径形状,而 ArcSegment 用于描述 Path 中…...

Spring Boot 应用 “Connection is closed” 及 MySQL 空闲超时断开连接解决方案

在使用 Spring Boot MySQL HikariCP 的组合时&#xff0c;可能会在生产或测试环境中遭遇类似如下异常信息&#xff1a; org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT ...]; SQL state [nu…...

【数据库】Oracle

文章目录 1. 批量更新 1. 批量更新 这种方式将所有更新操作放在一个事务中执行&#xff0c;减少了与数据库的交互次数&#xff0c;从而可能提高性能。此外&#xff0c;事务处理还可以确保数据的一致性和完整性。begin; update mytable set STATE 102,STATE_DATE now() …...

链式栈的实现及其应用

目录 一、链式栈结构模型 二、链式栈的实现 2.1创建 2.2压栈 2.3出栈 2.4判断栈是否为空 2.5查看栈顶 2.6释放栈 三、应用 链式栈实际上就是基于链表&#xff0c;压栈和弹栈可分别看作头插和头删&#xff0c;链表尾部就是栈底&#xff0c;头指针就是栈顶指针 一、链式…...

结构化的Prompt

资源库&#xff1a; AI 提示词-WayToAGI精选高效的AI提示词库&#xff0c;助力创作者和开发者解锁人工智能的潜力。通过我们的提示词和策略&#xff0c;优化您的AI工具使用效率&#xff0c;激发创意思维&#xff0c;提升产出质量。https://www.waytoagi.com/prompts?tag6 结构…...

ChatGPT突然全球宕机,OpenAI致歉:并查明原因,正积极修复

ChatGPT突然全球宕机&#xff0c;OpenAI致歉&#xff1a;并查明原因&#xff0c;正积极修复 在 2024 年 12 月 12 日上午的北京时间时段内&#xff0c;ChatGPT突发全球宕机&#xff0c;OpenAI致歉&#xff1a;已查明原因&#xff0c;正积极修复 官方证实了其备受瞩目的聊天机器…...

【实验16】基于双向LSTM模型完成文本分类任务

目录 1 数据集处理- IMDB 电影评论数据集 1.1 认识数据集 1.2 数据加载 1.3 构造Dataset类 1.4 封装DataLoader 1.4.1 collate_fn函数 1.4.2 封装dataloader 2 模型构建 2.1 汇聚层算子 2.2 模型汇总 3 模型训练 4 模型评价 5 模型预测 6 完整代码 7 拓展实验 …...

【中工开发者】鸿蒙商城app

这学期我学习了鸿蒙&#xff0c;想用鸿蒙做一个鸿蒙商城app&#xff0c;来展示一下。 项目环境搭建&#xff1a; 1.开发环境&#xff1a;DevEco Studio2.开发语言&#xff1a;ArkTS3.运行环境&#xff1a;Harmony NEXT base1 软件要求&#xff1a; DevEco Studio 5.0.0 Rel…...

SpringBoot 整合 MongoDB 实现文档存储

一、MongoDB 简介 MongoDB&#xff08;来自于英文单词“Humongous”&#xff0c;中文含义为“庞大”&#xff09;是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。基于分布式文件存储的数据库。由C语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解…...

鲲鹏麒麟安装ElasticSearch7.8.0

因项目需求需要在鲲鹏麒麟服务器上安装ElasticSearch7.8.0&#xff0c;考虑Docker方式安装比较简单&#xff0c;因此使用Docker方式安装 环境信息 操作系统&#xff1a;Kylin Linux Advanced Server release V10 (Tercel) Docker&#xff1a;18.09.0 [rootserver ~]# uname …...

NDN命名数据网络和域名的区别

NDN(Named Data Networking)网络的概念 NDN是一种新型的网络架构,也被称为命名数据网络。与传统的以IP地址为中心的网络架构不同,NDN是以数据(内容)本身命名为中心的网络架构。在传统网络中,我们通过IP地址来寻找主机设备,然后获取该设备上存储的内容。而在NDN网络中,…...

PyTorch基本使用-自动微分模块

学习目的&#xff1a;掌握自动微分模块的使用 训练神经网络时&#xff0c;最常用的算法就是反向传播。在该算法中&#xff0c;参数&#xff08;模型权重&#xff09;会根据损失函数关于对应参数的梯度进行调整。为了计算这些梯度&#xff0c;PyTorch 内置了名为 torch.autogra…...

关于linux kernel softlockup 的探究

1. 基本解释 softlockup&#xff1a;发生在某个 CPU 长时间占用资源&#xff0c;但 CPU 仍然可以响应中断 和调度器。软死锁通常不会导致系统崩溃&#xff0c;但可能会使系统响应变慢. 2. 驱动模拟softlockup 以下为代码实现 #include <linux/module.h> #include <…...

MySQL 时区参数 time_zone 详解

文章目录 前言1. 时区参数影响2. 如何设置3. 字段类型选择 前言 MySQL 时区参数 time_zone 有什么用&#xff1f;修改它有什么影响&#xff1f;如何设置该参数&#xff0c;本篇文章会详细介绍。 1. 时区参数影响 time_zone 参数影响着 MySQL 系统函数还有字段的 DEFAULT CUR…...

【计算机网络层】数据链路层 :局域网和交换机

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;局域网 &#x1f6a6;局域网…...