原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com

首先本文的目的不是引发语言之争,纯属个人的一些思绪记录。

因为工作原因,用Node.js做过几个项目,基本都是涉及REST方面的。有一个涉及消息转发的服务,分别部署到6台服务器,目前已经成功处理数亿的消息,没有发生消息丢失,总体运行稳定,说明Node用在产线环境是能经受考验的。

今年Node社区发生了一件大事,那就是Express作者TJ大神转投Go的怀抱,理由是大神要做云端程序开发。作为悲催的偏后端码农,开始怀疑Node在后端的表现,有了以下偏见:

1. Node是运行在V8之上的,虽然有的模块已经被改良,但基因没变,而V8是为桌面浏览器设计的,服务端毕竟要求会苛刻一些。

2. Node作为Javascript运行环境,而Javascript的发展受限于ECMA规范,ECMA规范可能是双刃剑。

3. 总感觉event loop比较脆弱, 可以充分利用IO, 但无法执行CPU密集性工作,多核运行需要require cluster,一直觉得这种做法有点山寨。

4. Callback层次的问题,可以用async等库进行改善,但还是觉得山寨。业务逻辑在回调机制下支离破碎,凡人难以理解。

5. 生态的问题,Javascript由于门槛低,github各种node库相当泛滥,质量参差不齐,好在有源代码,踩坑了再回来填坑。

6. 一些第三方库或为了追求性能,或为了突破限制,需要结合Node源码进行编译,总觉得不够环保。特别是产线服务器不能访问外网的情况下,就要抓狂了。

7. 我自己Javascript水平不怎么样,也就认为弱类型语言可维护性不如强类型语言,单元测试可以保证正确性,但难以重构。

基于以上莫须有的理由,我不知道Node 1.0以后的路会怎么走? 往哪方面走?还能走多远? 目前1.0已经有些难产…

建议:暂时不要将Node用于核心业务, 虽然paypal宣称已经这样干了。充分利用Node的优势,做和前端交互性的工作,并且是在规模不大的时候。如果把后端系统想象成一个鸡蛋的话,那蛋黄就不要用Node来做,一家之言。

有点担心Node.js的未来了的更多相关文章

  1. Node.js TLS/SSL

    Stability: 3 - Stable 可以使用 require('tls') 来访问这个模块. tls 模块 使用 OpenSSL 来提供传输层(Transport Layer)安全性和(或)安 ...

  2. 一名全栈工程师Node.js之路-转

    Node.js 全球现状 虽然 Node.js 在国内没有盛行,但据 StackOverflow 2016 年开发者调查,其中 node.js .全栈.JavaScript 相关的技术在多个领域(包括 ...

  3. 好未来数据中台 Node.js BFF实践(一):基础篇

    好未来数据中台 Node.js BFF实践系列文章列表: 基础篇 实战篇(TODO) 进阶篇(TODO) 好未来数据中台的Node.js中间层从7月份开始讨论可行性,截止到9月已经支持了4个平台,其中 ...

  4. heX——基于 HTML5 和 Node.JS 开发桌面应用

    heX 是网易有道团队的一个开源项目,允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.heX 是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁 ...

  5. Node.js 项目搭建

    关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版. ...

  6. heX:用HTML5和Node.JS开发桌面应用

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. PHP vs Node.js

    网络正在处于一个日新月异的发展时代.服务器端开发人员在选择语言的时候非常困惑,有长期占主导地位的语言,例如C.Java和Perl,也有专注于web开发的语言,例如Ruby.Clojure和Go.只要你 ...

  8. [转载]Node入门 » 一本全面的Node.js教程

    http://www.nodebeginner.org/index-zh-cn.html 作者: Manuel Kiessling 翻译: goddyzhao & GrayZhang & ...

  9. (转)heX——基于 HTML5 和 Node.JS 开发桌面应用

    本文转载自:http://techblog.youdao.com/?p=685 简介:heX,一个允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.是你开发 ...

随机推荐

  1. 【Android进阶学习】shape和selector的结合使用(转)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/732310 ...

  2. for循环每次取出一个字符(不是字节)

    python3.5 for循环每次取出一个字符(不是字节) #!/usr/bin/env python # -*- coding:utf-8 -*- my_str = "我是哈哈" ...

  3. CC2530使用串口下载(SBL)

    工作环境: WIN7 64位 IAR 版本: 8.10.3 (8.10.3.10338) ZStack-CC2530-2.3.1-1.4.0协议栈,下载地址:http://download.csdn. ...

  4. Tween Animation----Alpha渐变透明度动画

    本博文是我自己操作过的并且能运行才给大家分享的 layout ----activity_main.xml 在res/新建一个anim文件夹,用来保存动画属性的xml 在anim文件夹里新建一个alph ...

  5. Daily Scrum Meeting ——FourthDay(Beta)12.12

    一.Daily Scrum Meeting照片 讨论界面优化详情 二.Burndown Chart 项目有条不紊地进行中... 1.新增6个界面修改计划 2.修复两个BUG 三.项目进展(check- ...

  6. jQuery Validate验证框架详解

    转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...

  7. js实现弹出的提示框只弹出一次

    <script type="text/javascript"> var ua = navigator.userAgent.toLowerCase(); if (/iph ...

  8. 根据异常处理对 Java 方法的层次分类

    我根据异常处理对 Java 的方法分为三个层次:1.执行层,2. 处理层,3. 调用层. 执行层方法只抛出异常 throws Exception,是作为代码的基层操作者,可能有多个层次. 处理层方法使 ...

  9. Mac系统中配置Tomcat环境

    第一步:下载Tomcat 下载地址:http://tomcat.apache.org/download-80.cgi 直接下载如图选中的即可 第二步: 下载完成后,解压,随意放入目录.如我就把它放在/ ...

  10. 前端工具之-- Sublime

    开始学习前端知识,做一些笔记来记录下- 之前学习都是使用的dw 现在前端开发工具既轻便功能也够强大. 下面记录下常用的前端工具: Sublime3:需要安装第三方包,一般 Atom:继承度非常好 VS ...