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

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

很多人觉得Node.js没有往年那么火了,事实上不是这样的,Node.js社区健康稳步的发展中,主要是从性能好向好用转变,在易用性上有很大提升,从Node.js源码更新的内容看,大抵如此。Node.js Diagnostics Working Group是近二年Node.js社区的重点工作组,Node.js 14版本之后的大部分功能特性都是这个工作组推动的。早在2015年,有2个跟踪工作组tracing WG 和事后分析工作组 postmortem WG,在2017年合并到Diagnostics WG。核心产出是async_hooks, profiling, tracing, dump debug, report等,都是在易用性和好用性上做提升。让每个Node.js开发者更低门槛的提升Node.js应用的开发体验。

秦粤老师在《浮华过后的Node.js》分享里,也表达了同样观点,他用的是产品化平缓期,也是健康稳步的发展的意思。

f09d3bc1f503d15a282dbbe47268dc6e.png
image.png

社区方面,Web框架已经没有多少空间,以特性取胜的框架,应该不会很多,比较期待Egg3。像fastify这种,修改Node.js机制,在性能领域深耕的框架,目前看是比较有作为的。pnpm是有创新的,但代码是有点可读性不太好。我更加喜欢rushstack对menorepo的改进,大规模编程范式还需要探索。除了去年提的midway-hooks,easy-monitor,看起来remix和morden算新,但还没有超出之前的范畴。

下面结合《Node.js开发者2021报告》内容,我们详细解读一下Node.js 2021年的情况。这份解读是根据冰森&狼叔直播内容整理的,要点如下。

Node.js 开发者 2021 报告原文:https://nodersurvey.github.io/reporters/

或点击阅读原文直接查看。

1)开发框架变化较大,造轮子变少,TS变多,使用企业级框架变多

去年express占比还非常高,今年企业级框架变多,尤其是大而全的框架更受欢迎。

f758ca16bdccee6fc3381b3707b1461a.png
image.png

Egg在国内普及率很高,而Midway和Nest增长较快,其实和TS普及有一定关系。184da09ec8a46f956ba5372508eda771.png

2)版本更新变化较大,从Node 12升级到Node 14,升级比较积极

去年Node.js主要是使用Node 12,2021年Node 14占比将近一半,更新还是较快的。

473f27bf6577a623e3e00246dea8f9bc.png

3)吐槽变多,意味着用的人变多,趋于成熟

C++之父Bjarne Stroustrup说过:世界上只有两种编程语言,一种是整天被人骂的,还有一种是没人用的。

大家对Node.js吐槽变多,实际上是在应用场景上使用较多,不再是针对于某些特性而进行吹捧。回归理性,在真实应用场景上,分布广泛,核心围绕API和BFF层,CLI&工具。2b705cebd96859daf3ec371a4a56c2fb.png

4)出圈:年龄分布较去年比变大,使用工种也变得比较丰富。

除了应用场景上,分布广泛外,非前端以外的开发者相关角色也有很大比例的提升,比如架构师,技术总监,项目经理等都一定程度上使用Node.js。可以说Node.js走出了前端圈,面向更大群体提供服务。另外受访者的年龄分布也变大了,这和出圈是有直接关系的。baaa0857d72293bf780b4f6b2849de53.png

5)使用困惑:性能优化,内存泄漏以及npm依赖

以往对Node.js困惑最多的是异步流程控制,随着async/await的普及,这个问题已经慢慢在弱化。随着开发者使用Node.js深度增加,对性能优化,内存泄漏更为关注,这也是比较容易理解的。

aed69a2b9f26edb2a0c54c93d71d748e.png
image.png

6)未来:从业经验越高则越关注性能和 Serverless

关注性能比较容易理解,关注Serverless最主要是的原因是Serverless可以做到低运维甚至是0运维。运维作为Node.js开发者必备技能,Serverless的出现使得很多非专业Node.js也能轻松搞定Node.js各种服务端场景。

9fe2b9a6c2ec2064aa95e45a8d661785.png
image.png
1307831ada7ed4b95fdcd3daf6226ee1.png
image.png

推荐阅读

  • 天猪《EggJS 的前世今生与未来》,比较期待Egg3,easy-monitor作者一君也加入Egg3项目组了 https://www.yuque.com/atian25/blog/egg-1to2to3

  • 秦粤 《浮华过后的Node.js》链接稍后给出来

参考

  • 原文  https://cnodejs.org/topic/6108bbc2a5d29d175c2d4208

  • 报告 https://nodersurvey.github.io/reporters

如果大家想参与讨论,欢迎回复


18b068b133d2cc71eb7146d48d8a61a9.gif

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》20余篇,在知乎、掘金收获超百万阅读。
从2014年起,每年都会写一篇年度总结,已经写了7篇,点击查看年度总结。
同时,最近组织了源码共读活动,帮助3000+前端人学会看源码。公众号愿景:帮助5年内前端人走向前列。

e84f93dc02f1d5571e75857245a25ef0.png

识别方二维码加我微信、拉你进源码共读

今日话题

略。分享、收藏、点赞、在看我的文章就是对我最大的支持~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建nginx反向代理用做内网域名转发

为什么80%的码农都做不了架构师?>>> 情景 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的…

外国经典儿童读物合集pdf_帮助父母在线购买儿童读物–用户体验案例研究

外国经典儿童读物合集pdfTŤ As our first group project at GA, we needed to quickly learn how to use several online tools that helped our team of 4 collaborate and communicate while socially distant. Despite the rather extreme circumstances our team was stil…

Windows Azure Marketplace增加对六种语言和HTML5应用程序的支持

对于那些不熟悉Windows Azure Marketplace的人来说,它是一个供数据供应商和开发人员购买和销售数据集和应用程序的在线市场。 可以在世界上的26个国家使用Windows Azure Marketplace,它现在支持6种语言,包括日语、汉语、法语、德语、西班牙语…

如何优雅处理 async await 错误——解读小而美的 await-to-js 库

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。这是源码共读活动第…

同态加法_同态的Spotify

同态加法重点 (Top highlight)When neumorphism was predicted to be one of the top 2020 UI design trends, I wanted to give it a shot. Having said that, I wanted to explore a type that had not gone overboard, neumorphism in Dark Mode.当neumorphism预计为顶部202…

ubuntu清除无效的右键打开方式

为什么80%的码农都做不了架构师?>>> 今天安装了几个程序又将它们删除了之后发现了一个比较严重的后遗症,在相关文件右键打开方式中出现了许多实际已经不存在的文件打开程序名。想了多种方法去除,可是效果不佳,最终采用…

咖啡豆(JavaBean)•香

Sun公司对JavaBean的定义为:可以重复利用的软件组件,它在遵循JavaBean技术规范的基础上提供特定的功能,这些功能模块可以组成更大规模的应用系统。 到底什么是JavaBean? 先看一段代码: /** * author yong * */ public class Add { public st…

新一代的编译工具 SWC,97年小哥写的~

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。最近前端圈掀起了一…

开始学习jQuery和准备工作

<script>$(document).ready(function(){}); 首先&#xff0c;在页面顶部添加一行script元素&#xff0c;然后在下一行写上结束符。 浏览器会运行script里所有的Javascript&#xff0c;包括jQuery。 在你的script元素里&#xff0c;添加这段代码&#xff1a;$(document).r…

粉红噪音_粉红的常绿力量

粉红噪音I use Instagram. But I don’t use Instagram in the way that my daughters, who are 21 and 14, use Instagram. More to the point, Instagram doesn’t use me in quite the same way it uses my daughters.我使用Instagram。 但是&#xff0c;我不会像21岁和14岁…

Sql Server 中存储过程的output return的区别

看http://zxianf.blog.163.com/blog/static/301207012009114104124969/中片关于Sql Server中存储过程output和return值的区别 在里面有讲解&#xff0c;我在自己本机中测试的结果如下&#xff0c; 1&#xff1a;ReturnValue只能返回0,1,-1这样的数据&#xff0c;局限性很大 &am…

1个月增长15000 star,zx 库写shell脚本真不错~

大家好&#xff0c;我是若川。持续组织了5个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。今天来讨论一个牛逼…

灰色边框阴影_50种暗模式灰色阴影

灰色边框阴影If you’re an avid dark mode user like me, you’ll know that dark mode isn’t just about white text on black backgrounds. In a single app, a handful of shades of gray give the app some depth. And across various apps, the spectrum of gray become…

Android源代码下载

为什么80%的码农都做不了架构师&#xff1f;>>> Android代码使用git管理, 所以关于Android源码下载一般来说要安装git. 本文是讲述只使用Eclipse完成Android源码下载和关联. 下载Eclipse,目前最新版本是Juno,自带了EGit插件-->Eclipse Git插件 那么可以使用EGit…

关于nginx调转404错误页面

在server{}模块添加如下&#xff1a; error_page 404 /404.html; location /404.html { root /var/www/html/sina/; #“404目录地址” }转载于:https://www.cnblogs.com/alang85/archive/2012/03/01/404_error.html

尤雨溪:Vue 3 将成为新的默认版本

过完年&#xff0c;大年初七&#xff0c;Vue3 将成为默认版本&#xff0c;这时感觉我之前写的几篇文章都可以抽空更新一版了。尤雨溪推荐神器 ni &#xff0c;能替代 npm/yarn/pnpm &#xff1f;简单好用&#xff01;源码揭秘&#xff01;Vue 3.2 发布了&#xff0c;那尤雨溪是…

shell编程系列20--文本处理三剑客之awk常用选项

shell编程系列20--文本处理三剑客之awk常用选项awk选项总结选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号[rootlocalhost shell]# awk -v num2"$num1" -v var1"$var" BEGIN{print num2,var…

v-charts加载动画_加载动画-用户体验写作练习

v-charts加载动画Many new UX writers often struggle to find the balance between creativity and clarity. You can’t make everything fun/exciting/interesting as it can have an adverse effect on usability. But there are times when you can add a bit of flair.许…

linux 常用命令收集

关机&#xff1a;poweroff&#xff0c;shutdown -h now&#xff0c;init 0重启&#xff1a;reboot&#xff0c;shutdown -r now&#xff0c;init 6 关闭x-window&#xff1a;init 3启动x-window&#xff1a;init 5&#xff0c;start x1.终止命令&#xff1a;ctrlc 2.结束输入…

34岁回顾人生,也怕中年危机!

大家好&#xff0c;我是若川。持续组织了5个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。最近发生一件令人感…