• Node.js使用的场景 (翻译自Node.js早期贡献者Felix的文章)


    Node.js使用的场景 (翻译自Node.js早期贡献者Felix的文章) - CNode

    Node.js使用的场景 (翻译自Node.js早期贡献者Felix的文章)

    原文地址在这里:http://nodeguide.com/convincingtheboss.html 英文版,题目的意思是说服老板的指南,文章中就Node.js应用场景这一重要话题说了一些看法,我摘取其中比较重要的段落,翻译在这里:

    糟糕的用例:

    高CPU消耗的app:

    尽管我喜欢node.js,却有很多的用例是不靠谱的。最显而易见的用例是那种CPU使用率高同时I/O操作小的。所以如果你打算写一个视频编码软件,人工智能软件或者类似的CPU使用率高的软件,请不要用node.js。要是你肯稍微变通一下,用C或C++效果会更好。
    话虽这么说,node.js允许你很轻松的写C++扩展,所以你可以把它作为一个你核心算法的脚本引擎。

    简单的CRUD / HTML apps

    尽管可以说node.js是个写各种web程序的不错的工具,你也不该期待它在这点上能比PHP,Ruby或Python带给你更多的好处。是的,你的app也许最终会多一点可扩展性,可是不会因为你是用node.js写的就会神奇般的的带来更多的访问量。
    事实是,当我们去看node.js的好的框架时,目前还没有并没有比Rails, CakePHP或者Django更强大的应用场景。如果你的app只是简单的基于一些数据库做HTML的渲染,使用node.js不会给你显而易见的好处。

    NoSQL + Node.js + 各种扯淡的时髦词汇

    如果你的下一个app的架构读起来像一个NoSQL做配料的菜谱,请花点时间读读下面的内容。
    是的,Redis, CouchDB, MongoDB, Riak, Casandra等等确实诱人,但是夏娃的红苹果也一样难以抗拒。如果你准备用node.js来冒一次技术风险,你就不该再加上更多的你没有完全理解的技术。
    确实,有一些文档数据库的合理的用例,但是如果你准备在你的软件上建立一个商业环境,坚持那些保守点的数据库技术(像postgres或mysql)也许胜过于你满足你迂腐的技术观,也胜过于只是让你的朋友觉得你很牛。

    好的用例

    JSON API

    建立轻量级的REST / JSON api正是node.js的亮点。如果你要包上你的数据库操作或web服务,同时通过JSON把接口暴露出来,node.js的无阻塞模型和JavaScript技术让它成为你非常好的一个选择。

    单页的app

    如果你打算写一个AJAX操作非常多的单页面app(比如gmail),node.js是非常合适的。在极短的响应时间内处理大量请求的能力,不同的客户端共享像确认信息之类的东西,这些都让node.js成为那种在客户端做很多处理的web程序的很好的选择。

    对unix工具的脚本化调用

    node.js现在还很年轻,它正在试图为自己重新发明各种软件,不过更好的办法是深入到现有的广阔的命令行工具世界里。Node.js拥有产生数以千计的子进程的能力,同时可以把这些子进程的输出以流的方式处理,这让它成为那种和现有软件寻求平衡时的很好的选择。

    流数据

    传统的web程序讲http请求和响应作为元事件处理。可事实是它们是流,很多很酷的node.js程序正是利用这个优点创建的。最牛的例子是实时解析上传文件,还在不同的数据层建立了代理。

    软件实时程序

    node.js另一个很大的方面是你可以很轻松的开发软实时系统。这是指那些像twitter,聊天软件,体彩或实时通讯网络的接口。

    但是这里你得注意了,因为JavaScript的动态垃圾回收特性,你得到的响应次数是依赖于你多频繁以及多久触发垃圾回收机制(此时你的程序停止了)。所以不要试图在node里建立硬实时系统,那需要永远一致的响应时间。Erlang在这一类的程序上应该是更好的选择。

  • 相关阅读:
    嵌入式操作系统-小型任务调度的理解(转)
    数据分析-pandas基础入门(一)
    硬件电路设计——低通滤波器的应用
    Docker
    AWK总结
    DNS解析
    TCP/IP
    Mysql优化部分总结
    Nginx配置文件释义备查
    时间模块
  • 原文地址:https://www.cnblogs.com/lexus/p/2478238.html
Copyright © 2020-2023  润新知