大家好,我是若川。欢迎加我微信 ruochuan12,长期交流学习。今天分享一篇Node.js报告,记得当时我还参与填写这个调查问卷了,Node.js的重要性不言而喻。微信预计阅读只需7分钟。点击下方卡片关注我,或者查看源码系列文章。


本次调查以 Ecma 成员名义发起,阿里巴巴、腾讯等公司领衔。该调查事件从 2020 年 2 月至 2020 年 4 月,以中文进行。截止 4 月 10 日共有 1,113 名受访者参加。

报告的高清图表以及不同维度筛选交互,请点击阅读原文跳转到 GitHub page 页面查看。

受访者

人物来源

本次调查问卷中,填写问卷的 Node.js 开发者主要年龄分布如下:

他们的主要分布情况为:

其中以城市角度看,人数分布主要是:

职业简历

  • 典型的受访者来自两种公司,分别是百人左右的小型公司,以及 5k 人以上的大公司。

  • 他们通常是 7 人左右的团队内的前端或者全栈工程师。

工作内容

应用场景

  • Node.js 的典型应用场景是网站开发。

  • 大公司内会有更多的人使用 Node.js 进行工具 & 自动化开发。

  • 中小公司会更乐意在移动应用中尝试 Node.js。

  • 不少人 (35.01%) 学习 Node.js 是出于业余爱好,在小公司更加明显。

开发场景

  • 整体而言有 87.50% 使用 Node.js 开发服务端 API,有 51.19% 的人开发 CLI & 工具。

  • 随着使用年限增加将 Node.js 作为服务端 API 的比率略有下降 (5%) 而 BFF 的使用场景略有上涨 (4%)。

  • 越年轻的使用者越愿意在 SSR 场景中使用 Node.js。

多语言

  • 与 Node.js 开发最契合的是前端开发语言(JavaScript/HTML/CSS)。

  • 除了前端,整体上与 Node.js 最常见并存的语言分别是 Java(25.27%)、Python(22.24%) 和 Go(17.73%)。

开发流程

代码转译

  • 随着 Node.js 使用年限增加,不转译的比率大幅下降 (45% 到 25%)。

  • TypeScript 是最常用的转译语言。

代码检查

  • 整体上有 90% 的 Node.js 开发者使用过 ESLint。

  • 随着团队规模的增大 TSLint 的使用存在微小的增幅。

配置方式

  • 文件配置是最流行的配置方式。

  • 虽然配置中心使用概率不高,不过公司规模越大则配置中心的使用概率越高。

编辑器

  • VS Code 一骑绝尘,是 Node.js 开发者最喜爱开发工具

进程管理

  • 公司越大使用 Docker 的比例越高。

  • 中型公司使用 PM2 的比例更高。

操作系统

技术栈

一个典型的 Node.js Web 应用:

  • 使用 Express/Koa 框架

  • 使用 Mysql/MongoDB + Redis 数据

  • 同时配置了 Nginx 作为反向代理

Web 框架

  • 虽然感受上 Koa.js 的教程更多,但是实际上 Express.js 依旧是最常见的框架。

  • 除了 Koa/Express 之外较流行的 Web 框架分别有 Egg.js (38%)、Nest.js (15%)、Next.js (7%) 和 Midway.js (6%)。

数据库

  • 在 2020 年,如果要学三个数据库,那么请学习 MySQL (79%)、MongoDB (60%) 和 Redis (49%)。

反向代理

  • Noder 们对于反向代理的概念是约等于 Nginx 的。

  • 使用反向代理的基本都会使用 Nginx。

  • 越大的公司越倾向于使用反向代理。

RPC

  • HTTP 是最常见的 RPC 方式,此外使用最多的是消息队列。

  • 中型公司使用消息队列的比率最高。

  • 大公司使用自研 RPC 协议的比率最高。

消息队列

常用的消息队列(多选) 仅 18% 的同学填写消息队列(问卷星渠道不包括)

开发生态

Node 版本

  • 在 2020 年,开发者们普遍使用 12.x 或更高版本 13.x。

  • 除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。

  • 仅有不到 6% 的开发者在使用非 LTS 版本的 Node.js。

依赖管理

  • NPM 影响力巨大,仅有不到 6% 的同学可以摆脱 NPM 只使用其他的依赖管理工具。

  • 除了 NPM, 最流行的管理工具主要是 yarn 以及 cnpm。

  • 随着开发经验的增加,开发者会更多的试图寻找 NPM 以外的依赖管理工具。

NPM 镜像

  • 使用镜像加速的同学超过 57%,但是这对 NPM 的下载速度并没有起到决定性的影响。

  • 通过比例分析可以发现,除了镜像加速,下载速度越快的同学中公司部署私有 NPM 镜像的比例越高。

学习提升

学习途径

  • 老司机更多的从开源代码 (Github & NPM) 来学习 Node.js。

  • 新同学相比之下会更多的通过学习视频以及博客 & 期刊等渠道学习。

使用困惑

  • Node 开发者使用困惑的前三分别是性能优化 (58%)、内存泄漏 (42.4%) 以及 Debug (24.89%)。

  • 新人更容易面临的困惑前三分别是 异步编程、事件驱动以及 Debug。

  • 随着开发经验的增加,内存泄漏的比例也逐步上升。

资源需求

  • 文档是大家最期待的资源。

  • 新同学对视频教程和免费在线课程的呼声最高。

  • 随着开发经验的增加,开发更加关注文档、大会活动以及线下沙龙。

未来关键字

  • Serverless 和多线程是 2020 年的 Noder 们最关注的新关键字。

  • 从业经验越高则越关注 WebAssembly (WASI) 和 N-API。

  • 越年轻的同学越关注 Deno。

生态期望

  • Node.js 开发者中呼声最高的需求是更好的性能以及开发效率。

  • 此外不满 1 年的开发者更关心学习成本,年限越长越关心维护成本。

最后

同样的数据在不同的人眼里可以衍生出不同的看法,本报告内的解读仅供参考。同时欢迎社区同学对本报告进行解读和分析。

如果发现有疏漏或者有你自己的想法/吐槽都可以在 GitHub (https://github.com/NoderSurvey/reporters) 上提 issue 反馈。同时报告的高清图表以及不同维度筛选交互,请点击阅读原文跳转到 GitHub page 页面查看。


最近组建了一个江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你进群。


················· 若川出品 ·················

今日话题

前不久新加的今日话题这个栏目,虽然可能很多人没有看到这里,但我应该会坚持写下去。今天在群里得知有位读者朋友置顶了我的微信群而且星标了我的公众号,深感欣慰。

一个愿景是帮助5年内前端人走向前列的公众号

可加我个人微信 ruochuan12,长期交流学习

推荐阅读

我在阿里招前端,我该怎么帮你?(现在还能加我进模拟面试群)

如何拿下阿里巴巴 P6 的前端 Offer

Node.js 开发者 2020 年度报告相关推荐

  1. 2020 年 Node.js 开发者调查报告

    导读:本次调查由阿里巴巴.腾讯等公司领衔,调查时间从 2020 年 2 月至 4 月,以中文进行.截止至 4 月 10 日共有 1113 名受访者参加调研.本报告将从 Nodejs 开发者人群.应用场 ...

  2. Node.js 开发者的 Rust 入门指南

    作者 | Florian GOTO 译者 | 弯月    责编 | 欧阳姝黎 出品 | CSDN(ID:CSDNnews) 以下为译文: 随着WebAssembly的进步,如果你想在JavaScrip ...

  3. 在2019年,如何成为更好的Node.js开发者?

    这篇文章汇编了 19 项在 2019 年可能会很有价值的技能和主题.但请不要感觉到有任何压力--我和其他大多数开发者也并非对每一个主题都很熟悉.我只是觉得这些东西应该值得我们关注,而且 JavaScr ...

  4. 成为自信的node.js开发者(一)

    这个博客是我最近整理了过去的文章. 适合阅读的同学 想更进一步深入理解node的同学,如果你已经稍微了解一点点node, 可以用node做一些小demo,并且想更深一步的了解,希望这篇文章可以帮助到你 ...

  5. 一个优秀的 Node.js 开发者

    初创公司是我的激情所在,而我干的也是管理一群雄心壮志的开发人员.我工作在Strongloop,并且已经在很多初创公司待过.初创公司在雇佣问题上有它独特的挑战----预算紧,期限近.加上要使用开源框架进 ...

  6. 为 Node.js 开发者准备的 8 本免费在线电子书(转)

    ode.js 是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设你是在POSIX环境下运行它 Linux 或 Mac OS X.如果你 ...

  7. Node.js基金会官方的开发者认证准备就绪

    Node.js基金会正在为新的Node.js开发者认证(Developer Certification)做最后的准备工作,该认证计划于十二月推出. \\ 新推出的认证可能将采用一种不同于开发人员习以为 ...

  8. Node.js 2021年开发者报告解读

    大家好,我是若川.持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列& ...

  9. OpenJS 基金会推出 Node.js 证书,JS 开发者可以“考证”了

    OpenJS 基金会近日在其官方博客公布了最新启动的专业认证计划.据介绍,此项认证计划重点关注 Node.js 开发者在专业环境中构建 Node.js 应用和服务所需的关键技能.开发者通过认证后,可获 ...

最新文章

  1. OSPF的RID和DR/BDR的选举
  2. 关于ARP、MAC、IP欺骗以及TCP劫持
  3. java中等待所有线程都执行结束
  4. MATLAB中rand,randi,randn函数,及rand('state',0)和rand('seed',0)产生随机种子详解
  5. List.FindAll 方法
  6. 英雄会挑战失败求原因
  7. 【echarts】echarts开发详解
  8. 一致性协议raft详解(一):raft整体介绍
  9. perf +火焰图使用
  10. python标准库(二)
  11. 树莓派摄像头_Arducam 8MP重磅来袭,为树莓派4B构建完全同步的双摄像头方案~
  12. python根据BM25实现文本检索
  13. 20-190-090-安装-Flink集群安装 flink-1.9.0
  14. axure网页预览_解决Axure发布分享预览的3个方法
  15. TOPSIS法作业题
  16. python HtmlTestRunner python2.x python3.x报告优化模板源码下载
  17. 哈工大教授车万翔:基于迁移学习的任务型对话系统
  18. aria2+RPC+m3u8下载工具(windows版)
  19. java中 implement_java中implement
  20. win7系统服务器角色向导,Windows Server2012入门-添加服务器角色和功能

热门文章

  1. android相对布局代码,Android基础_3 Activity相对布局(示例代码)
  2. 进程调试--进程启动VS自动附加
  3. Python爬虫1-----------placekitten 入门
  4. Mysql多表查询(两张独立表,一张关系表)
  5. 无忧开通了博客园博客主页
  6. 微软中国推校园先锋计划,保障学生低价获取正版软件
  7. python题目推荐_python题目
  8. 机械秒表的使用方法_让console.log()不再是你的唯一选项js日志输出6种方法
  9. yii2 php反射,Yii2.0-advanced-3—为yii2添加后台模板adminlte和权限组件yii2-adm
  10. mysql explain 分析中select_type列解释