【Node 连载 1/9】浮华过后的 Node.js
发布网友
发布时间:2024-08-27 13:39
我来回答
共1个回答
热心网友
时间:2024-08-27 14:01
欢迎来到《浮华过后的 Node.js》的分享。我是极客时间《Serverless 入门课》专栏讲师,也担任阿里巴巴前端委员会-标准化方向负责人,参与共建低代码和 Node.js 方向,并负责阿里设计效率中台 D-One。我同时也是 W3C、ECMA-TC39、JSCIG 的成员。
今天,我们将深入探讨 Node.js 在服务端运行的场景、企业级应用的定义、以及技术成熟度曲线。我们还会讨论 Node.js 与 Java 的对比,以及 Node.js 的发展现状和未来趋势。最后,我们还将分享第 62 届早早聊大会 - Node.js 专场的相关信息。
Node.js 在服务端运行的场景不涉及 CLI 工具或开发端工具方面。企业级应用通常为大型企业或商业组织提供解决方案,考虑到用户量大、访问量高、事务密集、数据量大、用户多以及安全性等因素。
我们还将探讨邓宁-克鲁格效应,这是人类学习新事物时的一种认知偏见,包含五个阶段:从无知到启蒙,再到深入学习的高速爬坡,最后是应用到生产环境的过程。这一阶段与 Node.js 的学习曲线相呼应。
Gartner 技术成熟度曲线描绘了新技术的发展过程,从启动期到高峰期,再到低谷期,最后进入产品化平缓期。Node.js 目前处于产品化平缓期,主要关注底层稳定性改进,使其更适合企业级应用开发。
Node.js 的历程包括 Ryan 在 2009 年的发布,2010 年的高峰,包括 Express 等框架的推出,以及 2012 年 Ryan 离开后到 2014 年 IO.js 的出现。在 2015 年,ES6、IO Merge 的回归以及 Node FA 的成立,推动了生态的快速提升。近年来,增长速度有所减缓,但生态依然活跃。
在 2018 年的 Node.js 地下铁沙龙活动中,成都站提出了「Node.js 是否具备企业级能力」的问题。当前,Node.js 已经具备企业级应用能力,但要达到成熟水平,需要借助如 Gartner 技术成熟度曲线所示的整个生态系统。
Node.js 在企业级应用赛道中竞争激烈,进入白热化状态。企业级应用关注框架生态与语言。变动层包括框架、第三方依赖等运行态,语言层指编程语言本身。大部分代码来自框架和依赖,自我编写代码量少且影响变动层。
部署 Node.js 时,最关注变动层,即自我代码、依赖和框架。语言层相对稳定,不太担心升级问题。与 Java 相比,Node.js 在 SDK 和中间件方面存在差距。阿里正通过 NASA 组织推进 Serverless 方向的基础建设,吸引 Node.js 专家参与。
第 62 届早早聊大会 - Node.js 专场,将于 2023 年 4 月 8 日(本周六)举办,欢迎小伙伴们一起探索 Node.js 的魅力,上车链接:zaozao.run/conf/c62。
在企业级应用中,Node.js 与 Java 的差距主要体现在生态能力上,Java 生态涵盖更多服务。Node.js 社区正通过编写大量 SDK 来追赶 Java 的能力。Docker 的出现解决了环境差异、调试、扩缩容等问题,使得应用与操作系统解耦,增加了可靠性和可移植性。
Docker 容器模型提供独立的运行环境,解决了 Node.js 服务端应用部署的环境一致性问题。SideCar 概念在 Docker 容器中部署进程,提供各种能力,如流量控制和服务端功能。基于 K8s 的服务端架构能力,实现了应用生命周期管理,被称为云端的操作系统。
Serverless 概念比 CNCF 更早出现,但 CNCF 正在建设 Serverless 能力。阿里和微软共建的 Knative 提供应用视角的 Serverless 方案,有望被 CNCF 采纳。随着复杂度下沉,Node.js 框架 SDK 变得更薄,Serverless 处于稳步快速爬升期。
生态的繁荣与稳定性是 Node.js 发展的关键。虽然引入了 CNCF,但 Node.js 代码依赖的生态包存在供应链安全问题,黑客可能通过恶意代码快速传播。为保障安全,阿里对框架提出了维护期要求,并设立了专门的安全团队。国内如朴灵、苏千等为 Node.js 生态做出了杰出贡献。
Node.js 社区提供了丰富的开源解决方案,包括依赖检测、安全告警等功能。CNCF 是一个强大的生态联盟,支持多种编程语言,简化了服务端部署。建议优先考虑使用 Serverless,因为它提供了更灵活、高效的应用部署方式。
最后,推荐《点石成金》这本书,以及我的知识星球,欢迎小伙伴们一起学习交流。如果你对 Node.js 感兴趣,欢迎参加第 62 届早早聊大会 - Node.js 专场,探索 Node.js 的魅力,共同推动 Node.js 的发展。