BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

叩首问路,码梦为生——QCon北京2013 Node.js专题出品人朴灵专访

| 作者 彭超 关注 0 他的粉丝 发布于 2013年1月9日. 估计阅读时间: 8 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

被采访人介绍:田永强,淘宝花名朴灵(微博)。就职于阿里巴巴数据平台产品部,资深前端工程师,参与淘宝指数、数据魔方等数据产品从前端到后端(纯JS堆栈)的开发,探索Node.js产品化的最佳实践。同时作为Node.js布道者,活跃于CNode社区,主持InfoQ专栏《深入浅出Node.js》,产出多篇Node.js深度解读文章。代码洁癖分子,热爱开源。叩首问路,码梦为生。

作为QCon北京2013大会“Server端Node.js”专题出品人,朴灵接受了InfoQ的采访,以下是采访内容。

InfoQ:能否先简单谈谈您在Node.js这个领域的从业经验,和您对此Node.js的理解?

朴灵:说起我在Node.js这个领域的从业经验,实际上并不算太久。最初是在2011年早期开始接触,因为从事前端的原因,最初认识到的Node.js也并不是高并发高性能,而是发现这个后端实现跟前端浏览器中的JavaScript十分亲缘,使得我很轻易的融入进来。那之前也曾接触过Rhino这样的后端JavaScript,也写过不少服务端代码,总之开发过程中觉得是走在河的两岸。Node.js的异步、事件都让作为前端工程师的比较兴奋,可以以自己习惯的思维去处理服务端的事情。

InfoQ:使用 Node.js 的优势和劣势都有哪些?

朴灵:我认为的Node.js的优势在于它以很低的门槛带来了很高的性能收益。我们写着写着JavaScript,突然它就在后端高性能了。后端工程师较容易明白它的为什么,所以他们多会奔着高性能而来。而对于前端工程师而言,多出来的可能性和潜力值得去利用。

Node.js的优势在于有较好的开发者基础、高性能和一个良性运转的NPM社区。

Node.js至今市面上的诟病多体现在异步编程这一块上面。前端开发者擅长异步处理,但是缺乏深厚的服务端功底,后端开发者则在异步编程的喜好上多有争论。

InfoQ:Node.js最适用的场景是什么?阿里巴巴在哪些产品里使用了Node.js?

朴灵:过去我们讨论Node.js最使用的场景是什么,多半分在IO密集型和CPU密集型。Node.js擅长在IO密集型的应用中这点基本是共识。但是Node.js真的不适合运算吗?随着Cluster的使用,V8在脚本语言中的表现,值得拭目以待。

目前阿里巴巴主要将Node.js应用在中间层和前端产品层。对外的实际产品有:淘宝指数、数据魔方以及引来潮流的淘宝时光机。海量数据的产品化,离不开中间层(Itier)强有力的支持。

InfoQ:据您所知,业内还有哪些成熟的Node应用?

朴灵:国外的就不说了,实在太多,也令人汗颜。腾讯朋友网,利用Node.js的高并发,将长连接用得十分俊俏;新浪网将Node.js用作MySQL的代理层,在分布式场景中发挥很大的作用;雪球财经和花瓣网的前端工程师都是利用Node.js深度介入产品开发,效果不错。网易的Pomelo也挺赞,期待落地的游戏。

InfoQ:如果说Node.js的优势是解决高并发,那么请点评比较一下Erlang、Go和Node.js?

朴灵:如果比较高并发,这三者之间有一定的差距,但是并不太大。 我对Erlang的了解并不多,尝试学习过几次,不得要领,学习门槛略高。从腾讯朋友网的例子可以知道Erlang的开发者人群太小,以至于找不到人维护,而Node.js提供了与Erlang不相上下的性能外,在腾讯内部优秀的JavaScript开发者唾手可得。不过Erlang与Node.js实际是对好基友,Node.js引以为豪的NPM平台实际上搭建在CouchDB之上,而CouchDB是由Erlang写成。

Node.js之所以是构建在JavaScript,其中一个原因就是它在后端的历史包袱很轻。Go姗姗来迟,也几乎没有包袱,吸纳了很多现有语言的精华,底蕴深厚。作为一个Node.js开发者,多少有些羡慕。我想也许它是未来。但是Node.js已经形成了它的生态圈和社区,史无前例的活跃度。

InfoQ:做为国内CNode社区的创始人,通过您的了解,现在的Node开发人员是前端工程师多,还是传统服务器端开发人员更多?

朴灵:其实我不是CNode社区的创始人,CNode社区是由清笃、空无、玄澄他们发起,我是后来加入成为社区常委的。我目前看到的现象是Node.js开发人员中,前端工程师偏多,但是将Node.js用得好的,却是一些资深的后端工程师。

InfoQ:那Node.js能有今天的成就,您认为是Javascript成就了Node吗?为什么Node会选择用Javascript这门备受非议的语言来实现?

朴灵:还是回答下Node.js选择用JavaScript的原因:
  1. JavaScript在服务端的发展几乎是空白,没有历史包袱。
  2. JavaScript的执行机制贴合Node的理念:异步、事件驱动。
  3. V8的高性能。

可以说Node.js的出现抓住了两个痛点,前端开发人员因为语言的隔阂导致创造力延展不顺畅,高性能。

在后续的发展中,也可以看到luavit这样的项目,采用Node的理念去利用lua语言上的一些特性。这样只能抓住一个痛点。受历史包袱的影响和丢失大量开发者基础,推广将会受到一定影响。

JavaScript备受非议的原因在于它太灵活和不受重视。所幸有Douglas Crocked这样的人物提炼精华。随着ECMAScript规范的发展,JavaScript自身的问题将会一步一步被解决掉。凭借目前不俗的表现和可期的未来,相信随着开发规范的建立和最佳实践的不断总结,社区和开发者都能走向良性的发展中。

InfoQ:Node.js在2012年有哪些值得记录的进展?在未来又有怎样的挑战与展望?

朴灵:Node.js在2012年主要有几个进展:
  • NPM作为内部工具提供了
  • cluster模块的提供,解决开发者对多核CPU利用的质疑
  • domain模块的提供,提升应用健壮性
  • 0.8发布,性能大幅提升

Node.js让一些有创造性的前端工程师将他们的能力扩展到服务端,让服务端的开发者能力更低的成本得到更好的性能表现。

目前的状况是明知这个易用、高性能、人才资源丰富、有实际成功案例的技术,却让大家停留在争论和吵架的状态下,这不可谓不是挑战。

InfoQ:做为QCon中Node.js专题出品人,您希望通过此专题为大家带来哪些实践经验,从而解决哪些问题?

朴灵:我会尝试通过专题展现一些实际的成熟产品,让产品说出过程中的开发经验,尤其是落地产品化的经验,破除概念,直达事实。希望能呈现出Node.js成熟之路。让大家看看Node.js拿出来溜溜,到底是驴还是马。

InfoQ:感谢朴灵。再问最后一个问题,如果不做程序员,您最想做什么职业?

朴灵:如果不做程序员,我可能想做一个写作者。或者是教师。觉得骨子里有种将好东西分享出去的冲动。

关于此次QCon北京的详细信息,请移步至大会官网。现在购票正处在八折折扣期,团体报名,更有其他优惠。详情咨询qcon@cn.infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT