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

标签: flexi 老板 node | 发表时间:2012-05-21 15:18 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

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 ——技术没有银弹,只有适合的,才是最好的。

相关 [flexi 老板 node] 推荐:

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

- - InfoQ cn
Node.js早期核心类库的贡献者 Flexi,最近在自己的 个人博客上,阐述了对于广大热爱 Node.js技术的朋友,如何说服自己老板将 Node.js应用到现有的系统. 首先需要了解 Node.js在什么场景下最适用,这是做成事情的第一步. JSON APIs——构建一个Rest/JSON API服务,.

什么是Node?

- We_Get - 博客园新闻频道
译者按:前不久Oreilly出了一本小册子“What is Node?”,扼要的讲解了Node的身世和所适用的场景,作者文笔轻松流畅、内容充实,是非常难得的学习资料.   译文全文:http://jayli.github.com/whatisnode/index.html.   作者:Brett McLaughlin ,原文:What is Node?.

Node入门

- - CSDN博客编程语言推荐文章
作者:  Manuel Kiessling. 翻译:  goddyzhao &  GrayZhang &  MondayChen. 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识. 本书绝不是一本“Hello World”的教程. 你正在阅读的已经是本书的最终版.

浅析Hadoop Secondary NameNode,CheckPoint Node,Backup Node

- - CSDN博客云计算推荐文章
Hadoop SecondaryNameNode并不是Hadoop 第二个NameNode,它不提供NameNode服务,而仅仅是NameNode的一个工具. 这个工具帮助NameNode管理Metadata数据. NameNode的HDFS文件信息(即Metadata)记录在内存中,client的文件写操作直接修改内存中的Metadata,同时也会记录到硬盘的Edits文件,这是一个Log文件.

[译]什么是Node?

- blacktulip - Taobao UED Team
译者按:前不久Oreilly出了一本小册子“What is Node?”,扼要的讲解了Node的身世和所适用的场景,作者文笔轻松流畅、内容充实,是非常难得的学习资料. 译文全文:http://jayli.github.com/whatisnode/index.html. 作者:Brett McLaughlin ,原文:What is Node?.

用node作桌面开发

- InterMa - CNode社区
node的定位是,server-side javascript. 但程序员最爱做的事,就是把一个东西用在不该用的地方. 那么,可以把node用在桌面开发上吗. 把Javascript用在桌面开发上,早有先例,比如GTK+的gjs,还有Qt的QML(顺带一提,QML代表着桌面开发的另一个方向,a promising way),GNOME3中,也用javascript作为桌面插件的开发语言.

node js 断点调试

- - Web前端 - ITeye博客
大部分基于 Node.js 的应用都是运行在浏览器中的,. 例如强大的调试工具 node-inspector. node-inspector 是一个完全基于 Node.js 的开源在线调试工具,提供了强大的调试功能和友好. 的用户界面,它的使用方法十分简便. 首先,使用 npm install -g node-inspector 命令安装 node-inspector,然后在终.

Vercel 部署 Node 服务

- - 掘金 前端
之前在写 面试常客:HTTP 缓存时,曾经就强缓存和协商缓存写过两个demo,但缓存要在服务端做,只能贴上代码,不能在网页上感受(虽然我贴了gif). 笔者的所有 demo 例子都放在 github page 上,其特点是不需要服务器即可部署静态资源,但它不具备部署服务端应用能力. 最近笔者在了解 CI/CD 方面的知识点,想起了 Vercel,就想着能否将服务端应用架在 vercel 上呢.

無痛安裝 NodeJS 和 Node Framework Express

- Hming - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
直接到官網下載 Stable 的版本吧,目前是 node-v0.4.10.tar.gz,也可以先看看 API Document. 安裝 Ububtu 相關套件. 下面會使用最原始的編譯方式,所以必須安裝 g++ 套件,否則下 ./configure 的時候,會吐出來沒有安裝過的套件. 兩種方法:1.用 apt-get install nodejs 2.