BT

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

Flexi传授如何说服自己的老板采用Node.js

| 作者 李湃 关注 0 他的粉丝 发布于 2012年5月22日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Node.js早期核心类库的贡献者Flexi,最近在自己的个人博客上,阐述了对于广大热爱Node.js技术的朋友,如何说服自己老板将Node.js应用到现有的系统。

首先需要了解Node.js在什么场景下最适用,这是做成事情的第一步。

Node.js的应用场景

1) 适合

  • JSON APIs——构建一个Rest/JSON API服务,Node.js可以充分发挥其非阻塞IO模型以及JavaScript对JSON的功能支持(如JSON.stringfy函数)
  • 单页面、多Ajax请求应用——如Gmail,前端有大量的异步请求,需要服务后端有极高的响应速度
  • 基于Node.js开发Unix命令行工具——Node.js可以大量生产子进程,并以流的方式输出,这使得它非常适合做Unix命令行工具
  • 流式数据——传统的Web应用,通常会将HTTP请求和响应看成是原子事件。而Node.js会充分利用流式数据这个特点,构建非常酷的应用。如实时文件上传系统transloadit
  • 准实时应用系统——如聊天系统、微博系统,但Javascript是有垃圾回收机制的,这就意味着,系统的响应时间是不平滑的(GC垃圾回收会导致系统这一时刻停止工作)。如果想要构建硬实时应用系统,Erlang是个不错的选择

2) 不适合

  • CPU使用率较重、IO使用率较轻的应用——如视频编码、人工智能等,Node.js的优势无法发挥
  • 简单Web应用——此类应用的特点是,流量低、物理架构简单,Node.js无法提供像RubyRails或者PythonDjango这样强大的框架
  • NoSQL + Node.js——如果仅仅是为了追求时髦,且自己对这两门技术还未深入理解的情况下,不要冒险将业务系统搭建在这两个漂亮的名词上,建议使用MySQL之类的传统数据库

如果系统可以匹配Node.js的适用场景,那么是时候采取具体的措施来说服老板了。

说服自己老板的方式

  • 构建一个简单的原型——花一周时间构建系统某一部分的原型是非常值得的,同时也很容易和老板在某一点达成一致,等到系统真的在某一部分应用了Node.js,就是打开局面的时候
  • 寻找开发者——首先JavaScript语言的普及度很高,一般公司都不乏Web前端工程师,而此类工程师的学习门槛也非常低。这就意味着Node.js很容易招人,或者公司就隐藏了一些高手
  • 强大的社区支持——Node.js社区非常活跃,吸引很多优秀的工程师,这就意味着公司可以很容易从社区得到免费或者付费的支持
  • 系统性能考虑——JavaScript引擎Google V8,加之原生异步IO模型,使得Node.js在性能的表现非常出色,处理数以千计的并发请求非常轻松
  • 专业公司的支持——使用开源技术的最大问题是,原作者不承诺对其产品进行技术支持或者质量保证。现在Node.js已经得到Joyent公司的赞助,这就保证了未来Node.js的发展是可持续性的

Flexi的文章在社区引发了很多讨论:

有人对文章阐述的观点表达了支持,@ChrisArchitect说:

文章写的非常好,希望作者有更多的文章,来描述一门语言在什么场景下最适合,可以带来怎样的价值,避免盖棺定论

也有人对文章某些观点提出了质疑,@jbooth说:

异步IO模型并不是原生的,而且在多核系统体现不出任何性能优势。不要认为只有使用Node.jsMongoDB才能实现高性能站点,Java也一样可以做,使用C语言的可操控性更好,但现实是Java不够时髦,C语言做Web站点很怪

The right technology for the right job——技术没有银弹,只有适合的,才是最好的。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

good! by 崔 康

Node.js越来越火了

还有个优点:开发效率高;还有个缺点:Javascript对程序员素质也不低 by chuanyi zheng

用nodejs开发非常之快,做业务系统生产率高,适合敏捷;
同时,Javascript虽是个易学的语言,但基于原型而非面向对象,功能多时,容易把代码写乱。
不过这个缺点可以用CoffeeScript来解决。

Re: 还有个优点:开发效率高;还有个缺点:Javascript对程序员素质也不低 by li pie

这是个trade off,javascript可以利用闭包很容易的实现高级功能,这对于很多静态语言是很难办到的
从另一个角度来说,高自由度带来的是不易管理,只能通过行政规范来约束,不然代码会五花八门

Re: 还有个优点:开发效率高;还有个缺点:Javascript对程序员素质也不低 by wang cheng

rt,动态语言太强大,没有一定规范就会造成后期维护上的不便

“一般公司都不乏Web前端工程师,而此类工程师的学习门槛也非常低。”---惊呆了。。。。 by 朱 赋

一般公司其实很缺web前端工程师,谢谢。。。前端就要招不到了。。。

Re: “一般公司都不乏Web前端工程师,而此类工程师的学习门槛也非常低。”---惊呆了。。。。 by li pie

呵呵,国情不一样

比较适合做原型 by simon wang

感觉比较适合做原型,其真正要用到正式业务系统上,可能还有很长的路要走

允许的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通知我

7 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT