软件测试职业规划导图
公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象:
1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发);
2、业务能力较强的测试人员转向了软件需求;
3、沟通能力较强专业能力较强的人员转向了软件实施;
为什么不愿意看到呢,自己培养起来的优秀人员都为别的部门、别的公司干活去了,而测试这边永远都是新人,永远都是刚入门的软件测试工程师:开发水平一般、业务能力一般、沟通能力一般。而那些转行的测试同仁们,薪水并没有质的飞跃,到了‘那边’成绩平平,很快就被埋没了。这里当然要排除那些实在对开发、对业务、对实施非常感兴趣想在这些领域有所建树的狂热者们。问题就来了,那些人为什么要‘转业’呢?原因无外乎以下几点:
1、公司的软件测试没有技术含量,没有挑战性;
2、认为在公司能做到测试经理就已经是测试发展的最高境界了;
3、测试人员薪水较其他低;
4、想了解一下测试之外的其他岗位,丰富自己的阅历,为以后更好的做管理做准备。
那么,公司的软件测试真的技术含量很低吗?工作效率已经达到最高了吗?真的不需要挑战吗?测试经理就没有高级和低级之分了吗?测试人员的薪水就不可以比开发人员高了吗?测试人员真的需要那么多吗?当然不是,也许很多年的‘旧路’不能靠自己改变,也许有人埋怨领导者们因循守旧、顽固不化,但没有人会阻挡我们去创新,去阻止我们探索新的模式、新的思路、新的工作方法去改变这种现状,没有公司是傻子,一个人的薪水和他体现出来的价值是成正比的。所以应该打破常规,去探索新的东西,这种创新不仅包括技术创新也包括管理创新。关于职业发展,仅根据公司的实际情况,和从大家那里得来的想法,谈一谈:
1、开发技能较强的软件测试人员可以转向自动化测试工具、测试管理工具的开发,这里不仅要求开发能力较强,还需要多了解第三方测试工具,挖掘测试组内测试人员的需求,了解业务;
2、业务能力较强的可以做测试(用例、计划)设计工程师,由于公司产品业务较强,需求人员仅能为测试人员提供需求文档,而究竟哪些是最重要的测试点,测试过程中采取什么样的测试方法能使得测试路径最短、覆盖率最全,这些都需要抓住软件业务的精髓;
3、做到了测试经理,完全可以把管理再出神入化,每个人身上有什么特点,怎样能让每个组员的能力发挥到极致,怎么更好的争取测试人员的利益,怎样做到最好的资源调配,怎样让大家不再迷茫,另外,怎样提升自己的威信,提升执行力,领导力,怎样把管理做到让人啧啧,到了这种程度,通过横向和纵向对比,优势自然就出来了。
另外,转做开发、需求、实施,然后又转回测试做管理,这种我是比较赞同的,但度不好掌握,而且如果自己的水平实在太高,很可能会让这类人产生英雄无用武之地的想法,公司的平台太低,而自己感觉自己的水平偏高,所以很可能导致这类人的离职,所以个人的发展和公司测试部的发展一定得保持同步,谁都不能过快,步伐不一致的的两个人怎么能走在一条道上呢?所以在个人发展的情况下,关注公司总体测试发展,先认清两者的发展方向再去‘转业’未尝不可。
4、做到测试设计人员、自动化工具、管理工具开发人员就是极致了吗?当然不是,测试行业照样有咨询、有顾问、专家,测试管理做好了也可以去做项目经理、去做部门经理,实在不行,完全可以去创业嘛。
总之,发展无极限,路是自己走出来的,不要只走别人踩出来的路。
测试人员应该具备的几种思维方式【1】
1、逆向思维方式
· 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分
· 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析
· 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞
2、组合思维方式
· 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长
· 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”
· 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性
3、全局思维方式
· 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求
· 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性
4、两极思维方式
· 边界值分析是两极思维方式的典范
· 为了看系统的稳定性,我们采用了压力测试
· 两极思维方式,是在极端的情况下,看是否存在缺陷?
· 注意是两极,不是一极
· 测试人员做久了,往往容易走极端——职业病,不利于与人沟通
5、简单思维方式
· 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”
· 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向
6、比较思维方式
· 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用
· 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用
· 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式
7、动起来,更精彩
· 关注程序的运行时状态
· 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离
· 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现
其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。
测试工程师的进阶之路【2】
从狭隘的面来理解,测试工程师的本职的进阶方向大致如下:
即两种大方向:管理方向和技术方向。

从广义上来划分测试人员的发展,即不仅仅局限于测试本职工作,大致有6大类的方向。决定不同发展方向的核心技能要素有三个,即:
三核心要素:管理技能、测试技能、业务技能。
根据三种技能的掌握情况和互相之间的交集点,大致分为6个大类方向:
◆ 管理方向
◆ 测试技术方向
◆ 业务技术方向
◆ 技术支持方向
◆ 质量保证方向
◆ 其他方向
六大方向对核心三技能的大致要求,请参考如下图示:

(注:上图只是对六类发展方向,三种核心技能掌握做简单图示,不代表具体数值,也无横向对比价值。)
测试人员的六大发展方向和对应岗位:

(注:只代表各大方向的具体方向,各方向/岗位之间未标识上下级,平级层次关系)
对六大方向的各个岗位,无法一一描述所要学习掌握的知识点。如果对某一方向的某一岗位有兴趣,在网络资源这么发达的今天,有心的话,自然会找到关于测试人员所需要的技能知识,进行归纳总结,所以在本文中不再赘述。
软件测试工程师职业生涯规划【3】
由于国内软件测试行业目前的发展迅速、需求旺盛,在国内的软件测试职位晋升一般要比国外快,但因行业本身太年轻,大家对软件测试中软件测试职业的发展了解不够,从而导致许多有志在此发展的年轻人举步不前。所以下面介绍一下海外公司成熟的软件测试行业职位分布情况,我国一些在软件测试行业中处于前端的公司与之也相仿,这可以作为软件测试职业规划的参考,给新人一个导向。
第一阶段:(测试员)初级测试工程师
自身条件:初入行具备计算机专业学位或一些手工测试经验的个人。
具体工作:执行测试用例,记录bug,并回归测试,通过qtp等测试工具录制回归测试脚本,并执行回归测试脚本。
学习方向:开发测试脚本并且开始熟悉测试生存周期和测试技术。
第二阶段:(测试工程师)程序分析员
自身条件:有1~2年工作经验的测试工程师或程序员。具有初步的自动化测试能力,完善自动化测试脚本。
具体工作:设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工作。
学习方向:拓展编程语言、操作系统、网络与数据库方面的技能 。
第三阶段:(高级测试工程师)程序分析员
自身条件:有3~4年经验的测试工程师或程序员。具有一定的行业业务知识,储备系统分析员的能力。
具体工作:帮助开发或维护测试或编程标准与过程,分析软件需求,获得测试需求。确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测试工程师或程序员充当顾问。
学习方向:继续拓展编程语言、操作系统、网络与数据库方面的技能。
第四阶段:测试组负责人
自身条件:有4~6年经验的测试工程师或程序员。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。
具体工作:负责管理1~3名测试工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/成本估算职责。分析性能瓶颈的原因,为开发团队提供bug解决策略。
负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持与演示;
学习方向:性能测试,测试技能
第五阶段:(资深安全或性能测试工程师)测试/编程高级负责人
自身条件:有6~10年经验的测试工程师或程序员。
具体工作:负责管理8~10名技术人员。性能测试整体方案设计,软件系统性能问题定位和性能优化,内存优化及分析数据溢出等,分析系统的安全漏洞等。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。
学习方向:开发一些特定领域的技术专长
第六阶段:测试/质量保证/开发(项目)、经理
自身条件:有10多年的工作经验。
具体工作:管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和大量演示。负责项目成本、进度安排、计划和人员分工
第七阶段:(公司级质量总监)计划经理
自身条件:有15年以上开发与支持(测试/质量保证)活动方面的经验。
具体工作:管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任
职业生涯规划是人生的大事,下面我结合亲身经历,谈谈自己的观点:
step1:校园阶段 (毕业前1年~1.5年)
很多人的职业规划 是到了工作以后才开始进行的,其实,这样做,有很大的局限性。凡是工作过的人,都有一个体会,就是自己的第一份工作,会影响到5~10年的发展轨迹,甚至会对一生产生影响。因此,选择一份合适的工作作为起点,是必须要在校园内思考清楚的问题。
由于中国的教育基本是理论教育,大家在工作前的实践能力大多比较弱,固然有其不足,但也有好的一面,那就是可塑性比较好。可塑性好代表了选择的余地可以很大,因此,大家在选择第一份工的时候,要充分结合自己的教育背景、个人能力、兴趣爱好、长期目标等等,作出理性的决策。
软件测试,特别是黑盒软件测试是一种入门起点较低、上手迅速、且发展空间比较大的职业,因此,对于很多学生而言,作为进入IT就业的初级岗位,是非常合适的。
校园阶段的规划,主要是选择大的入门方向,当然,此时也可以给自己一个长期的目标,但是不必规划过细,因为,在没有入行前,一切都还未知,把握好路线即可。
下文假设大家选择的是软件测试~~
step2:入门阶段 (入行后3个月~1年)
对于刚刚入行的新人,这个时期是一个全面熟悉期,最能够学习到新的知识,也最有拼搏的热情和动力。建议大家可以借着这股冲劲,尽可能了解所在领域的全貌,了解各个主要分支的内容、特性、优势、局限性等等,并考察自己当前的工作环境,结合个人匹配程度和兴趣爱好,根据前述内容调整自己的规划。
对于测试行当而言,技术方面一般有几类:黑盒测试、白盒测试、自动化测试、测试工具、专用业务技能等;相关的管理方面一般有:测试管理、质量管理、项目管理等。
面对上述形形色色的方向,建议大家可以都稍稍了解下内涵,然后确定1~2个,作为中长期的主攻方向,达此标准,基本已经实现了入门,至于能否进得厅堂,就要看后期的努力了。
step3:提高阶段(入门后3年~5年)
对于入门后选择管理还是选择技术,其实这种问题,是无可无不可的,关键是看对自己的长期的定位了。不过,我个人建议当前阶段还是技术为重吧。毕竟,在一个技术环境中,要做好管理,没有扎实的基础,也难服众嘛。
本阶段是人最容易懈怠的阶段。毕竟,刚刚入行的热忱早已被日复一日的繁复工作给冷却,有了一定的工作经验,胜任本职,对于大多数人而言,绝不是问题。家庭、娱乐方面开始占据了业余生活的主流。可是,毕竟大家还很年轻,大多数人此时也不过20多岁,就此懈怠也是非常可怕的。因此,有规划的提高自身核心竞争力,在这个时候尤为关键。
提高是要提高的,但是对于大多数人而言,也没有必要很拼搏,此时处在一个比较稳定的职位上的你,可以考虑进行细化自己的中期规划了。根据选定的方向,制定一个自我提升的计划,并定义好自我检查的里程碑(譬如:每个季度或半年算一个阶段),每天或者每周,有规律的学习一点即可。抱定一个目标——“每天进步一点点”,几年一大成不是问题。
我个人是反对急功近利的,倾向于稳打稳扎,这个阶段忌做“万金油”,而应努力成为有一技之长的“专家”。
对于选择做技术的人而言,这个阶段的达成标准,一般至少要能够熟悉你所选技术方向的大多数技术细节,“细节决定成败”嘛,虽然把握全局的能力是必要的,但是作技术而言,倘若不能钻的很细很深,恐怕也很难以高手自居吧。
对于选择做管理的人而言,我个人倾向是:此阶段接触管理的理念,并可以介入管理,但是此阶段不宜全面进入管理(除非你有更深层次的考虑,可以不去稳打稳扎)。学习管理的理念是非常重要的,其实管理更多一种思维和做事的方式,这门学问很深入,也不像技术,会不会是那么的显著,因此,建议多看多学,取长补短,并努力形成自己的做事风格。高级软件测试工程师,测试组长等,都是不错的含有技术特征的管理职位,此时的你应该能够胜任于此。
这个阶段的达成后,你也可以跻身老手行列,不必为求职犯愁,你应该可以很容易跳槽或时不时被猎头骚扰下,达成此阶段,你要做更深入的规划。
step4:升华阶段(老手后5年~10年)
此时的你,即将步入中年,不论是曾经专注技术还是偏爱管理的,都面临着家庭和社会的双重压力,你不可能像年轻人一样整天拼搏了,你需要稳定,因此,不能频繁的跳槽,建议考虑比较正规且有潜力的企业,要考虑给自己一个长远的发展规划。
正因为有前期的细节的背景的支撑,此时,你需要努力提升自己的宏观把握能力。哪怕做技术的,也要考虑适当的转型管理(中国特色是:工程师很难超过35岁的,一般人到了30岁不是转管理就是转商务了)。当然,一般人是技术做得越好,管理的时候,越容易切中项目要害。但是,对于从技术上来的人,关键是要开始培养和人打交道的能力。此阶段的关键是,需要逐步形成自己的管理风格,具备协调并行事务的能力。
当然,纯管理和技术型管理还是有所区别的。对于纯管理的人,熟练应用管理的科学理念,形成自己的风格尤为重要。纯管理的测试经理人,不仅仅可以做好测试方面的管理,其实也可以做好项目甚至其他的管理。其实,不管管理的对象是什么,它们的管理理念还是相通的。从测试管理中摸索出来的很多经验,可以很好的推广于其他的管理领域。而对于技术型管理的人,主要是带好技术团队,同时,不断补充新的技术知识,跟紧技术潮流。此时的你,有强大的技术背景支撑,不需要过分钻研细节,只需洞察核心,合理安排好你的团队成员即可。
这个阶段,也可能少数的人会选择离开具体的企业,而开始从事测试咨询,那是一个充满挑战的崭新开始,也必须有前期的积累方能胜任。
对于大多数人而言,此阶段中一个需要重点考虑的问题是,是否将测试作为自己的终生职位,如果是,基本上达到上述的目标,保持状态,基本可以做到退休的。如果不是,那就比较可怕了。其实我不建议此阶段的人转型,除非有充分的理由和很好的机遇。毕竟,达到此阶段,你已经付出了至少5年的努力,而且还是人生的黄金时段,时光一去不复返啊。当前状态下转行,请务必慎重。


相关文章:
软件测试职业规划导图
公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象: 1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发); 2、业务能力较强的测试人员转向了软件…...
360压缩安装一半不动了?一分钟解决!
360压缩软件是我们常用的压缩软件,但是常常会遇到压缩安装到一半停止的情况,下面提供了一些可能的原因和解决办法,大家可以进行尝试~ 方法一:关闭防火墙和杀毒软件 有时候,防火墙和杀毒软件可能会阻止360压缩的安装过…...
堆和栈的区别 重点来说一下堆和栈;堆与栈之间的联系
文章目录 堆和栈的区别重点来说一下堆和栈:那么堆和栈是怎么联系起来的呢? 堆与栈的区别 很明显: 今天来聊一聊java中的堆和栈,工作当中这两个也是经常遇到的,知识我们没有去注意理论上的这些内容,今天就来分享一下。…...
python 批量将图片存入excel单元格内
python 批量将图片存入excel单元格 示例代码1示例代码2 示例代码1 https://blog.csdn.net/wuyoudeyuer/article/details/128185284 # -*- coding: utf-8 -*- # Time : 2022-12-05 # Author : Carl_DJ 实现功能:在excel中,对应的名称后面,…...
Nginx常见的中间件漏洞
目录 1、Nginx文件名逻辑漏洞 2、Nginx解析漏洞 3、Nginx越权读取缓存漏洞 这里需要的漏洞环境可以看:Nginx 配置错误导致的漏洞-CSDN博客 1、Nginx文件名逻辑漏洞 该漏洞利用条件有两个: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 php-fpm.conf中的s…...
Linux C语言 27-递归
Linux C语言 27-递归 本节关键字:C语言 递归 相关C库函数:main、printf 什么是递归? 在C语言中,程序调用自身的编程技巧称为递归(recursion)。递归从字面上可以理解为“递去归来”。 使用递归的优缺点 …...
redis运维(二十一)redis 的扩展应用 lua(三)
一 redis 的扩展应用 lua redis加载lua脚本文件 ① 调试lua脚本 redis-cli 通过管道 --pipe 快速导入数据到redis中 ② 预加载方式 1、错误方式 2、正确方式 "案例讲解" ③ 一次性加载 执行命令: redis-cli -a 密码 --eval Lua脚本路径 key …...
如何科学地划分医学图像数据集
在进行医学图像分类任务时,如何科学地划分数据集是一个重要的问题。这个问题的答案取决于你的数据特性和实验目标。一般来说,有两种常见的数据划分方法:按照比例划分和按照病例划分。 按照比例划分 按照比例划分是一种常见的方法,…...
【开源】基于Vue+SpringBoot的食品生产管理系统
项目编号: S 044 ,文末获取源码。 \color{red}{项目编号:S044,文末获取源码。} 项目编号:S044,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3…...
如何减少40%的Docker构建时间
随着Docker的普及,许多公司的产品会将组件构建为Docker镜像。但随着时间的推移,一些镜像变得越来越大,对应的CI构建也变得越来越慢。 如果能在喝完一杯咖啡的时间(不超过5分钟)内完成构建,将是一个理想状态…...
Scrapy爬虫异步框架之持久化存储(一篇文章齐全)
1、Scrapy框架初识(点击前往查阅) 2、Scrapy框架持久化存储 3、Scrapy框架内置管道(点击前往查阅) 4、Scrapy框架中间件(点击前往查阅) Scrapy 是一个开源的、基于Python的爬虫框架,它提供了…...
JVM——几种常见的对象引用
目录 1. 软引用软引用的使用场景-缓存 2.弱引用3.虚引用和终结器引用 可达性算法中描述的对象引用,一般指的是强引用,即是GCRoot对象对普通对象有引用关系,只要这层关系存在, 普通对象就不会被回收。除了强引用之外,Ja…...
C++期末考试选择题题库100道C++期末判断题的易错知识点复习
今天备考C,看到了一些好的复习资料,整合一起给大家分享一下 选择题 对于常数据成员,下面描述正确的是 【 B 】 A. 常数据成员必须被初始化,并且不能被修改 B. 常数据成员可以不初始化,并且不能被修改 C. 常数据成…...
使用qemu调试arm内核
参考书籍《奔跑吧Linux内核》–笨叔 下载Linux-5.0源码 https://benshushu.coding.net/public/runninglinuxkernel_5.0/runninglinuxkernel_5.0/git/files或者直接git源码 git clone https://e.coding.net/benshushu/runninglinuxkernel_5.0/runninglinuxkernel_5.0.git安装必…...
Pytorch深度学习实战2-1:详细推导Xavier参数初始化(附Python实现)
目录 1 参数初始化2 Xavier参数初始化原理2.1 前向传播阶段2.2 反向传播阶段2.3 可视化思考 3 Python实现 1 参数初始化 参数初始化在深度学习中起着重要的作用。在神经网络中,参数初始化是指为模型中的权重和偏置项设置初始值的过程。合适的参数初始化可以帮助模型…...
Java的threadd常用方法
常用API 给当前线程命名 主线程 package com.itheima.d2;public class ThreadTest1 {public static void main(String[] args) {Thread t1 new MyThread("子线程1");//t1.setName("子线程1");t1.start();System.out.println(t1.getName());//获得子线程…...
一键修复0xc000007b错误代码,科普关于0xc000007b错误的原因
最近很多用户都有遇到过0xc000007b错误的问题,出现这样的问题想必大家都会手足无措吧,其实解决这样的问题也有很简单的解决方法,这篇文章就来教大家如何一键修复0xc000007b,同时给大家科普一下关于0xc000007b错误的原因࿰…...
使用Selenium、Python和图鉴打码平台实现B站登录
selenium实战之模拟登录b站 基础知识铺垫: 利用selenium进行截图: driver.save_screenshot() 注意图片文件名要用png结尾. 关于移动: ActionChains(bro).move_to_element_with_offset()# 对于某个图像ActionChains(bro).move_by_offset(…...
嵌入式设备视频编码比较:H.264、H.265、MPEG-2和MJPG
在嵌入式设备领域,视频编码是一项关键技术,它能够将高清视频压缩为更小的数据量,以实现高效的存储和传输。本文将对四种常见的视频编码标准进行详细比较,包括H.264(AVC)、H.265(HEVC)…...
创意二维码案例:意大利艺术家的最新二维码艺术展!
意大利艺术家——米开朗基罗皮斯特莱托(Michelangelo Pistoletto)的个人艺术展“二维码‘说’”(QR CODE POSSESSION)正在北京798艺术区的常青艺术画廊展出,这是一次别出心裁的创意艺术展! 主要体现在3个方…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
