node.js用处,node.js的应用场景
Node.js使用的场景(翻译自Node.js的早期撰稿人Felix的文章)-CNode
Node.js使用的场景(译自Node.js早期投稿人Felix的一篇文章)原文地址在这里:http://nodeguide.com/convincingtheboss.html英文版。标题的意思是说服老板的指南。文章就Node.js应用场景这个重要话题发表了一些看法。我从中摘录了一些重要的段落,翻译到这里:
糟糕的用例:
CPU消耗高的应用程序:
虽然我喜欢node.js,但是有很多不靠谱的用例。最明显的用例是具有高CPU利用率和小I/O操作的用例。所以如果你准备写一个视频编码软件,人工智能软件或者类似的CPU使用率很高的软件,请不要用node.js如果你愿意稍微改一下,用C或者C会更好。
话虽如此,node.js允许你轻松地编写C扩展,所以你可以用它作为你的核心算法的脚本引擎。
简单的CRUD/HTML应用
虽然可以说node.js是编写各种web程序的好工具,但是你不要指望它能给你带来比PHP、Ruby或者Python更多的好处。是的,你的应用程序最终可能会更具扩展性,但它不会因为你在node.js中编写它而神奇地带来更多的访问者
事实是,我们看node.js这个好框架,没有比Rails、CakePHP或者Django更强大的应用场景了。如果你的app只是简单的基于一些数据库渲染HTML,那么使用node.js并不会给你带来明显的好处。
NoSQL Node.js各种无厘头流行语
如果你的下一个应用程序的架构读起来像一个以NoSQL为原料的食谱,请花点时间阅读以下内容。
是的,Redis,CouchDB,MongoDB,Riak,Casandra等等确实很吸引人,但是Eve的红苹果也一样不可抗拒。如果你打算在node.js上冒技术风险,你就不应该加入更多你不完全了解的技术。
诚然,文档数据库有一些合理的用例,但如果你打算在你的软件上构建一个商业环境,坚持那些保守的数据库技术(如postgres或mysql)可能比满足你对技术的迂腐观点或只是让你的朋友认为你很棒更好。
良好的使用案例
应用程序接口
轻量级REST/JSON api的建立是node.js的亮点如果你想把你的数据库操作或者web服务打包,通过JSON公开接口,node.js的无阻塞模型和JavaScript技术让它成为你非常好的选择。
单页应用程序
如果你打算写一个有很多AJAX操作的单页app(比如gmail),node.js非常适合。在很短的响应时间内处理大量请求的能力,以及不同客户端共享确认信息等内容,所有这些都使node.js成为在客户端进行大量处理的web程序的良好选择。
对unix工具的脚本调用
Node.js还很年轻,它正在尝试为自己重新发明各种软件,但更好的方法是深入现有的命令行工具的广阔世界。Node.js具有生成成千上万个子流程的能力,同时可以以流的形式处理这些子流程的输出,这使得它成为与现有软件进行平衡的良好选择。
流数据
传统的web程序将http请求和响应作为元事件来处理。但事实是它们是流,很多很酷的node.js程序都是利用这个优势创建的。最好的例子就是对上传文件的实时分析,以及在不同数据层建立代理。
软件实时程序
node.js的另一个重要方面是,您可以轻松开发软实时系统。这里指的是那些类似twitter、聊天软件、体育彩票或者实时通讯网络的界面。
但这里你要注意,由于JavaScript的动态垃圾收集特性,你得到的响应数量取决于你触发垃圾收集机制的频率和时间(当你的程序停止时)。所以不要试图在node中构建一个硬实时系统,这需要永远一致的响应时间。对于这类程序,Erlang应该是更好的选择。