Node 在沪江的大规模实践

作者/分享人:戴亮
戴亮,10年前后端开发经验,2014年加入沪江前端架构组,负责 UI 组件,移动打包平台的开发推进Node前后端方案的落地,曾在 GMTC 上分享“沪江基于 Node.js 大规模应用实践”,《移动 Web 前端高效开发实战》的作者之一。

我是来自沪江前端架构组的架构师戴亮,这场分享将由我发起。沪江从 2016 年下半年开始在生成环境中使用 Node 渲染页面给外部用户使用。今年以来,沪江在全产线中全面使用 Node。本次分享将介绍这一年以来,沪江在 Node 方面的一些经验,文章会介绍以下内容:

  1. 在使用 Node 之前沪江的前后端分离方案演进
  2. 基于Koa框架搭建的 Aconite 框架
  3. 制定合理的规范,提升质量,完善文档来降低产线接入成本
  4. 制定合理的边界,使项目风险可控
  5. 如何发布、部署
  6. 如何合理的记录日志
  7. 采用监控和报警来保障服务的稳定
  8. 其他的一些经验,如压测,项目推进方式
已有281人预订
预订达标
文章出炉
交流日期
     
10月25日
11月07日
11月15日 20:30
查看文章评论/提问
冰尘
请问auth是如何设计和实现的?使用的是什么Npm module?
戴亮: 这里只是调用沪江的API服务获取用户信息. 并没有做其他额外的事情
和君
支持专家
嘿๛大东🐼
专家666!资瓷!
小菜
看了您的文章,感觉view是node直出的,那么直出的时候用的什么模板引擎呢?如果是vue或者react的话,怎么权衡ssr和同构?如果是ejs之类的,那么前端在开发js的时候用的是什么架子?
戴亮: 默认采用nunjucks,也支持其他模版. 同构通过中间件实现,都是依托react或者vue框架本身,中间件内部只是统一了一些逻辑,但渲染方法需要外部传人,使用方自行处理同构细节
小菜: 也就是你们的view层是纯函数?传入什么模板就输出什么模板,中间不做数据fetch之类的操作?接收vue或者react的renderHtmltoString 吐出的模板返回给浏览器是么
戴亮: fetch 数据通过Component上定义的固定名称的静态方法。在render中间件中,依据路由中间件得到的组件信息,可以并行请求数据。 然后将数据保存在store当中,最后调用外部提供的render方法,渲染出页面。 渲染的时候,也是通过React/Vue提供的类似renderHtmltoString方法。这里,render组件就是做了: 1. 解析components信息 2. 调用静态方法获取数据(依赖组件的固定名称静态方法) 3. 调用渲染方法渲染数据(外部传入)。
你可能还喜欢
Service Mesh 在华为公有云的实践
田晓亮
从零开始,搭建 AI 音箱 Alexa 语音服务
Mike
Web 安全恩仇录:再谈逻辑漏洞
肖志华
编程和数学基础不佳如何入门人工智能?
赵宁|Neal
如何用 Vue 实现前端权限控制(路由权限 + 视图权限 + 请求权限)
雅X共赏
智能增长:如何用大数据和人工智能实现业务体量的增长
蒋凡
微信扫描登录