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

  • 2012-05-20
  • 本文字数:1312 字

    阅读完需:约 4 分钟

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 无法提供像 Ruby Rails 或者 Python Django 这样强大的框架
  • 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.js MongoDB 才能实现高性能站点,Java 也一样可以做,使用 C 语言的可操控性更好,但现实是 Java 不够时髦,C 语言做 Web 站点很怪

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