JetBrains 发布 2021调查报告:咱Gopher不爱做饭???

2023-10-31 10:59

本文主要是介绍JetBrains 发布 2021调查报告:咱Gopher不爱做饭???,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我是一只可爱的土拨鼠,专注于分享 Go 职场、招聘和求职,解 Gopher 之忧!欢迎关注我。

欢迎大家加入Go招聘交流群,来这里找志同道合的小伙伴!跟土拨鼠们一起交流学习。

前言

周五下班前看到一个关于2021年JetBrains关于Golang开发者的调查报告。大概看了一下关于咱Gopher和关于其他技术栈的调查报告。下面咱们来看下JetBrains的调查方法和罗列的一些我感兴趣的主题调查结果(调查中涉及技术较多,细节不多赘述)。

首先这里说下JetBrains关于2021 开发者生态系统现状的调查结果的一些重要发现。

  • JavaScript 是最受欢迎的语言。

  • 最想学习使用的语言是Go(Gopher又是欢喜又是悲),其次是Kotlin、TypeScript、Python 和 Rust。

  • 增长最快的 5 种语言是 Python、TypeScript、Kotlin、SQL 和 Go。

调查方法

被受访人群

参与调查的人数有47000人之多,报告的产生是基于 183 个国家/地区的 31743 位开发者的回复,样本实体包括 17 个国家,约占全球所有开发者的 70%。每位受访者仅能看到与本人职业相关的其中的两项:持续集成、问题跟踪和 VCS、测试、DevOps 和托管、静态分析、开源等、教育、跨平台和微服务、通讯工具。

关于样本的准确性

为了减少对非英语受访者的潜在偏差,还采用了多种语言进行调查问卷。为了减小样本偏差,JetBrains还通过不同的渠道针对性地邀请潜在受访者参与调查。另外进行了23 个区域的专业开发者数量在职和失业开发者的比例就业状况、编程语言、JetBrains产品用法三个阶段的加权,以减少全球开发者群体的偏差。

本地参与调查的开发人员占比中,还是咱国人占比最大。

Go

关于Go开发者吃饭问题

纳闷JetBrains居然调查吃饭问题。调查居然发现Go 开发者比其他开发者更喜欢在咖啡馆和餐馆吃饭,还喜欢订外卖,不太愿意自己做饭。这是想说明咱Gopher懒嘛,尴尬。

Gopher们的IDE哪家强

IDE哪家强呢,当然还是Goland了,一方面因为调查主要是JetBrains发起的,调查结果可能有点偏向Goland,但是我以为Goland TOP1是无疑的。另外前段时间记得有一位神仙大佬居然用Word编辑Go程序,学习态度超赞,不过在大神眼里无视这些IDE。

Router你觉得哪家多呢?

结果是gorilla/mux凭借它的小巧、功能强大独占鳌头,甚至比标准库的router还高。go-chi势头也跟上来了,把httproute甩在了后面。建议Gopher们都试用和分析这几个库。相信你会有很大的收获。

WEB框架的选择

gin无疑还是web框架开发者中的大头。

测试框架

调查表明还是Go官方testing包用得最多,不过选择mock框架的话,也可以尝试使用下面几个库进行测试。

你们是如何构建系统呢?

Go build仍然是最受欢迎的构建系统,虽然其份额自去年以来有所下降,从 97% 降至 85%。Makefile 以 37% 的份额位居第二。

看看工资占比

工资高低看来还是架构师最香,Gopher们加油,朝着咱们的目标架构师进发。发现DevOps 工程师也很香哦。工资居然高于开发者。看来DevOps工程师也是很稀缺的。

DevOps

前几天群里还有不少同学们在问DevOps是啥?在这里顺便给大家解读一下DevOps是Development和Operations的结合。维基百科中:DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。最终是让开发和运维更好地沟通合作,通过自动化流程来使得软件更快更稳地交付。

配置工具的选择

结果来看Ansible 仍然是最受欢迎的选择,自定义解决方案也是很多公司的选择。而 DevOps 工程师往往倾向于列出的既有解决方案。

容器编排服务哪家强

结果看来Kubernetes一直在持续增长。但很多公司还是未将容器编排应用于生产中。虽然Kubernetes会减轻开发和运维同学的很多工作。但服务数量少、应用并发量小、学习和运维成本相对较高等这些因素还是暂时将容器编排排除在外了。

对Kubernetes的熟悉程度

看来大部分还是对Kubernetes接触和应用过的。

你选择哪家云服务提供商呢?

亚马逊以一半之多独占鳌头,国内的话还是阿里云比重较多,我们公司也在用。同时也看出很多公司更倾向于公有云服务。

测试

研发项目过程中QA 工程师还是不可或缺的,结果表明50%左右的受访者表示10 名开发者只有不到一名 QA 工程师,这就要求我们开发同学也要具备一些测试的技巧。另外超过40%左右的QA工程师只会手动测试和没有编程技能。看来QA同学也要加强编程技能的学习了。

单元测试中使用哪些覆盖率指标呢?

前几天听群友说他们项目的UT覆盖率竟然要达到60~80%,有点为难了,真是编码一小时,测试一整天啊。不过严格些也好,case还是要尽量都覆盖到。免得上了生产哭戚戚。

项目中有哪些类型的测试呢?

一般简单的功能测试还是最有必要的。大部分公司服务上线的话都会经过如下的测试流程。

你使用BDD(行为驱动开发)技术吗?

12% 的受访者在其测试过程中使用行为驱动开发技术,8% 的受访者使用 AI / ML。其中,AI / ML 主要用于系统日志和用户行为数据分析。

你用哪些测试框架和工具呢?

作为开发人员的我下面好多工具都没用过。测试同学可以多了解了解。

微服务

微服务开发你用什么语言呢?

微服务开发中最受欢迎的 3 种语言是 Java (41%)、JavaScript (37%) 和 Python (25%)。预计,未来更多公司会在项目中使用微服务。加上采用Go语言作为微服务开发的首要语言。相信在接下来的几年里,Go语言会在微服务开发中大放异彩。

服务之间用什么通信呢?

服务之间进行通信的 3 种最流行方式没有改变。仍然是 REST、消息队列和 WebSocket。

API文档你放哪里呢?

个人也比较倾向于API文档放服务中,这样修改接口逻辑等接口文档也随之更新,还可以跟着代码了解变更历史。

PHP&&Java

发现PHP 作为主要编程语言的开发者比例最高的国家居然是法国,甚至比去年还增加了 5 个百分点。不愧是浪漫之都。

在韩国、中国和德国,Java 是最常用的语言。Java 在韩国的份额为 55%,在中国为 47%,在德国为 34%。

Rust

研究表明学习Rust主要是基于自己的兴趣爱好和作为自己的副业语言。而讲Rust应用于工作中的占比只有16%。

编写Rust用什么IDE呢

Visual Studio Code 仍然是 Rust 开发最常用的 IDE (40%),其次是 CLion (24%) 和 IntelliJ IDEA (19%)。不过我很期待JetBrains系列的Rust IDE(不知道在不在计划和开发中)。

如何调试 Rust 代码呢?

调试代码当然用打印了。

Rust能开发什么项目呢?

统计发现Rust 主要用于 CLI 工具 (49%)、系统编程 (38%) 和 Web 开发 (33%) 等项目类型。Rust应用的领域也越来越广,相信不久的将来会有更多Rust应用出现。据我了解现在微软也在大幅度使用Rust进行某些重构开发工作。

团队工具

工具的话相对源代码协作工具比例占比更高些。

CI系统中Jenkins还是最后欢迎的,目前我们公司也是Jenkins用的多一些,相信不久将来GitlabCI也日益增长。

另外发现JetBrains也出来了很多团队协作工具,就算给JetBrains打广告了,真的不得不说太强了。下面是罗列的几个工具,感兴趣的同学可以试用体验一下。

  • Space[1](结合了Git 托管、代码审查、自动化、CI/CD、软件包、问题与文档等)。

  • YouTrack[2] (为敏捷团队打造的项目管理工具)

  • TeamCity[3](面向以 DevOps 为中心的团队的强大持续集成)

  • Upsource[4](代码审查、项目分析)

总结

上面就是关于JetBrains的《2021 开发者生态系统调查》的一些关键性概况和添加的个人描述。更多调查问卷报告细节请到https://www.jetbrains.com/zh-cn/lp/devecosystem-2021/ 查阅。最后你怎么看呢?欢迎留言讨论,表达对JetBrains调查结果的看法。

参考资料

[1] 

Space: https://www.com/zh-cn/space/

[2] 

YouTrack: https://www.com/zh-cn/youtrack/

[3] 

TeamCity: https://www.jetbrains.com/zh-cn/teamcity/

[4] 

Upsource: https://www.jetbrains.com/zh-cn/upsource/

[5] 

什么是DevOps?: https://www.zhihu.com/question/58702398


欢迎关注Go招聘公众号,获取更多精彩内容。

后台资料分享

(后台回复以下数字获取对应资源)

100:Go简历模板 | 101:Go最全面试集锦 | 102:Go超级简历 | 103:Go安全指南 | 1024:LeetCode刷题指南 | 6379:redis集锦 

往期精彩回顾

(点击关键词查看文章)

城市内推

北京 | 上海 | 深圳 | 杭州  | 广州 | 成都 | 西安 |  重庆 | 珠海  | 非996 | 外企.远程办公 

大厂招聘

百度 | 阿里 | 腾讯 | 字节跳动 | 360  | 安全企业 | 京东 | 贝壳 | 滴滴 | 搜狗 | 新浪 | 探探 | 好未来 | 金山云 | 伴鱼 | 联通数科  | ApiSix | AiBee | 游戏公司 | 区块链 | 跨境电商 | 电商 

资源分享

Go项目 | Go资源 |  Rust项目 | Python项目 | 前端项目 |

面试专题

面经 | 面试题 | 每日一股 

Golang专题

每周一库 |  Go好文 

这篇关于JetBrains 发布 2021调查报告:咱Gopher不爱做饭???的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/314889

相关文章

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接:https://arxiv.org/pdf/2408.16766 项目链接:https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架,以验证这个大规模数据集在风格迁移中的有益效果。引入了内容对齐评分(Content Alignment Score,简称CAS)来评估风格迁移

Eclipse发布Maven项目到tomcat,无法加载到lib文件夹下的jar包

BMS 解决方法: 当我们发布web项目到tomcat时,访问地址时会报一个classnotfound的错误,但是eclipse中的项目中都已经添加了相应的类,有一种比较容易犯的错误是,你没有把额外所需的jar包加到tomcat中的lib文件夹中,在这里介绍一种在项目中直接添加jar包到lib目录下:  右键已创建的web项目——properties属性——点击Deployment Assem