zoukankan      html  css  js  c++  java
  • 2015第39周一

    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 的架构与 Django, Rails 等传统的 Framework 不同,不需要放在 Nginx / Apache 后,利用 WSGI, CGI 之类的接口一板一眼的 [接受Request] -> [运行程序逻辑] -> [生成并返回Response]。这是一个巨大的变化,之前一些无法想象的功能都有可能实现了。比如  可以用浏览器实现 P2P 的文件传输。正因为 Node.js 可以更精细的控制 Request 和 Response 的时间和内容,websocket 似乎天生就是为 Node.js 而生的,而配合  这个神奇的库之后,在 realtime webapp 这个领域,Node.js 已经没有对手了。
    • Node.js 的包管理器 npm 设计得比 python 和 ruby 好很多。有很多的 module 开发者。

    当然也有一些缺点

    • Debug 很困难。没有 stack trace,出了问题很难查找问题的原因。
    • 如果设计不好,很容易让代码充满 callback 。实在受不了的可以考虑一下  这个项目。不过 Node.js 的核心团队并不推荐使用。
  • 相关阅读:
    渚漪Day07——web前端入门【JavaScript02】
    渚漪Day06——web前端入门【HTML补充】【JavaScript01】
    渚漪Day05——注解与反射
    IDEA小知识
    圆覆盖
    数据降维算法——主成分分析
    word Embedding 大杂烩
    fastNLP学习笔记——Vocabulary
    fastNLP学习笔记——Dataset
    Batch Normalization 与 Layer Normalization
  • 原文地址:https://www.cnblogs.com/doit8791/p/4827457.html
Copyright © 2011-2022 走看看