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

被采访人介绍:田永强,淘宝花名朴灵(微博)。就职于阿里巴巴数据平台产品部,资深前端工程师,参与淘宝指数、数据魔方等数据产品从前端到后端(纯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

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值