狼叔:聊聊 Node.js

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 前阵子我在知乎上回答了《2021前端会有什么新的变化?》,单篇33.8万的阅读量,还是不错的,说明大家非常关心前端的变化趋势,这里再与大家分享一下我对 Node.js 相关内容的看法。
来源: Alibaba F2E
作者:狼叔

image.png

前阵子我在知乎上回答了《2021前端会有什么新的变化?》,单篇33.8万的阅读量,还是不错的,说明大家非常关心前端的变化趋势,这里再与大家分享一下我对 Node.js 相关内容的看法。

Node.js 概况

整体看,Node.js 社区还是非常健康且与时俱进的。Serverless 借着云原生这波基建升级,逐渐走入更多开发者的视野中。低运维,甚至是0运维,对前端来讲是致命诱惑的。Node.js 被吐槽最多的运维问题,在 Serverless 时代没有了,且Serverless 容器跑的最多的示例都是 Node.js 环境。以前的说法是“所有云厂商都爱 Node.js”,现在要改成了“所有 Serverless 厂商和开发者都爱 Node.js”了。

如果是今年选 Node.js Web 框架,大概只有 Midway、Nest 和 next.js 了。从框架性价比角度上看,Midway 是很好的,你想要的 IoC 与 FaaS 集成等都是非常专业的,作者能力很强,可惜历史包袱+过度设计,击中开发者的点总觉得不那么准,不太理解搞那么多 gRPC 的集成有啥用,反而在常用db,缓存,脚手架等方面没有啥动作。Nest 作为最像 Java 全家桶的框架,其 IoC 写法从 Angular 而来,生态和规模都已经相当大,是一个不可忽视的存在,如果能接受写法和调试成本,是一个不错的选择。next.js 是一线开发者最佳视角的框架,将易用性做到了极致,从最初 ssr 定位到现在的 jamStack 架构下的全能型框架,相当于 Umi + Midway 的超集,其功能是非常强大的,未来的野心和商业版图是非常可观的。从工程角度看,next.js 第一,其次是 Nest 和 LoopBack4,LoopBack4 在配套做的相当优秀,可惜用的人不多。

新的框架和具有创新点的框架也是有很多的。比如 blitzjs 和 redwoodjs ,目前还是比较新的框架,处于成熟期,从全栈或基于 Jamstack 角度看,未来还是有一定空间的。另外 Midway-hooks 和 Farrow,都有创新的。Midway-hooks 是 Midway-FaaS 基础上加入了 React hooks,由于 FaaS 之上有路由和参数信息,所以在前端的 Ajax 部分可以直接生成出来,再结合 React hooks 友好写法,这是很有创新和与时俱进想法的,在同构演进里也是具有里程碑意义的。另一个是 Farrow,它基于 TypeScript 4.1 发布的特性——Template Literal Types,实现了 Rocket 框架所实现的对 URL 中参数的校验并映射到了 TypeScript 的类型中,这点还算有些新意。

狼叔是如何做的?

狼叔目前淘系前端团队,也一直还在做和 Node.js 相关的事儿,简单分享一下目前在做的事儿。

1、 2019年做 egg-react-ssr,还算比较成功的,大型 ssr 项目算的上是最佳实践了。2020年底开始做 ykfe/ssr,在 egg-react-ssr 基础上,做了插件化,支持了Vite,支持了 Vue2/Vue3/React 多种前端框架,支持 FaaS 和各种 Node.js Web 框架,说是地球上较好的 ssr 框架,也不算过分。在 ssr 世界里,不确定的是 React server component,我还没看明白,研究中。最有可能带来破坏性的是 React concurrent mode,目前这方面尝试还比较少,观望。

早年做 ssr 做C端性能优化是被迫的,今天 ssr 几乎已经成了前端标配,除了唤端拉新效率上提升外,来自各个大厂的关注用户体验升级的背景下,更是催熟了ssr 的落地环境,作为 Node.js 落地重要应用场景之一,ssr 还是有很大上升空间的,相信 ykfe/ssr 也会越来越好。

2、 iMove 面向开发者的逻辑编排工具。年初开源到现在已经超过 2.8k Star 了,可见大家对这种开发方式还是非常认可的。在 lowCode 和 noCode 背景下,iMove 也算是一个还不错的创新方式,通过流程图,双击编写代码,继而完成复杂逻辑处理,在 Code Review 过程里受到了 PD 和后端的极大认可。其实,iMove 更想解决的是编程模式上的创新,以前是按照需求直接写代码,而当可视化之后,先想想节点如何拆分,然后再去实现,这样才能更好的进行设计。iMove 接下来会侧重管理功能(系统设置:Runtime、私有源、节点模板),做好节点市场,并加入 API 模式(对 Node.js 支持会更好)。

iMove 将逻辑进行结构化,和搭建天然是搭档。未来能否改变前端的开发方式,还是值得期待的。

3、通过 ESM 改善开发者体验。在 iMove 开发过程中,我们探索了 ESM 在浏览器中直接运营的能力,无需本地安装 npm 模块。这是极其轻量的做法,结合Vite,以及很多CJS转 ESM 服务,可以看到当下很多研发模式都会被废弃,比如本地开发,WebIDE 等等。如果在浏览器直接可以运行,为啥还要做那些浪费时间且毫无意义的事儿呢?

当然,在浏览器直接可以运行是改善开发者体验的一部分,配套设施要跟上,比如直接在浏览器修改代码并编译保存,是不是想想就很美好?如果再结合 Vercel(next.js 母公司)的做法,将 Serverless 和 CI/CD、Git hooks 进行集成,页面托管到 Serverless 平台,无需关心运维。是的,只要有一个浏览器,就可以满足前端的所有开发的时代,很快就可以实现。

4、《狼书》卷三很快就要发布了。卷三主要是自己写 npm,写框架,测试,开源,微服务,性能调优,如何学习这些内容。在我看来,《狼书》三卷还是面向初级 Node.js 开发者,卷三写的是高级篇,除了一些实践外,又加入了开源和如何学,目的是为了授人以渔。

既然是授人以渔,狼叔也在此送出狼书10本(卷一卷二随机送出),欢迎大家关注 Alibaba F2E 微信公众号,回复 送狼书 参与抽奖。

f441bb4cf20944bda66ddae869a2c488.png

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
运维 JavaScript 前端开发
大咖说*图书分享-Node布道师狼叔|三卷书详解Node.js
狼书系列图书以Node.js为主,讲解了Node.js的基础知识、开发调试方法、源码原理和应用场景等内容,旨在向读者展示如何通过新的Node.js和npm编写出更具前端特色、更具工程化优势的代码。
328 0
大咖说*图书分享-Node布道师狼叔|三卷书详解Node.js
|
2月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
782 11
|
7月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
6月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
5774 24
|
7月前
|
JavaScript 前端开发 数据可视化
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
423 2
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
|
7月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
|
6月前
|
数据库
【YashanDB知识库】安装共享集群时报错:YAS-05721 invalid input parameter, reason: node name invalid
【YashanDB知识库】安装共享集群时报错:YAS-05721 invalid input parameter, reason: node name invalid
|
8月前
|
JavaScript
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
1369 27
|
10月前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
567 58
|
10月前
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
315 2
2024年5月node.js安装(winmac系统)保姆级教程