「开往春天的 Node.js」 - Node 地下铁第二期线下沙龙总结

前言

寒冬已逝,春之伊始。

3 月 26 日下午,Node 地下铁第 2 次线下沙龙在上海世博展览馆万信酒店举行。本次沙龙邀请了四位在不同领域应用 Node.js 进行探索的大牛,带着我们在温暖的午后,感受 Node.js 的魅力。

虽然当天是近来久违的好天气,而且会场地点有些偏,但这些都没有令同学们对 Node.js 的热情衰减,13 点半签到,很快会议室的位置所剩无几了,在这里,组委会感谢各位同学的支持。

回顾

Node.js 源站的发展与挑战

淘宝首页是淘宝很重要的一个页面,它原本一直运行在数量庞大的应用集群上,性能浪费非常严重。过去的一年,淘宝使用 Node.js 源站解决了已有的问题,我们用几十台虚拟机支撑了淘宝数十亿 PV 的流量。

但 Node.js 源站也为我们带来了新的挑战:

  • 如何设计伪静态的缓存方案,保障对时间、多终端的良好支持?
  • 如何优化模块文件合并分发渠道,让首页数百个模块不再产生 IO 瓶颈?
  • 如何在高压力下解决源站的异地多活等高可用问题?

你可以在基德同学的分享中深入了解这其中的奥妙,另外,也欢迎喜欢挑战的人加入我们,让 Node.js 源站更加强大。

alinode - 基于 Node.js 运行时的应用性能管理解决方案

你是否还在为自己的 Node.js 应用的稳定性而担忧?是否在应用出错时手足无措,不知道从何下手?是否每每在内存溢出发生时,才发现自己原来挖了这样一个坑?

有了 alinode,这些苦恼便能轻松化解。它是阿里云出品的 Node.js 应用服务解决方案,是一套基于社区 Node.js 改进的运行时环境和服务平台。在社区的基础上内建了强大的支持功能,帮助开发者迅速洞见性能细节,快速定位疑难杂症,直探问题根源。

在穆客的分享中,你可以详细了解 alinode 的使用,以及手把手的问题处理教程。

使用 NW.js 构建桌面钉钉

移动端技术和工具链最近几年发展的非常快,桌面端却没有太大的发展。WEB 技术发展的也非常快,同时 Chromium 项目提供了优秀的跨平台浏览器内核,现在最快的构建桌面应用的方式变成了 nw.js 或者 Electron 这样的利用 WEB 技术加 Node.js 的方案。

在钉钉,使用了 NW.js 来构建跨平台的桌面应用,但只靠 JavaScript 依然搞不定所有的事情,比如自动更新应用,截图功能,读写系统剪切版等等。结合 Node.js Addon 技术来和 C++ 模块的实用,完成一些 Javascript 暂时不好实现的需求。

想了解钉钉为什么不使用风头正热的 Electron,或者想知道如何使用 nw.js 构建一个体验不输给 Native 的应用以及面临的挑战,快来听听云际的分享吧。

Thunk-Redis

thunks 和 redis 对大家来说也许并不陌生,但是两者的结合你了解吗?是在造轮子,还是在追求极致的速度体验。

在来自 Teambition 严清的分享中,我们可以了解到如何遵照 RESP (REdis Serialization Protocol) 协议,实现一个更快,更强大的 Redis 客户端,以及 Redis 和 Node.js 在 Teambition 关键系统中的使用,比如:消息系统,邮件队列等。感觉要学到很多姿势了呢。

讨论

四位同学的精彩分享结束后,接下来的环节是圆桌讨论(并没有圆桌 - -!)。在讨论中,大家纷纷提出了自己在 Node.js 实践中遇到的问题,也有的分享了自己在实践中的一些心得。

几个比较受关注的问题:

  • NPM 的安全以及可靠性,对 Node.js 生态的担忧等。

    这是由最近 @Azer 在 NPM 社区中引发的讨论。@johnhax 等人纷纷表达了自己的观点。爱之深,责之切,依赖质量以及依赖方式,确实是 Node.js 生态中目前比较薄弱的环节,但是在一个活跃的社区推动下,这些都会有很好的解决方案的,毕竟 Node.js 也在成长。

  • 如何使用 aliNode 分析错误,以及错误处理的相关经验

    社区中,有很多人在使用 aliNode 来监控、分析自己应用的性能以及问题。但是,对于新人来说,从一个 heapdump 中分析出问题所在,还是有一些难度的,很多人希望可以学习到一些经验,当然,很多人也分享了自己如果踩坑、填坑的。

  • 在开发 Node.js 应用中遇到的问题

    这部分主要围绕如何填开发过程中踩过的坑。比如一位同学提到,自己在用 Node.js live reload 配置文件时,经常会导致内存占用过高的情况,大家根据他的描述,提出了一些解决方案。小编认为,如果合理的使用 Node.js 的流 API,或许能解决这个问题。

  • 想使用 Node.js 或者在 Node.js 和其他语言混用的情况

    有些来参会的同学,并是不以 Node.js 作为主语言的人,想尝试一下,通过讨论,使他们对 Node.js 有了更深入的了解。跟淘宝一样,很多公司也面临着 Node.js 和其他语言混用的情况,嘉宾们和同学沟通了自己所采用的方案,希望可以给你们提供一些思路。

结束语

在此感谢各位同学的参与,我们下次再约!同时感谢博文视点对本次活动的图书赞助!欢迎关注 Node 地下铁微信公共账号,随时关注下一次线下沙龙动态。

错过了这次分享的同学也不要急,我们不会忘了你们的,请往下拉。。。

分享资料下载

时间: 2024-08-02 13:17:24

「开往春天的 Node.js」 - Node 地下铁第二期线下沙龙总结的相关文章

「八面玲珑的 Node.js」 - Node 地下铁第三期广州站线下沙龙总结

前言 转眼2016年就要结束了,距上次地下铁沙龙已经过去了大半年,我们在这冬天来到温暖的广州,跟朋友们相聚一堂,一起学习探讨开发Nodejs过程中的心得,以及Nodejs领域内的新动向. 本次活动受广州地主UC前端团队的大力支持,由UC提供了会场,博文视点.图灵.稀土掘金提供了本次活动的赞助.  广州的同学非常热情,会场里面座无虚席. 回顾 Thrift下的Node.js跨语言异构 Node.js 越来越成为主流选型,在实际工作和复杂的历史遗留问题中,往往需要使用 Node.js 和其它服务,组

英国家具电商Made.com第二家线下展厅伦敦开业

3月3日消息,近日,英国家具电商Made.com在伦敦的第二家展厅开业了,这是他们第二个线下展厅.据悉,Made.com的第一家展厅Made.com于2012年创办于西伦敦. Made.com的创始人之一,是中国佛山的商人李宁.2007年,他就曾与人合伙在巴黎创立MyFab.com,证明了在家具消费者和制造商之间建立直接销售渠道的可行性.2009年他卖了一半股份开始旅行,结识了英国在线旅游零售业务公司lastminute.com的创始人BrentHoberman,除了他们二人,公司的联合创始人还

利用Node.js为Node.js生成HttpStatusCode辅助类并发布到npm

      作为一个好的Restfull Api不仅在于service url的语义,可读性,幂等,正交,作为http状态码也很重要,一个好的Http Status Code给使用者一个很好的响应,比如200表示正常成功,201表示创建成功,409冲突,404资源不存在等等.所以在做一个基于node.js+mongodb+angularjs的demo时发现node.js express没有提供相应的辅助类,但是本人不喜欢将201,404这类毫无语言层次语义的东西到处充斥着,所以最后决定自己写一个

究竟什么是Node.js?Node.js有什么好处?_node.js

Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码. 简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:"Node 究竟是什么东西?" 即便是在参阅 Node 的主页之后,您甚至可能还是 不明白 Node 为何物?Node 肯定不适合每个程序员,但它可能是某些程序员一直苦苦追寻的东西. 为试图解

什么是Node.js?Node.js详细介绍_node.js

简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:"Node 究竟是什么东西?"尽管不是针对所有人的,但 Node 可能是某些人的正确选择. 为试图解释什么是 Node.js,本文探究了它能解决的问题,它如何工作,如何运行一个简单应用程序,最后,Node 何时是和何时不是一个好的解决方案.本文不涉及如何编写一个复杂的 Node 应用程序,也不是一份全面的 Node 教程.阅读本文应该有助于您决定是否应该学习 Node,以便将其用于您的业务

node.js中node中的事件通知机制详解

异步编程的难点 nodejs令异步编程如此风行,这也是异步编程首次大规模出现在业务层面.它借助异步I/O模型及V8高性能引擎,突破单线程的性能瓶颈,让javascript在后端达到使用价值.另一方面,它也统一了前后端javascript的编程模型.对于异步编程带来的新鲜感与不适感,开发者们有着不同程度的感受.接下来,按照@朴灵的<深入浅出nodejs>梳理一下异步编程的难点: 难点1:异常处理 浏览器端通常使用try/catch/final包裹代码块进行异常捕获与处理: try{    dos

DockOne微信分享(六十九):微服务选型之Modern Node.js

本文讲的是DockOne微信分享(六十九):微服务选型之Modern Node.js[编者的话]目前Node.js的发展非常快,大家可能还停留在:Node.js性能很好,Node.js里都是回调,写起来很恶心,Node.js只能做前端工具,Node.js是单线程部署会有问题,以及这样的八卦<uber用go替代Node.js重写了地理位置服务>... 可是真相呢? 在微服务盛行的今天,为什么我们要选用Node.js去构建微服务呢?本次分享将试图从以下2个方面给出答案: 被误解的Node.js:除

Node.js 子进程:你应该知道的一切

本文讲的是Node.js 子进程:你应该知道的一切, 如何使用 spawn(),exec(),execFile() 和 fork() 截图来自我的视频教学课程 - Node.js 进阶 Node.js 的单线程.非阻塞执行特性在单进程下工作的很好.但是,单 CPU 中的单进程最终不足以处理应用中增长的工作负荷. 不管你的服务器性能多么强劲,单个线程只能支持有限的负荷. Node.js 运行于单线程之上并不意味着我们不能利用多进程,当然,也能运行在多台机器上. 使用多进程是扩展 Node 应用的最

node.js学习之base64编码解码_node.js

一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就 不能通过邮件传送.这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了.最好的方法就是在不改变传统协议的情 况下,做一种扩展方案来支持二进制文件的传送.把不可打印的字符也能用可打印字符来表示,问题就解决了.Base64编码应运而生,Base64就是一种 基于64个可打印字符来表示二进制数据的表示方法