【问题标题】:NodeJS vs Play Framework for large project大型项目的 NodeJS vs Play 框架
【发布时间】: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,但我并没有在最好的数据库访问层上使用。任何人都有这方面的经验并可以分享一些见解?

【问题讨论】:

    标签: mongodb node.js playframework coffeescript anorm


    【解决方案1】:

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

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

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

    【讨论】:

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

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

    节点

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

    播放!

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    相关资源
    最近更新 更多