首页 存档 技术 查看内容

明星讲师和你一起聊聊 Node.js 那些事

2018-3-30 13:00 |来自: 互联网 265 0

摘要: 作者|桑世龙 编辑|静儿、Lily 本文为 StuQ 公开课 005 期 斯达克学院明星讲师,开源项目 Moajs 作者、备受学员喜爱的桑世龙老师的 Live《 大前端和 Node.js 那些事》主题分享部分内容。本次 Live 围绕 Node.js ...


作者|桑世龙

编辑|静儿、Lily
本文为 StuQ 公开课 005 期 斯达克学院明星讲师,开源项目 Moajs 作者、备受学员喜爱的桑世龙老师的 Live《 大前端和 Node.js 那些事》主题分享部分内容。本次 Live 围绕 Node.js 进行 2016 回顾,Node.js 的应用场景,服务器渲染,如何让 Node.js 完成更多以及如何在项目中使用、推广 Node.js ,同时涉及 ES6 与测试,通过狼叔的成长经历传授新手指南;最后对于 Node.js 2017 进行展望。本文根据 Live 分享内容文字版整理而成。

随着大前端的演进与火爆, h5 、 hybrid 、组简化、小程序,越来越多的公司和程序员不得不去重视前端,那么多框架 react 、 vue 、 ng2 到底该怎么选?没有很多经验的程序员该如何高效的解决问题?对于不得不用的 Node.js 欲拒还迎,到底该如何抉择?作为资深全栈工程师、架构师、实践者,狼叔带你回顾 2016 ,展望 2017 ,以 Node.js 视角来帮助大家更好处理前端问题。

讲师简介


Node.js 2016 回顾


2016年 Node.js 世界是精彩的,从 let-pad 事件到 Node.js 支持 Async/await ,无疑都是非常吸引眼球的。本文试图从以下八个事件回顾一下 2016 年 Node.js 大事记,然后给出 Node.js 的应用场景。

  • Node.js版本变化

  • Node.js 在2016年被哪些企业使用?

  • Left-pad事件

  • Yarn:一个高效的npm替代品

  • Chrome DevTools支持Node.js 应用调试了!

  • Lerna:一个用户管理多个包模块的工具。

  • Flow和Typescript越来越流行

  • 异步流程演进

Node.js版本变化

https://github.com/nodejs/LTS#lts-schedule

  • 发布Node.js 6.x 并进入LTS(长期支持版本),凡是LTS的都可以在生成环境使用

  • 发布Node.js 7.x 支持Async/await,尽管需要加flag才可以开启

根据node.green统计Node.js 6.x(LTS下面)的es 2015即es6兼容99%

Node.js 6.x支持的10大关键特性

  1. DevTools Inspector Integration

  2. Capture Names of Listeners on an EventEmitter

  3. Overhauled Buffers Constructor APIs

  4. Unhandled Promise rejection warnings

  5. Quick and Safe Temporary Directory Creation

  6. Timing Attack Prevention

  7. Process Warnings API

  8. Symlink Preservation

  9. V8 Performance Profiling Directly Through Node.js

  10. Process CPU usage

Node.js 在2016年被哪些企业使用?
  • 高朋使用Node.js重建了整个Web层

作为决策的结果,高朋团队使用Node.js重建整个Web层,他们在多个平台使用Node,当前,高朋有70个Node.js生产应用。应用在30个国家。

Node.js在Skycatch应用

skycatch是家数据公司,帮助捕获、管理和分析商业无人机数据。skycatch看到挖掘数据需要大量查询数据库。使用现有的工具如原始SQL查询是困难和耗时的,而skycatch的解决方案可以方便地从网站中提取可操作的数据。

“我们在你能想得到的地方都使用了node - Node是我们的胶水”。

Node.js在Lowe’s Home Improvement 应用

通过Node.js,工程师队可以拥有从UI到后端整个堆栈的全部开发职责,前端他们能够重用自己在JavaScript和HTML上的精通。现在他们可以很快地把新的功能放一起做原型设计做研究和做一些用户测试。然后把这个想法应用到生产级别并发布,不会导致应用程序栈其他部分的风险。

上面是国外的一些,据我所知很多大公司都用Node.js只是没人出来讲而已,创业公司就更加数不胜数了。

Left-pad事件

Left-pad 工具模块被作者从 NPM 上撤下,所有直接或者间接依赖这个模块的 NPM 包就忧伤的挂掉了,包括 babel 这样的热门项目。

Yarn:一个高效的npm替代品

2016年10月份, Facebook 和 Google 联手推出 Yarn,一周之内,在github上star过万,现在已经21843个star了。

替换的原因

  • 在Facebook的大规模 npm 都工作的不太好

  • npm拖慢了公司的ci工作流

  • 对一个检查所有的模块也是相当低效的

  • npm被设计为是不确定性的,而Facebook工程师需要为他们的DevOps工作流提供一直和可依赖的系统

与hack npm**的做法相反,Facebook编写了Yarn

  • Yarn 的本地缓存文件做的更好

  • Yarn 可以并行它的一些操作,这加速了对新模块的安装处理

  • Yarn 使用lockfiles,并用确定的算法来创建一个所有跨机器上都一样的文件

  • 出于安全考虑,在安装进程里,Yarn 不允许编写包的开发者去执行其他代码


Yarn, which promises to even give developers that don’t work at Facebook’s scale a major performance boost, still uses the npm registry and is essentially a drop-in replacement for the npm client.

很多人说和ruby的gem机制类似,都生成lockfile。确实是一个很不错的改进,在速度上有很大改进,配置cnpm等国内源来用,还是相当爽的。

Chrome DevTools支持Node.js 应用调试了!

https://blog.hospodarets.com/nodejs-debugging-in-chrome-devtools

要求

  • 1) Node.js 6.3

  • 2) Chrome 55

步骤

  • 开启chrome://flags/#enable-devtools-experiments URL

  • 启动 Developer Tools experiments flag

  • 重启 Chrome

  • 打开 DevTools Setting -

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部