NodeJS vs Play Framework适用于大型项目

时间:2011-10-03 19:32:23

标签: mongodb node.js playframework coffeescript anorm

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

  • 的Node.js
    • 表示
    • 咖啡脚本
    • coffeekup
    • 猫鼬/ mongodb的 或
    • presistencejs / MySQL的


  • 使用Scala播放框架
    • Anorm w / mysql
    • 或mongodb

node.js路径对我很有吸引力,因为我可以在coffeescript中编写所有服务器端代码,视图和客户端代码,我已经知道了。如果我沿着这条路走下去,我仍然不能100%确定我将采取哪种数据库路径。 mongoose使得存储数据变得快速而简单,但考虑到我想到的数据模型(非常SQLish),缺乏真正的关系可能更难以工作。

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

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

2 个答案:

答案 0 :(得分:46)

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

节点

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

播放!

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

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

对于大型传统应用,请认真考虑Play!框架,因为内置单元和功能测试以及数据库迁移。如果将其纳入开发过程,那么它们将朝着最终产品的方向发展,这种产品可以按预期工作,并且稳定且无错误。

答案 1 :(得分:13)

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

  1. 学习:入门,提升,整体学习曲线。
  2. 开发:路由,模板,i18n,表单,json,xml,数据存储访问,实时网络。
  3. 测试:单元测试,功能测试,集成测试,测试覆盖率。
  4. 安全:CSRF,XSS,代码注入,标头,身份验证,安全建议。
  5. 构建:编译,运行测试,预处理静态内容(sass / less / CoffeScript),包。
  6. 部署:托管,监控,配置。
  7. 调试:分步调试器,分析器,日志记录,
  8. 扩展:吞吐量,延迟,并发。
  9. 维护:代码重用,稳定性,成熟度,类型安全,IDE。
  10. 分享:开源活动,邮件列表,热门程度,插件,商业支持,工作。
  11. 查看我的演讲Node.js vs Play Framework,详细了解这两个框架在这10个维度中的比较。