图灵访谈之九:专访CNode社区

Node.js在各种技术会议上的分享越来越火热,为了让更多的人了解Node.js以及Node.js中文技术社区CNode,12月10日在易宝支付举行第三期Node.js北京分享会——NodeParty北京站活动上,图灵社区对CNode.js社区的发起人和核心组成员赵昆(空无)、廖恺(清笃)、袁锋(苏千)、贾超(玄澄)等进行了采访。

图灵社区:简单介绍一下Node.js中文社区CNode以及社区的发起人?

CNode社区: CNode社区最初于2010年10月左右,由淘宝的廖凯和赵昆发起,并注册了cnodejs.org域名,由于备案问题,导致网站直到年底才正式上线。2011年,贾超、袁锋、朱彤、田永强、黄冠先后加入了社区核心组,社区的活跃成员也已经上千,在这一年里,CNode社区一直在高速发展。

图灵社区:怎么会想起做这样一个专业的技术社区,社区有什么发展目标?

CNode社区:大家非常看好Node.js这个技术,同时在淘宝内部的一些产品中开始采用Node.js,但是Node.js当时在国内技术氛围非常淡,对Node.js感兴趣的人寥寥无几,因此我们决定发起一个社区,让更多的人参与Node.js的技术研究中,提升国内在这方面的技术水平。

CNode社区目前已经是国内最大的Node社区,我们希望她能成为中国所有开源技术社区中发展最好的一个,同时期望我们的社区也能够对Node的官方社区产生积极的影响,甚至直接推动Node.js这个技术的进展。

图灵社区:社区里的核心成员是怎么走到一起来的,目前是怎么合作和分工的呢?

CNode社区:基本出于兴趣走到一起,目前主要通过一些线下活动和线下交流来合作。大家平常主要负责在各个地方组织线下活动,然后会互相提供支持。目前还没有特别明确的分工,基本上是各自能多做一点就是一点,有什么需要做,就会有人顶上来。

图灵社区:社区目前在做什么样的事情,主要有哪些内容和活动呢?

CNode社区:目前在做的事情还是很多的,包括密集的组织今年12月的4场线下交流,包括北京、杭州、上海、深圳,还有开发者大赛的后续活动,开发新的线上互动社区,还有与图灵合作,技术社区联合写一本《Node.js和Web开发》的Node入门书等。

图灵社区:CNode是国内最专业的Node.js开源技术社区,它和国外的Node社区(Joynet、nodejitsu)是怎样的关系?对Node.js的源码有哪些贡献?

CNode社区: CNode社区目前是Node社区承认的中文社区,Joyent公司也派人参加和赞助社区的活动。目前社区对Node.js的很多开源模块都有一些贡献,暂时还没有参与到Node核心代码的开发中,这是我们努力的一个方向。

图灵社区:于前端和后端的开发者,Node.js带来了怎样的改变?

CNode社区:对于前端开发者,有了一个非常好的机会切入后端开发或者尝试后端开发,而无需重新学习一门新的语言和语法。前端开发者学习一些基本的服务器端知识,无需依赖额外的资源,就可以靠自己快速开发出一个功能完整的原型,这是以前无法想象的。

对于后端开发者,Node.js提供一种全新的开发思路和性能更好的动态语言。正好之前国外有一篇文章Node.js Cures Cancer质疑Node.js的性能(这篇文章内容对Node.js理解有误),它给出的性能测试被许多人使用来对比测试各个动态语言的执行性能。在@hileon的测试结果可以看到,Node.js的性能远超PHP、Python、Ruby。

作为追求性能的后端开发者,在动态语言选择中,Node.js是非常有性能优势的。前后端代码复用不再是幻想。例如,表单输入有效性判断的业务逻辑代码可以很有地复用。更重要的是让前后端开发者的思维相互交叉渗透,会萌发出更多创新火花。

图灵社区:社区目前有什么共同在做的具体项目吗?简单介绍一下NAE?

CNode社区:目前社区还处在成长阶段,等社区的参加者有一定规模后会考虑发起一些公共项目,以促进交流和社区发展。NAE是为了方便对Node感兴趣的朋友快速入手进行Node开发而提供的一个App Engine系统,提供了应用托管、应用模版、存储服务(Mongo DB & GUI)、基于web的在线代码编辑、版本控制(Git GUI)、包管理(直接在应用中引入NPM包)、命令行应用管理工具等一系列功能,与现有的一些hosting和app engine相比,在技术上有一定的特色,同时也更专注于开发社区和在线开发模式。

图灵社区:图灵曾有来客讨论过社区的发展,他的观点是比赛是社区培养人才最好的形式,看来Node.js中文社区也有同样的想法。本周刚刚结束了"中国首届Node.js开发者大赛",能不能介绍一下这次大赛的情况?通过这次大赛,社区有哪些收获、感受和经验要与大家分享?

CNode社区:为了推动Node.js在国内的使用和CNode社区的发展,我们组织了这次大赛,希望通过本次大赛,聚集更多Node.js粉丝和发烧友,挖掘特色应用和服务,进而激励更多的技术人员参与到Node.js的发展和推动过程中来。

本次大赛共提交上来参赛项目29个,最后评选出2个一等奖,4个二等奖,4个三等奖。参赛作品充分体现了国内Node.js领域的开发能力和水平。

图灵社区:从大赛的结果看,Node.js在国内目前处于什么阶段?实际应用处于什么层次?目前国内有哪些实际应用的案例吗?

CNode社区:目前Node.js主要还是应用在一些中小型的Web项目,以及特定的开发平台中,更多的还是一些应用逻辑层面的开发,对于Node.js自身性能和功能的挖掘还停留在一个比较浅的层次上。

目前国内大中型的系统中实际应用Node.js作为线上业务系统还不多见。淘宝内目前有一些大中型项目已经在线运行,如NodeFox(分布式Mysql查询与管理服务)、Itier(异构数据源的中间层数据服务)、淘宝指数

图灵社区:技术社区另外应该承担推广Node.js的工作对吧。目前有些推广的活动和手段?

线上主要通过以下方式:CNode社区的BlogGoogle Group及官方QQ群(189927730)进行日常的社区推广。

线下会经常性地在全国范围内组织Node Party,以供国内的Node.js爱好者进行技术交流。截止目前累计在北京、上海、杭州、广州、香港等城市举办了10次Node Party,共计参加人次600人。

未来将会在深圳、成都、武汉等城市举办Node Pary,非常欢迎当地城市的Node.js发烧友联系我们协助主办。

同时在一些比较有影响力的技术会议(如QCon、Velocity)中也会有社区成员进行的Node.js相关内容的主题分享。

图灵社区:从各种社区活动和技术会议分享来看,Node.js关注度越来越高了,那么到底哪些人需要了解和学习Node.js?

CNode社区:如果你是前端开发人员,而且你对如何创建一个Web应用感兴趣,那么推荐你学习Node.js;如果你是后端开发人员,想进一步提高自己对后端开发的了解,或者苦于系统的并发性能难以提高,那么也推荐你学习Node.js;如果你是狂热的极客,Node.js更是你不能错过的技术平台。

图灵社区:怎样评估应用是适合采用Node.js的?Node.js的应用场景?

CNode社区:由于Node天生的异步非阻塞,单线程特色,对于大量的io依赖性应用,如中间层、应用服务器、代理服务等是非常适合的场景。由于Node.js技术社区很给力,提供了大量的功能模块,对于快速开发中小型的Web项目很合适。

图灵社区:几位已经用Node.js实际做过开发项目,如果一个团队要开始使用Node.js,几位会提醒他们留意哪些陷阱?有哪些"最佳实践"可以分享?

1.注意思维方式的转换,不要用串行系统的思路进行Node.js系统的设计。
2.注意ECMA Script 5的新特性对于代码和程序运行效率的影响。
3.单线程模式中的资源共享给系统设计带来变化。
4.异步模式下的异常处理。

更多可以关注 https://github.com/windyrobin/iFrame/blob/master/pp.md

图灵社区:Node.js性能表现怎样?目前的版本是稳定版本吗?几位觉得Node.js成为主流的时机成熟了吗? 怎么看它周围的生态系统呢?

CNode社区:如第6个问题回答里面提到的,Node.js的语言运算性能比PHP、Python、Ruby都要快。

Node.js 的“hello world”单进程QPS在8k+;如果需要了解所有历史版本的“hello world”性能测试可以查看:Nodejs "Hello world" benchmark

目前的稳定版本是0.6.x系列。

是否时机成熟,我想引用@孤独的登山人 对Node.js今年的经验总结:“Node 框架已经基本成熟了,实际开发也已经有了足够的积累,明年肯定会大热滴。”我们拭目以待。

微软、雅虎、LinkedIn、eBay都在使用,并且拥有目前最火爆的开源社区,以及最频繁更新和贡献的第三方模块支持,这是一个高速飞奔的生态系统。

图灵社区:社区目前有什么新动向?对社区和Node.js技术在国内的发展有什么重大影响?

CNode社区:社区目前正在使用Node.js开发一个全新的互动社区系统NodeClub,有点接近SNS,希望可以让社区的技术讨论的内容可以沉淀下来,未来可能会全面取代cnode社区正在用的Google Groups、QQ群、Wordpress这几个系统,我们相信这个系统上线后将显著提升社区的活跃度。

另外社区最重要的一个项目NAE,也在稳步进展中,目前在内测,明年年终会发布第一个稳定版本,这为Node开发者提供了一个几乎零成本的学习和运行平台,NAE也会和NodeClub打通,开发、协作、交流就一体化的实现了,这也是我们社区特色的地方。

图灵社区:谢谢几位接受图灵社区的采访,图灵会一直关注并赞助社区的活动,也期待与社区合作的Node.js好书能早日问世,让更多的Node.js的爱好者有一个好的入门学习的途径。


更多精彩,加入图灵访谈微信!