Node.js 2021年开发者报告解读:健康稳步的发展中
简介 很多人觉得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应用的开发体验。
<p style="margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">很多人觉得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应用的开发体验。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">秦粤老师在《浮华过后的Node.js》分享里,也表达了同样观点,他用的是产品化平缓期,也是健康稳步的发展的意思。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"><img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FqRK1Uehhaz3lFDF3oHeL97Z7zYm" alt="image.png" /></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">社区方面,Web框架已经没有多少空间,以特性取胜的框架,应该不会很多,比较期待Egg3。像fastify这种,修改Node.js机制,在性能领域深耕的框架,目前看是比较有作为的。pnpm是有创新的,但代码是有点可读性不太好。我更加喜欢rushstack对menorepo的改进,大规模编程范式还需要探索。除了去年提的midway-hooks,easy-monitor,看起来remix和morden算新,但还没有超出之前的范畴。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">下面结合《<a style="color: #0088cc;" href="https://nodersurvey.github.io/reporters" target="_blank" rel="noopener">Node.js开发者2021报告</a>》内容,我们详细解读一下Node.js 2021年的情况。这份解读是根据冰森&狼叔直播内容整理的,要点如下。 </p>
<h3 style="margin-top: 30px; margin-bottom: 15px; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; line-height: 40px; color: #333333; text-rendering: optimizelegibility; font-size: 24.5px; border-bottom: 1px solid #eeeeee; background-color: #ffffff;">1)开发框架变化较大,造轮子变少,TS变多,使用企业级框架变多</h3>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">去年express占比还非常高,今年企业级框架变多,尤其是大而全的框架更受欢迎。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"><img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/Fl-QFKuag-dvFGbx7Q45WabMH5d8" alt="image.png" /></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">Egg在国内普及率很高,而Midway和Nest增长较快,其实和TS普及有一定关系。 <img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FvoNa6PGZJN1ZaqZlmXZuRnNUI5_" alt="image.png" /> </p>
<h3 style="margin-top: 30px; margin-bottom: 15px; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; line-height: 40px; color: #333333; text-rendering: optimizelegibility; font-size: 24.5px; border-bottom: 1px solid #eeeeee; background-color: #ffffff;">2)版本更新变化较大,从Node 12升级到Node 14,升级比较积极</h3>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">去年Node.js主要是使用Node 12,2021年Node 14占比将近一半,更新还是较快的。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"><img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FpQcq4qzd9rl-R-VEXzLZAiVMPaa" alt="image.png" /> </p>
<h3 style="margin-top: 30px; margin-bottom: 15px; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; line-height: 40px; color: #333333; text-rendering: optimizelegibility; font-size: 24.5px; border-bottom: 1px solid #eeeeee; background-color: #ffffff;">3)吐槽变多,意味着用的人变多,趋于成熟</h3>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">C++之父Bjarne Stroustrup说过:世界上只有两种编程语言,一种是整天被人骂的,还有一种是没人用的。 </p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">大家对Node.js吐槽变多,实际上是在应用场景上使用较多,不再是针对于某些特性而进行吹捧。回归理性,在真实应用场景上,分布广泛,核心围绕API和BFF层,CLI&工具。 <img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FkEeeI7hvEdSMIyUNaKxnQx9pzcJ" alt="image.png" /></p>
<h3 style="margin-top: 30px; margin-bottom: 15px; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; line-height: 40px; color: #333333; text-rendering: optimizelegibility; font-size: 24.5px; border-bottom: 1px solid #eeeeee; background-color: #ffffff;">4)出圈:年龄分布较去年比变大,使用工种也变得比较丰富。</h3>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">除了应用场景上,分布广泛外,非前端意外的开发者相关角色也有很大比例的提升,比如架构师,技术总监,项目经理等都一定程度上使用Node.js。可以说Node.js走出了前端圈,面向更大群体提供服务。另外受访者的年龄分布也变大了,这和出圈是有直接关系的。 <img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FsnHAf1Map8P8i4bEAn89POQf_8E" alt="image.png" /></p>
<h3 style="margin-top: 30px; margin-bottom: 15px; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; line-height: 40px; color: #333333; text-rendering: optimizelegibility; font-size: 24.5px; border-bottom: 1px solid #eeeeee; background-color: #ffffff;">5)使用困惑:性能优化,内存泄漏以及npm依赖</h3>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">以往对Node.js困惑最多的是异步流程控制,随着async/await的普及,这个问题已经慢慢在弱化。随着开发者使用Node.js深度增加,对性能优化,内存泄漏更为关注,这也是比较容易理解的。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"><img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FkPiwL5U9kbNq1vUE1J8AQKn54z4" alt="image.png" /></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"></p>
<h3 style="margin-top: 30px; margin-bottom: 15px; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; line-height: 40px; color: #333333; text-rendering: optimizelegibility; font-size: 24.5px; border-bottom: 1px solid #eeeeee; background-color: #ffffff;">6)未来:从业经验越高则越关注性能和 Serverless</h3>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;">关注性能比较容易理解,关注Serverless最主要是的原因是Serverless可以做到低运维甚至是0运维。运维作为Node.js开发者必备技能,Serverless的出现使得很多非专业Node.js也能轻松搞定Node.js各种服务端场景。</p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"><img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FjZSOZ1uO-Tqh8yTL2E4CtvMUFbN" alt="image.png" /></p>
<p style="margin-top: 1em; margin-bottom: 1em; font-size: 15px; word-break: break-word; white-space: pre-wrap; overflow-wrap: break-word; line-height: 1.7em; overflow: auto; color: #333333; font-family: 'Helvetica Neue', 'Luxi Sans', 'DejaVu Sans', Tahoma, 'Hiragino Sans GB', STHeiti, sans-serif; background-color: #ffffff;"><img style="vertical-align: middle; border: 0px; cursor: pointer;" src="https://static.cnodejs.org/FshPaWkMvnMKMxJckqf0L-M5OYe1" alt="image.png" /></p>
分享到:
转载:
https://cnodejs.org/topic/61dbd8fd994582918ef7d174
喜欢 2
收藏
上一篇:
Node.js 18 新特性解读
暂无评论信息
- 相关文章
- 文章推荐
-
亚马逊推出“无需收银员”的新技术,以此帮助品牌和广告商提高销量
北京时间 6 月 30 日早间消息,据报道,亚马逊发明了一种无需收银员的技术,可以加快人们去杂货店或便利店的速度。现在,该公司希望利用这个跟踪系统来帮助品牌和广告商提高销量。&
-
git:如何管理本机的多个ssh密钥(多个远程仓库账号)
如果我们电脑上已经存在了一个ssh key,那么我们需要在我们电脑上生成第二个你想在本电脑上使用的id_rsa,使用命令:ssh-keygen -t rsa -C "你的github账号"。
-
jQuery 3.0正式发布
jQuery 基金会刚刚发布了该 Java 框架的 3.0 版本,并且首次抛弃了对老旧的 IE 浏览器的支持。jQuery 3.0 的工作始于 2014 年 10 月,其最初目标是在 2.0 版本之上进行完善,并和遥远的 1.0 版代码说再见——因为要兼容 IE 的缘故,其已经臃肿不堪。jQuery 2.0 已经与 1.0 版本完全不兼容,而 3.0 也将继续这一路线。
-
乐视官方确认还有 400 多人:消息称员工“没有内卷和 996”,过着“没有老板”的神仙日子
7 月 11 日消息,近期,微博博主 @Fenng 分享了一个冷知识:乐视居然还剩下 400 多人,有不少是五年以上的老员工。这些老员工称“幸福感是很多老乐视人留下来的理由”,没有内卷和 996,没拖欠过留下来的员工的工资,也没停过社保。
- 点击排行
- 站长推荐
- 猜你喜欢
- vue3.0获取当前组件或页面的路由参数
- Shopify 完成 1:10 拆股后,股价大跌
- Ceres和壳牌宣布绿色氢电解槽协议
- linux终端中,scp在本机和服务器之间如何交互
- 马斯克“悔婚”,Twitter 告知员工“不要评论”
- 'MongoDB: Failed to parse objectId ' in $convert with no onError value: Invalid string length for parsing to OID, expected 24 but found 0'
- 1像素的实现
- javascript,通用tool,将会持续更新。
- 苹果 CEO 库克、特斯拉 CEO 马斯克、Meta CEO 扎克伯格等科技大佬将参加太阳谷峰会
- Meta放缓招聘:今年工程师招聘规模削减约三成降至七千人
- 网站信息
- 站内问答:12篇
- 站内文章:207篇
- 建站时间:已运行914天
- 备案号: 浙ICP备2022018799号
- 语言:
English(USA)
French(FR)
Chinese(ZH)
无数据