55

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

  • 节点.js
    • 表示
    • 咖啡脚本
    • 咖啡杯
    • 猫鼬/mongodb 或
    • presistencejs/mysql


  • 使用 Scala 播放框架
    • 带 mysql 的异常
    • 或 mongodb

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

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

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

4

2 回答 2

47

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

节点

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

玩!

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

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

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

于 2011-10-03T23:21:42.777 回答
13

在比较 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 个维度上进行比较。

于 2014-09-29T19:01:51.583 回答