2016 Node.js Live北京站精彩回顾-Node.js 无处不在

2016-05-24 17:40:00
开小编
原创
3065
Node.js 基金会在全球各地聚集 Node.js 开发者,举办了一系列的会议。每个会议都各具特色。会议时长、合作伙伴都取决于当地的 Node.js 社区或开发者,可以说是为当地社区量身定制。中国,是聚集全球 Node.js 开发者最多的国家之一,Node.js 基金会携手开源社,将 Node.js Live 活动带到了北京。感谢微软的倾情赞助,UDN 的视频服务,中国 Node.js 社区志愿者的积极贡献和中国 Node.js 牛人讲师们超多的干货分享, 主题为“Node.js 无处不在”的北京站活动于 2016 年 5 月 21 日这个特别的日子在北京微软大厦成功举办。 现场 170+ 人以及线上 100+ 人交互,人气爆棚,现场氛围轻松充满社区范风格,接下来让我们一起来体会强大的 Node.js 的魅力吧。


微软爱开源

       微软开放技术中心董事总经理云浪生先生,全权负责中国地区的团队组建,推动公司对开源工程、标准及社区参与的计划与项目,以推进整个地区的互操作性、开放标准及开源软件开发项目。近年来微软对开源越来越关注,其对开源事业的贡献可以追溯到 2004 年的 wix。微软 2011 年介入 Node.js,到目前可以说已经是全方位的支持,很多员工都是 Node.js 的核心贡献者,与 Node.js 基金会也有相关合作。Node.js 开发工具 Visual Studio Code,相信很多开发者都知道这款 IDE,与 atom、sublime、webstorm 相比这款 IDE 调试 node 是目前来说最方便的。

云浪生 分享 微软爱开源


使用 Node 构建桌面应用

       张晨,白鹭时代研发经理。 目前在白鹭时代负责 Egret Wing 的研发, Egret Wing 是一款 HTML5 游戏开发 IDE。 他给我们分享了 electron、NW.js,比较了他们的不同及各自使用场景。直观一点的不同就是他们的入口文件,electron是 js 文件,NW 则是 HTML 文件。electron 是和 v8 context 运行在主进程中,每一个窗口都会新开一个进程,每一个页面都有自己的环境,而 NW 则会在多个窗口中共享 node 环境,意味着你可以共享变量,但是共享变量又会导致其他的问题。使用 node 来开发桌面应用的优势,首先是跨平台,可以运行在 IOS、Android、web、Windows 等,其次开发效率高,快速的迭代是一个产品致胜的关键,Node.js 社区活跃,开源库非常丰富,这是开发者的一大定心丸,此外,我们还能使用 canvas 等技术来实现动态交互效果,利用 WebRTC + MediaStream 实现即时通讯,WebAudio 来处理音频,这些都是很强大的工具。不过 node 开发的桌面应用也有一定的问题,如 UI 阻塞、安全限制、代码保护等问题,当然,对于这些问题也都一一给了我们解答。

张晨 分享 使用 Node 构建桌面应用


Build A Secure and Scalable Single Sign-on Gateway

       李晓东,就职于 Wiredcraft,JavaScript 中国开发者大会组织者。分享了构建一个安全、可扩展的 getaway。现在微服务兴起之后,很多大型系统都在尝试微型化,这时我们就需要 geteway 这样的一个中间层,也就是在 client 与service 之间的一个中间件,可以从多方面来保护我们的 microservice。安全方面,我们可以使用 HTTPS 来加强请求,使用 Helmet 模块来保护请求头,设置请求白名单以及响应黑名单等方式来提高我们的安全级别。Session,我们可以设置过期时间,只在 HTTPS 请求里才下发 cookie,可对用户 IP、id 两方面来进行限制访问。可扩展,我们不对数据流做任何修改,只更新 header,所有配置均通过环境变量,且这些变量都会有默认值,可通过配置一个复杂的代理规则文件来代理我们的 getaway。

李晓东 分享  Build A Secure and Scalable Single Sing-on Gataway


Details 覆盖移动端的Node.js全栈开发方案

       邹达,现任移动应用云服务提供商 APICloud 联合创始人兼 CTO,专注于浏览器及相关中间件技术。给我们分享了使用 Node.js 进行全栈开发方案。一个人使用全栈方案可以完成整个产品开发(app+service+db)一门编程语言JavaScript 操作一类数据模型调用一套 API(ui, device, fs, network, service, mam, opensdk)。分析了云端一体的全栈开发方案痛点,第一,移动端跨平台引擎的运行能力、渲染性能和扩展机制;第二,移动端和服务端数据模型的映射与连接;第三,服务端不同数据源的模型化和 API 生成;第四,开放平台服务的集成和模块化。然后依次就这几个问题分享了他的解决方案。移动端平台引擎架构,APP-API-(Engine,Module)-OS;服务端数据源的集成和模型化,RESTFUL API- API Gateway-(Model Layer,Data Connector,Explorer)-Data Source,通过细分的这些层级,我们就能构建一个健壮的全栈系统。


邹达 分享  Details 覆盖移动端的 Node.js 全栈开发方案


Node.js Everywhere

       Node 基金会社区经理Mikeal Rogers为我们带来了响应主题的分享,Node.js 无处不在。Node.js 每年的增长达到了 100%,是世界上增长最快开源平台,每一天新增的 npm package 达到了 400 个,照此趋势,明年 Node.js 用户应该能达到 800w,过两年应该能达到最大的社区。然后分析介绍了 web 端、移动端、桌面端、云端以及在智能硬件方面 Node.js 担任的重要角色与其无处不在的身影,展示了 Node.js 应用场景的广阔空间。值得一提的是,Google Cloud 加入了 Node 基金会,这将影响更多的企业加入基金会并巩固 Node.js 在通用开发环境中的领先地位。Node.js 诞生的目的是让编程民主化和让越来越多的人有开发能力,目前 Node.js 已经开启了全新一代的编程世界,我们相信 Node.js 能做的更好,"Node.js Everywhere!"

Mikeal Rogers 分享  Node.js Everywhere


API Publishing with Node.js

       罗诗亚是 Autodesk 开发者关系组的 developer advocate,负责 Autodesk 云服务第三方 API 的发布,见证了从刚开始提供一套云服务 API 到现在十几款 API 的发展。她给我们分享了如何 Node.js 来发布 API。传统的 API 就是应用内部提供给他其他服务的各种接口,现在广义上的 API 指的 web 开发中 API,REST API 是最常用的,它基于 http 协议。很多开发者应该都有这样的痛苦,我们在用到一个非常棒的技术的时候,然而他的文档却惨不忍睹,以至于我们可能换另一个实现不那么好但是文档漂亮的服务。这件事本身到目前为止还没有一个正确的定义,因此罗诗亚他们团队花了很多时间去思考一个好的开发者体验应该是什么样子的。在一个很大体量的公司里,存在使用各种不同语言、开发工具的团队,最后想要在有限的时间内输出同样风格的文档,难度太大。她们最后的解决方案是用 Node.js 来写一个通俗易懂的 demo,用这个 demo 来让各个团队花个几个小时快速学习上手,然后让这些经验丰富的程序员把这个 demo 的思想用他们自己语言来实现。这种由一个简单的点扩展到各个复杂的面的方法,是我们应该学习吸收的。

罗诗亚 分享 API Publishing with Node.js


End to End Node.js App Development in the Cloud Azure Use Cases

       Jose Miguel Parrella,就职于微软。Jose 和开源软件打交道已经十五年了,最近几年尤其关注 Node.js、DCOS,Docker 和树莓派等物联网开源硬件。Jose 今天分享了在 Azure 上端到端 Node.js 应用开发。他先介绍了一个成功的客户案例-Murally,Murally 是一个灵活的高效率的任务白板。Murally 近两年客户激增,Murally 也使用 MEAN 架构,Murally 用户的日均增长量达到了 1000。Azure 可以帮助 Murally 瞬间调整计算节点,Azure 有对 mongodb 做了高级支持,可以对存储节点搭建集群模式,方便扩容和 HADR。接着,Jose 介绍了一个使用一个用嵌入式设备监控美式足球比赛现场用户呼喊的强度的例子,这个事情最终帮助了一个预测地震的项目。最后,Jose 介绍了 Azure 上,部署一个服务,这个服务提供一个 Portal,从 Portal 中可以看 Node.js Live Beijing 会场一个树莓派设备传送的数据,比如温度、湿度,而且是实时的,还可以在 Portal 上添加观察者,将消息推送到其他绑定服务中。从这个案例中,使我们认识到 Azure 具有强大的云计算的实力。


Jose Miguel Parrella 分享 End to End Node.js App Development in the Cloud Azure Use Cases


Are Your V8 GC Logs Speaking to You?

       张秋怡是 alinode 的实习生,目前致力于 V8 垃圾回收日志、CPU Profile 与堆快照的分析与可视化。她给我们分享了通过 V8 垃圾回收日志我们能获取的信息。在 V8 中,主要将内存分为存活较短时间的对象的新生代和存活时间较长或常驻内存的老生代,提到了在 V8 中回收的算法等。Node.js 对垃圾回收没有做什么特殊处理,基本沿用 V8 的回收机制,那么通过日志我们能获取哪些有用信息呢?最重要的就是能够帮我们快速定位内存泄漏,我们可以通过日志来生成过程图,帮助我们定位到具体从哪里开始调试。最后通过一个内存泄漏的例子向大家展示了通过 alinode 的工具如何定位如何分析如何解决,这个分析与解决的过程最让人受益,所以没来现场的小伙伴找视频看看吧~

张秋怡 分享 Are Your V8 GC Logs Speaking to You?


Node.js 全栈工程师之路

       桑世龙(网名i5ting),空弦科技 CTO,StuQ 明星讲师,开源项目 Moajs 作者。展示了目前全栈技术发展与个人发展的速度曲线图,在这个技术爆炸的时代,技术发展是明显快于个人发展的,所以我们选择 Node.js 这条全栈的道路,是一个最能达到的方向从各个方面分析讲解了 node 目前的优劣,以其公司实际的开发经验证明了纯 node 技术栈是能够支撑起一个 SaaS 服务的。

       桑世龙对 Node.js 全栈的分享内容十分广泛,不仅包括对技术趋势的分析,还包括对工具的比较,对 Node.js 初学者给予了极大的勉励,桑世龙对技术 CNode 社区做了极大贡献,闲暇时间维护 cnode.js.org,而且还维护了"Node.js 全栈"这个微信公众号,他还会将好的实践体验总结成最佳实践,通过开源项目进行分享。

桑世龙 分享 Node.js 全栈工程师之路


       最后,由 Node.js 基金会经理 Mikeal Rogers 和 Node.js 基金会教育经理 Tracy Hinds 与活动现场人数 170+ 人和线上 100+ 人进行互动答疑,小伙伴们一个接一个的问题他俩也能应付自如,足见内功深厚啊。值得一提的是,这次大会不仅线上有直播互动,在微博、微信上也进行着火热的互动,足见本次活动方对不方便到场的小伙伴们的关切之心啊。

Mikeal Rogers 和 Tracy Hinds 的经验分享


后记


       以上就是此次大会的主要内容了,整天的分享安排的环环相扣,精彩纷呈,真是干货十足,渴得小编我几乎一口水都没来得及喝。大会之后,承办方微软见大伙依旧热情满满、意犹未尽,又带着留下的大伙去附近的创启咖啡厅继续交流,或三五人或七八人一桌,咖啡厅用香槟、红酒与牛排热情招待了大伙,很多朋友也在推杯换盏之间找到了密友,真是愉快的一天。 最后,感谢为本次大会默默在幕后奉献的集技术,才华和热情于一身的志愿者们。

(编辑:f君, hain, Emily)

注: 本次大会的幻灯片下载地址: https://github.com/xuhen/speakers_slides