Open CntChen opened 7 years ago
公司大前端团队准备上 Node 了,激动人心.所以首先需要预研一下 Node 的应用场景和能力范围,探索 Node 生态跟业务需求结合起来的方式.
Node 是基于 V8 JavaScript 引擎的 JavaScript 执行器. Node 采用事件驱动和非阻塞 I/O 模型达到轻量和高效,并拥有庞大的模块包生态 -- npm.
Node 在高并发轻 CPU 场景性能比 Java 和 PHP 好.
一门编程语言的特性和性能会趋向一致,剩下的就看选择.
阿里的很多 Node 服务,并不是不能用 Java 做,而是前端工程师在自己能力范围内把事情做了,而且做得蛮好的. -- Winter 在 TFC 致词,我听到的大意
使用 Node 技术栈,小团队可以更快把事情做成.
需要一名 Node工程师时,在2年 PHPer 和 2年 FE 间会毫不犹豫选择 PHPer. -- 说明写 Node 服务端, JS 语言不是重点,服务端开发的经验和能力才是
Node 作为 Web 服务器,连接后台数据库/文件系统,接受网络请求,处理业务逻辑,提供静态资源和业务接口.
在服务器(Java/PHP)与浏览器(JS)的中间架一个 Node 中间层.Node 中间层提供直出,接口转发,静态资源等,属于前端范畴,由前端维护.
在前后端接口分离(前后端解耦)情况下,在客户端访问页面时,服务器拉取接口数据,并将数据嵌入页面返回,称为直出.如果返回的是数据和模板,在前端渲染,称为数据直出;如果后端根据数据渲染出页面,直接返回页面,称为页面直出.
Node 中间层代理后台接口,后台接口提供原子 RESTful 接口,前端根据需要组合使用.Node 调用内部接口使用 HTTPS/RPC 等. 参考: 接口聚合的简单研究
关注点在于 Node 的开发和部署方式
关注 Node 层数据的落地,作为其他 Node 层功能的基础支撑.
What companies are using Node.js in production node.js能开发大型网站吗 -- 国外使用情况
我司没有历史包袱 我们没有直出服务,没有 Node 服务,所以在提升性能,提升用户体验,降低开发成本上,基本可以无痛选择 Node 技术栈.
我司没有积累
Node 服务层的能力是非常强大的,结合我司业务,可以实践的工程还是很多的.以下为头脑风暴结果,具体开展需要做可行性分析,需求评审,架构规划,功能划分,开发计划等等工作.
客户端对接口的访问,先经过 Node 接口中间层,由中间层代理接口服务.
微信商城和 App 的手机专区已经使用了服务端直出,可以保持关注和迭代.
创业团队撸 Node (科普贴,非常有意思)
2017,我们来聊聊 Node.js
PayPal 的 Node.js 实践 (Java 和 Node 并行,渐进)
Node.js 在广发证券(介绍架构和微服务)
前后端分离的思考与实践
淘宝前后端分离实践(定义前后端边界)
背景
公司大前端团队准备上 Node 了,激动人心.所以首先需要预研一下 Node 的应用场景和能力范围,探索 Node 生态跟业务需求结合起来的方式.
Node.js
Node 是基于 V8 JavaScript 引擎的 JavaScript 执行器. Node 采用事件驱动和非阻塞 I/O 模型达到轻量和高效,并拥有庞大的模块包生态 -- npm.
技术特点
应用特点
业界观点
应用场景
基本功能: Web 服务器
Node 作为 Web 服务器,连接后台数据库/文件系统,接受网络请求,处理业务逻辑,提供静态资源和业务接口.
前后端分离
概念
在服务器(Java/PHP)与浏览器(JS)的中间架一个 Node 中间层.Node 中间层提供直出,接口转发,静态资源等,属于前端范畴,由前端维护.
特点
注意区分
直出
概念
在前后端接口分离(前后端解耦)情况下,在客户端访问页面时,服务器拉取接口数据,并将数据嵌入页面返回,称为直出.如果返回的是数据和模板,在前端渲染,称为数据直出;如果后端根据数据渲染出页面,直接返回页面,称为页面直出.
直出优点
Node 直出优点
接口聚合
Node 中间层代理后台接口,后台接口提供原子 RESTful 接口,前端根据需要组合使用.Node 调用内部接口使用 HTTPS/RPC 等. 参考: 接口聚合的简单研究
微服务
关注点在于 Node 的开发和部署方式
数据持久化
关注 Node 层数据的落地,作为其他 Node 层功能的基础支撑.
业界实践
阿里
腾讯
百度
美团
其他公司
国外
What companies are using Node.js in production node.js能开发大型网站吗 -- 国外使用情况
我司的实践点
现有条件
我司没有历史包袱 我们没有直出服务,没有 Node 服务,所以在提升性能,提升用户体验,降低开发成本上,基本可以无痛选择 Node 技术栈.
我司没有积累
为什么是 Node
可实践工程
Node 服务层的能力是非常强大的,结合我司业务,可以实践的工程还是很多的.以下为头脑风暴结果,具体开展需要做可行性分析,需求评审,架构规划,功能划分,开发计划等等工作.
页面配置平台
接口中间层
客户端对接口的访问,先经过 Node 接口中间层,由中间层代理接口服务.
服务端直出
微信商城和 App 的手机专区已经使用了服务端直出,可以保持关注和迭代.
其他场景
技术选型
服务端部署
开发注意点
Node 入门
References
创业团队撸 Node (科普贴,非常有意思)
2017,我们来聊聊 Node.js
PayPal 的 Node.js 实践 (Java 和 Node 并行,渐进)
Node.js 在广发证券(介绍架构和微服务)
前后端分离的思考与实践
淘宝前后端分离实践(定义前后端边界)
EOF