大型项目的 NodeJS vs Play 框架

Posted

技术标签:

【中文标题】大型项目的 NodeJS vs Play 框架【英文标题】:NodeJS vs Play Framework for large project 【发布时间】:2011-11-30 04:24:52 【问题描述】:

在构建大型应用程序的两个不同堆栈之间,我真的很纠结。一方面有这个选项:

Node.js 快递 咖啡脚本 咖啡店 猫鼬/mongodb 或 presistencejs/mysql

带有 Scala 的播放框架 带有 mysql 的异常 或mongodb

node.js 路径对我很有吸引力,因为我可以用我已经知道的 coffeescript 编写所有服务器端代码、视图和客户端代码。如果我走这条路,我仍然不能 100% 确定我会走哪条 db 路径。 mongoose 可以快速轻松地存储数据,但考虑到我想到的数据模型(非常 SQLish),缺乏真实关系可能更难处理。

Play Framework 路径也很吸引人,因为我在使用 Java 时非常了解该框架,但我对 Scala 了解不多,因此在学习该语言时工作效率会受到影响。 Anorm 数据库访问层很有吸引力,因为我可以手动编写我喜欢的 SQL,并将结果自动映射到对象,这样可以节省很多精力。

我一直倾向于 node.js,但我并没有在最好的数据库访问层上使用。任何人都有这方面的经验并可以分享一些见解?

【问题讨论】:

【参考方案1】:

在比较 Web 框架时,您应该考虑 10 个主要类别:

    学习:入门、提升、整体学习曲线。 开发:路由、模板、i18n、表单、json、xml、数据存储访问、实时网络。 测试:单元测试、功能测试、集成测试、测试覆盖率。 安全:CSRF、XSS、代码注入、标头、身份验证、安全建议。 构建:编译、运行测试、预处理静态内容(sass/less/CoffeScript)、打包。 部署:托管、监控、配置。 调试:逐步调试器、分析器、日志记录, 规模:吞吐量、延迟、并发。 维护:代码重用、稳定性、成熟度、类型安全、IDE。 分享:开源活动、邮件列表、受欢迎程度、插件、商业支持、工作。

查看我的演讲 Node.js vs Play Framework,详细了解这两个框架在这 10 个维度上的比较。

【讨论】:

那绝对是一个很棒的演讲,但我有点惊讶你没有提到 Play 完全可以与 Java 一起使用,我觉得它可以增加对很多人的吸引力。跨度> @Nepoxx:演讲是在 Scala 会议上进行的,所以我专注于 Play/Scala,但正如您所说,Play 也可以与 Java 一起使用。【参考方案2】:

您选择的堆栈应取决于您的应用程序的需求。让我们看看 Play 与 Node 的优势:

节点

实时应用程序(聊天、提要) 事件驱动架构 可以执行客户端-服务器职责(例如提供文件),但不适合此 数据库管理、测试工具等,作为附加包提供

播放!

客户端-服务器应用程序(网站、服务) 无共享架构 可以执行实时任务(例如 Websocket),但不适合此操作 核心内置的数据库管理(包括迁移!)、测试工具等

如果您的应用程序更接近传统的基于 Web 的模型,Play 可能是您的最佳选择。如果您需要即时反馈和实时动态消息传递,Node 是更好的选择。

对于大型传统应用程序,请认真考虑 Play!框架,因为内置单元和功能测试以及数据库迁移。如果将其纳入开发过程,这些对于最终产品按预期工作、稳定且无错误会有漫长的路

【讨论】:

您能解释一下为什么 Play Framework 不适合实时任务吗? Play Framework 基于事件驱动的服务器架构。 Play Framework 建立在客户端请求服务器架构之上。可以使用 continuation 进行异步操作,Play Framework 有库可以让这更容易;它的优势在于较短的请求生命周期(即传统的 Web 请求)playframework.org/documentation/1.2.3/asynchronous 我认为 Play 2.0 非常适合实时任务——这里有一些 Play 2 WebSocket examples/docs。 如果您有疑问,请查看Typesafe console。实时仪表板。 KajMagnus 的链接不再指向有效示例。以下是 Play 2.3.3 中有关 websockets 的文档:playframework.com/documentation/2.3.3/ScalaWebSockets

以上是关于大型项目的 NodeJS vs Play 框架的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目

NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目

从java到nodejs再到java

NodeJs框架

playframework owasp 前 10 名

vs code 调试nodejs项目配置文件