「测试开发全栈化-Go」(1) Go语言基本了解

Python011

「测试开发全栈化-Go」(1) Go语言基本了解,第1张

作为一个测试,作为一个测试开发, 全栈化+管理 是我们未来的发展方向。已经掌握了Java、Python、HTML的你,是不是也想了解下最近异常火爆的Go语言呢?来吧,让我们一起了解下。

Go 是一个开源的编程语言 ,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。这三个人都是计算机界的大神,有的参与了C语言的编写,有的还是数学大神,有的还获得了计算机最高荣誉-图灵奖。

接下来说说 Go语言的特色 :

简洁、快速、安全

并行、有趣、开源

内存管理、数组安全、编译迅速

Go语言的用途 :

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于 游戏 服务端的开发而言是再好不过了。

Go语言的环境安装:

建议直接打开 https://golang.google.cn/dl/ 官方地址因为墙的原因打不开

因为我用的是windows系统,这里主要讲下Windows系统上使用Go语言来编程。

Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.17.2.windows-amd64.msi)的安装包来安装。

默认情况下 .msi 文件会安装在 c:Go 目录下。你可以将 c:Gobin 目录添加到 Path 环境变量中。添加后你需要重启命令窗口才能生效。个人建议还是安装到 Program Files文件夹中。

使用什么开发工具来对Go语言进行编写:

个人建议用VS code, 也可以用Sublime Text来编辑。如果你之前看了我讲的HTML语言的学习,肯定已经下载了VS code. 那么这时你需要在VS code中下载Go语言的扩展插件。

这里有一个巨大的坑,就是在下载Go的插件和依赖包时,会提示一些包没有。主要是因为下载的依赖包部分被墙了,只能想别的办法去下载。

建议参考网页:

https://blog.csdn.net/qq_40876767/article/details/105658433

解决vscode中golang插件安装失败方法

在学习go的过程中,使用的是vscode,但是一直提示安装相关插件失败,然后上网查方法,基本上是叫你建立golang.org目录什么的,结果全是错的,而且都是抄袭,很烦。无意之中看到一位博主分享的方法,他也是饱受上述的垃圾博文困扰,然后找到了解决方法,这里向他致敬,秉着让更多人看到正确解决方法的心,我写下正确的解决方法,希望对你有所帮助,也可以点开原博主链接参考:https://www.cnblogs.com/xll970105/p/11906899.html

Go有一个全球模块代理,设置代理再去安装golang的插件,就可以安装成功了。步骤有,首先Windows用户打开Powershell,一个蓝色的界面,注意不是cmd!不知道的直接打开window下面的搜索,然后输入powershell,搜索出来就可以了。

$env:GO111MODULE=“on”

$env:GOPROXY=“https://goproxy.io”

go env -w GOPROXY=https://goproxy.io,direct

go env -w GOPRIVATE=*.corp.example.com

然后我们打开VsCode界面,下面会提示安装插件,我们选择Install ALL,就会安装成功

当你在运行Go语言程序时,提示所有的插件包都已经安装成功了时,就可以正常使用了,要不然一堆报错会让你非常心烦。

好了,今天先到这里,晚安、下班~

之前写过了Grpc服务开发和接口测试初探【Java】,中间耽搁了一些时间,Go版本的gRPC测试开发实践才有时间学习使用。其中也是由于自己Go语言不够熟悉导致的。之前有段时间想暂时放弃Go语言的学习,导致了Go的生疏,原因是从Groovy到Java性能。

回归正题,Go语言版本的gRPC实践相对Java来说是比较简单的,但是总体的工具链是比较复杂的,可能是因为Go生态目前相比Java还是比较匮乏吧。下面我先简述一下大致的步骤:

以上步骤亲自操作可能会遇到一些小问题,我本人搜到的教程什么的也是乱七八糟,踩了一些坑。我没有整理出一个亲自实践之后的可行的教程,原因有二:

Go语言的gRPC的 proto 编写跟Java大致一致,只有一个报名的参数不太一样。下面是我的 Hello.proto 内容:

这里主要 go_package 网上搜到的配置方式有些不一样,我没有全都尝试,大家在搜索的资料时候,尽量先看看 syntax 这个参数的值,以及文章教程写作的时间,如果距离现在太久了,我建议直接关掉。搜索引擎有过滤功能,可以过滤掉过时的教程。

这里Go语言gRPC的一点优势,就是在一个项目中即可实现,Java需要先弄一个SDK这样。Go语言的gRPC的代码可以通过生成代码命令中的参数实现指定路径。我是放在了和 proto 文件的同级目录。

服务端代码也是比较格式化的内容,如下:

其中 pb.RegisterHelloServiceServer(s, &Ser{}) 如果报错,请检查自己安装的工具 protoc-gen-go 或者 protoc-gen-gofast 版本,一般提取报错 message 搜索也能得到解决办法。

下面是客户端的代码,由于学艺不精,其中大部分参数的含义目前我也不是很清楚,特别是基于 stream 的请求响应的方式使用。后面我先把Java的学完,再回过头来看Go的,按照这个顺序学习和分享。

服务端输出:

忘记打日志了。没有输出

客户端输出:

Go语言的gRPC测试开发实践已经完事儿,大概率上我不会在工作中使用Go作为主力gRPC测试语言,后面测试实践内容还是会以Java为主。

测试和开发属于两个不同的职位!

对于开发而言,入门有一定的门槛,你得掌握一定的专业知识和编程技能,才能胜任工作。职业发展可分为初级程序员,中级程序员,高级程序员,架构师,开发经理,项目经理,技术Leader,技术总监,总载等。随着职位的上升,回报也会越大。喜欢专研技术的同学可以往技术方向走,成为技术大牛。擅长沟通的,又有一定技术功底的,可以往项目管理方向走。总之,一切靠自己,靠人脉,前途无量!

对于测试而言,入门相对简单,刚开始做一些简单的功能验证,如果想深入发展,提高自己,牛逼的测试也是要写代码的,写自动化测试脚本,压力测试,性能测试,对结果进行分析,总结,得出系统的各项临界指标等等。

如果是男孩子,建议选择开发,如果是女孩子,建议选测试!

测试不像开发,开发各种语言层出不穷,但不管用哪种语言开发出的产品,结果都需要测试。目前市场最稀缺的就是测试开发工程师,很多机构培养出来的测试人材也是往这个方向上发展的,可以说是这是一个可持续发展的职位(前期干技术,几年之后转管理,岁数大了还可以写书或者当讲师等),欢迎“入坑”,加油!

至于开发和测试, 到底哪一个好呢? 这是一个仁者见仁智者见智的问题。

首先, 我们先来看一下软件开发人员要求:

1)熟练使用某种或多种编程语言

2)熟练使用Oracle/MySql/SQL Server数据库开发及管理

3)对IT运维软件有一定掌握,可以进行项目场景分析、概要设计、详细设计、代码开发与测试;

我们再来看看软件测试的要求:

1)熟悉软件测试流程, 熟悉测试计划, 测试方案编写

2)熟练编写测试用例

3)熟悉缺陷的生命周期

4)熟悉Python或其它脚本语言, 熟练编写自动化测试用例

5)了解数据库, Linux

纵观以上的需求, 题主应该结合自身情况来做选择。

不管学习哪个,百战程序员是很好的选择!

传统意义上来讲,软件开发的发展空间相对大一些,但并不是说软件测试发展不好,因为我身边就有很多做软件测试的人,经过十年的职场磨砺,如今已经成为公司中高层,有的还创办了自己的软件公司。

从三个方面来比较一下软件开发与软件测试。

⑴ 发展路线的比较

软件开发,要经历的必然阶段有:初级软件工程师 中级软件工程师 高级软件工程师 资深软件工程师 架构师/技术顾问 CTO...

当然,如果在中途转了管理岗位的话,那么路线也会有所变化:初级软件工程师 中级软件工程师 产品经理/项目经理 产品总监/项目总监 高级产品/项目总监 CIO/CEO...

而软件测试的话,基本上路线类似:初级测试工程师 中级测试工程师 高级测试工程师 测试架构师(或测试经理) 测试总监 高级测试总监...

这个比较没有好坏之分,只不过薪资方面,大概率事件是,测试的薪资比开发低不止一个档次,下面会详细说明。

⑵ 薪资方面的比较

同样年限的开发工程师与测试工程师的比较如下,我们拿北京、大连两个有代表性的城市来比较。

①初级职位

北京:开发 9.7-15.2万元/年,测试 7.8-11.2万元/年

大连:开发 5.2-7.9万元/年,测试 3.6-6.5万元/年

②中级职位

北京:开发 12.5-23.3万元/年,测试 10.7-21.8万元/年

大连:开发 7.5-15.0万元/年,测试 6.6-13.4万元/年

③高级职位

北京: 开发 24.9-48.7万元/年,测试 20.5-42.7万元/年

大连:开发 14.2-29.9万元/年,测试 13.1-26.4万元/年

⑶ 职场需求的比较

需求方面来看,也要细分来看待。比如Java开发,在目前的形势下,需求就比较旺盛,而C/C++相比之下,需求就没那么旺盛,当然,这只是比较二者的需求量,并不是说C/C++不如Java。换做测试,那么传统的功能测试显得需求量(或者是竞争力)就不够旺盛,主要原因之一是门槛低,再就是因为测试类工作本来也少。但是,如果你做的是性能测试/自动化测试/安全测试等,那么就会显得需求旺盛了,因为稀缺。

软件开发是不是比软件测试更有前景?这两个岗位的工作内容不一样,这个最重要的是看自己的发展方向。软件开发的就业量大,其实软件测试的就业量也大,只是相对来说软件开发人员的需求量大些。待遇来说,软件开发的薪资普遍高一些,但在有些企业,软件测试的待遇也是不错的。

至于前景,还是主要自己愿意朝哪个方向发展。自己能做什么,想做什么。至于待遇方面,可以看看下面工作年限差不多的待遇比较。

北京软件测试开发工程师:薪资1-1.5万/月

要求:本科学历及必要的资格证书、技能以外,工作经验三年。

北京JAVA开发工程师:薪资1.5-2万/月

要求:必须的Java相关开发技能、本科学历以外,工作经验三年。

上面可以看出,相应的工作经验的前提下,软件开发工程师的薪资是要比软件测试工程师的薪资要高一些的。但技能要求更多,范围更广。软件开发技术性更强,测试工作技术性稍弱,但量也是比较大,工作比较繁杂,特别是如果是各种Case,各种数据都要自己写的情况下。

在软件项目团队中,开发人员是建设者,测试人员是质保者。常说工作不分贵贱,只是分工角色不同。实际上开发岗和测试岗还是有一定区别的,结合自己所在团队情况跟题主分析一下,以供参考。

从岗位数量来说 ,测试开发比例一般情况是1:3或者更少。更有甚者,有些团队没有测试人员。

从岗位技能来说 ,测试更偏重业务,开发更偏重技术。角色不同需要的技术树自然会不一样,时间长了思维方式也差异很大。比如开发人员从建设的角度去考虑问题,测试人员是审视的角度考虑问题。

从岗位前景来说 ,转测试的机会大,测试转开发的机会则很小。计算机专业童鞋去做测试的原因,很大程度上是认为开发有点小难。其他专业的则是想入行软件行业。由此得出,测试人员的基础或多或少的欠缺一点,再加上具体的工作任务繁重,想再学习比较难。

三百六十行,行行出状元。无论是选择开发还是测试,切记这山望着那山高,打好基础,钻研深度,都能取得成功。

测试/开发 不管是 管理/技术 方向都有做到高职位。

我们公司测试管理方向最高职位是VP(副总裁),测试技术方向见过principle(首席)。同样开发也有做到相应的职位。

看你喜欢测试还是开发了,只有在自己喜欢的方向上一直努力才会更有发展。

都很有发展,但在国内测试重视程度不高,所以给人的感觉不如开发好,Google的测试人员和开发人员是1:1的。

大家好,程序媛小姐姐【西瓜皮儿的皮儿】来给大家分享。

软件开发和软件测试都很有市场,潜力很大。下面针对这两块进行详细的说明。

软件开发:这个分支也很多,有java、php、python、go等高级编程语言,每个编程语言的市场也不一样,像java目前来说还是主流的,PHP现在市场占有率也大,但是势头相对来说没有前几年那么火爆了,又比如python语言随着人工智能的发展这两年才火起来,所以每个语言的发展势头也是不一样的,但是有一点毋庸置疑的是编程思维都是大同小异的,就好像写作文一样会有思路和逻辑,所以软件开发也有很大的市场。

软件测试:测试也有分支,比如功能性测试、自动化测试等,如果纯功能测试没有什么大的发展前途的,自动化测试还是可以的,但是自动化测试就需要有软件开发写脚本的能力了,软件开发为软件测试做了一些铺垫,目前来说软件测试的市场需求量还是挺大的。

综上所述,软件开发和软件测试各有好处。

软件测试和软件开发都很有前途的,这两个专业发展前景都很大的,很适合考虑选择的,可以了解一下的,现在选择工作和选择专业一定要选择自己喜欢的,适合自己的,现在选择专业不能盲目选择,一定要认真选择,多选择,多对比,多考虑,多了解,选择一个适合自己的专业,自己感兴趣的专业。