【问题标题】:Advantages of node.js in comparison with other web technologies [closed]与其他 Web 技术相比,node.js 的优势 [关闭]
【发布时间】:2011-09-22 23:21:40
【问题描述】:

据我了解,node.js 对于现在可以在服务器端进行开发的 Java Script 程序员很有用。此外,一些Java Script代码可以从客户端移植到服务器端。

与其他服务器端技术(Java Web 框架、RoRDjango 等)相比,node.js 是否还有其他优势?

【问题讨论】:

  • 许多问题的重复。请在 node.js 标记中搜索投票最多的问题。 node 在性能方面比大多数都好,但不如haskell/erlang。它肯定胜过 RoR/ASP.NET/J2EE。

标签: node.js


【解决方案1】:

node.js 是事件驱动的。虽然大多数其他框架都将这种功能作为插件内置(例如通过事件机器),但这只是node.js 中的“方式”。想法是事件驱动的架构可以带来更具可扩展性的应用程序(通常由The C10K problem 推动)。其次,用 JavaScript 编写降低了大多数已经习惯使用该语言的前端开发人员的入门门槛。在我看来,使用它也很有趣,但我不能说我已经为任何高流量应用程序部署了它。它也有炒作机器。最近我迷上了liftscala,但这只是我自己的喜好。

【讨论】:

  • 您是否希望前端开发人员能够轻松地使用后端?前端开发人员和后端开发人员对各种事情有完全不同的心态和方法,我完全不相信让一个人在其他人的东西上工作太容易是一件好事。
  • 我对我给出的任何一个论点都不买账,但这是最常列举的两个。我认为 V8 有一些问题会对节点造成问题,尤其是线程模型。
  • @ChrisMorgen @bmatheny 降低进入门槛是错误的。学习 PHP 然后学习 node.js 更容易。同时做前端和后端开发并没有错,任何网络开发人员都应该能够同时做(但专攻其中一个)
  • @Chris Morgan 我不认为这是心态。你让它听起来像前端开发人员是懒惰的人。大多数时候,解决问题的方法不同,但这也是因为语言根本无法比较(功能/oop 与原型语言相比)。当您可以在前端/后端同时使用 javascript 时,我认为您可以更成功地创建双方...
【解决方案2】:

包管理

与 Java 的 Maven node.js 包管理系统(npm) 相比,它是有史以来最好的。 对我来说,仅此一项就足以转换。我建议您查看的软件包:

  • 快递
  • socket.io
  • node_redis
  • 猫鼬
  • everyauth

您可以使用http://search.npmjs.org/搜索包

快速

node.js 非常快(事件循环非阻塞)并且还具有非常快速的本机绑定(C)。例如 node_redis(C binding) 基准测试:

PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287

积极的开发/社区

Ryan Dahl 在他的项目上非常努力。 node.js 现在也有来自 Joyent 的积极支持(赞助商)。社区发展迅速

【讨论】:

【解决方案3】:

性能是主要优势,node.js 为每个连接分配一个小堆,而其他服务器端解决方案为每个传入连接创建一个 (2MB) 线程,当然创建线程比分配堆内存要慢得多。其他优势之一是 node.js 的面向事件和非阻塞特性。

【讨论】:

  • 是的,同意 rcode。从开发人员的角度来看,您不必担心线程同步或死锁。与其他高级语言相比,必须编写更少的代码。计算繁重的工作可以编写为 C++ 插件。
  • 不记得在网络堆栈中写过 new Runnable(){...}。曾经 :) 尤其是在我使用 PHP 的时候 :)
  • 非阻塞性质是什么意思?我来自 PHP 背景,通过 JQuery 对 PHP 中返回 JSON 的服务脚本进行异步 AJAX 调用
【解决方案4】:

作为应用程序开发人员,我们有责任应用逻辑来解决问题。前端开发人员遇到的所有问题在后端开发中都有类似的对应物。是的,它们的表达方式不同,但它们本质上是相同的问题。

Node 只是通过以离散和理性的方式统一方法来表达这一事实。

通过以相同的方式编写后端,应用相同的逻辑路径,它使过渡对开发人员更加透明,简化了他们的工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-08
    • 2011-06-08
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2010-10-22
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多