为什么选择 Node.js 作为 Web 应用程序?

2022-10-11 21:18:15 191 0
魁首哥

为什么开发团队应该为 Web 应用程序选择 Node.js?对于使用 Node.js 的熟练开发人员来说,某类应用程序实际上更容易吗?

这不是一个微不足道的问题,所以我认为它值得一个清晰的答案。其他答案中已经表达了很少的观点,但我认为列出所有观点可以帮助澄清:

1) 快速且易于原型化:与 JAVA 和 LAMP 等其他应用程序相比,可以在更短的时间内非常容易地(几乎)对任何类型的 Web 应用程序进行原型设计。顺便提一下节省的时间:node.js 本身提供了 Web 服务器模块,因此您不必拥有设置 Apache 或 NGINX 的知识,除非您想集成到现有平台中或者您有一个复杂的系统架构,非常活跃的 node.js 社区提供了现成的模块和深入的知识,可以节省您开发商品功能的时间(Facebook Connect、RESTful API、模板)

2) npm:是节点包管理器,它代表了与社区共享代码和管理外部依赖项的标准方式。它只有 2 年的历史,目前的模块数量(几乎)超过了在 RoR gems 上发布的模块数量。使用诸如 express、socket.io、mongoose、mocha、everyauth 之类的社区模块——仅举几例——为您提供了一个强大的工具箱,可以在几个小时内构建一个正在运行的应用程序“LAMP 等效”。它为您管理所有嵌套的依赖项,因此您可以专注于您的核心应用程序逻辑,而不是花时间开发社区以协作和有效的方式为您维护的商品功能。简单的配置文件语法让您还可以将模块修复到特定版本,因此您不必担心未来的更新会破坏您的软件。

3)云平台:有许多平台即服务解决方案,如Joyent cloud、heroku、nodejitsu,它们将节点识别为一流的技术,使您的应用程序的部署和规模变得微不足道。其他类似的服务如 Pagoda 也可以让您轻松开发 PHP + MySQL 应用程序,但目前有更多的选择和更好的支持云中的节点技术恕我直言。

4) mongoDB 和 Redis:通常一个 node.js 项目与 NoSQL 解决方案携手并进。 MongoDB 和 Redis 是互补技术,与 node.js 集成得很好。如果你在做一个没有关系数据库的项目,node.js 绝对是一个不错的选择。

5) javascript 和 coffescript:Javascript 是浏览器的语言这一事实​使得所有 Web 开发人员都必须处理它。这意味着几乎每个开发人员都可以阅读 Javascript,而且我发现越来越多的人能够编写良好、可靠、健壮的客户端 JavaScript 应用程序。在后端使用 node.js 会带来其他类型的问题,如分层架构、领域模型设计、MVC 以及正确使用设计模式,开发人员通常使用其他语言(如 PHP、JAVA、Python、RoR,但 coffescript)来解决这些问题在经典的 OO 继承和像 JavaScript 这样的原型继承之间构成了一种有效的桥梁翻译语言,帮助不精明的新的重新发现的 node.js 开发人员避免愚蠢的错误并过滤掉 JavaScript 的坏部分

6) 架构:node.js 架构由于其非阻塞交互,可以帮助您克服性能和可扩展性问题。比喻在 Nodestack 在线会议上有人将 Apache 比作比萨饼,当你必须等待现有的比萨饼煮熟后再放入更多和 node.js 的杂耍器,让请求在服务时在空中处理新来的。这种与 NGINX 类似的特殊架构直接利用操作系统事件系统调用,开启了所有那些使用其他语言无法轻松开发的软实时应用程序的开发。

7) 成本:由于其高性能,您可以避免额外硬件的成本。我设法在我的笔记本电脑上达到每秒 5000 次响应(使用 ab -n 100000 -c 快速应用程序进行测量)。从理论上讲,您还可以节省系统管理时间(除非您的体系结构复杂),因为无需将 HTTP 或 TCP 请求桥接到另一种服务器端语言。因此,您可以避免 Apache 或 NGINX 的安装和维护成本。

我不建议使用 node.js 开发 Web 应用程序的一个分支,尽管社区发展得如此之快,以至于我很快就会看到 node.js 在复杂事务系统的中心使用,我不会感到惊讶。最有可能的是,当您需要一个沙盒环境时,其中每个请求的内存空间分离对业务至关重要,并且您无法承受单个请求的情况异常关闭服务器 node.js 是次优的。

收藏
分享
海报
0 条评论
191
上一篇:我们身边的现代PHP(一) 下一篇:fastjson反序列化漏洞

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码