NodeJS与大型项目的Play Framework

我真的在两个不同的堆栈之间撕裂,build立一个大的应用程序。 一方面有这样的select:

  • Node.js的
    • performance
    • 咖啡剧本
    • coffeekup
    • mongoose/ mongodb或
    • presistencejs / MySQL的

  • 玩框架瓦特/斯卡拉
    • Anorm w / mysql
    • 或者mongodb

node.jspath对我很有吸引力,因为我可以在coffeescript中编写所有的服务器端代码,视图和客户端代码,我已经知道了。 如果我走下这条路,我还不能100%确定我要走哪条路。 mongoose使得存储数据变得简单快捷,但是考虑到数据模型(非常SQLish),缺乏真正的关系可能会更困难。

Play框架的path也很有吸引力,因为我在使用Java的时候很了解框架,但是我对Scala的了解不多,所以当我通过学习这种语言的时候,生产力会受到影响。 Anorm数据库访问层是有吸引力的,因为我可以手工编写SQL,我更喜欢,并将结果自动映射到对象,从而节省了大量的工作量。

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

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

节点

  • 实时应用程序(聊天,提要)
  • 事件驱动的体系结构
  • 可以执行客户端 – 服务器职责(例如服务文件),但不是很适合这个
  • 数据库pipe理,testing工具等,作为附加软件包提供

玩!

  • 客户端 – 服务器应用程序(网站,服务)
  • 无共享架构
  • 可以执行实时的任务(例如Websockets),但不是很适合这个
  • 数据库pipe理(包括迁移!),testing工具等,内置于核心

如果您的应用程序与传统的基于networking的模型更加匹配,则Play可能是您的最佳select。 如果您需要即时反馈和实时dynamic消息传递,Node是更好的select。

对于大型的传统应用,认真考虑Play! 框架,因为内置的单元和functiontesting以及数据库迁移。 如果融入到开发过程中,这些产品可以长期使用,并且可以按照预期的方式工作,并且稳定无误。

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

  1. 学习 :入门,加强,总体学习曲线。
  2. 开发 :路由,模板,i18n,表单,json,xml,数据存储访问,实时网页。
  3. testing :unit testing,functiontesting,集成testing,testing覆盖率。
  4. 安全 :CSRF,XSS,代码注入,头文件,身份validation,安全build议。
  5. 构build :编译,运行testing,预处理静态内容(sass / less / CoffeScript),包。
  6. 部署 :托pipe,监视,configuration。
  7. debugging :一步一步debugging器,分析器,日志logging,
  8. 规模 :吞吐量,延迟,并发性。
  9. 维护 :代码重用,稳定性,成熟度,types安全,IDE。
  10. 分享 :开源活动,邮件列表,人气,插件,商业支持,工作。

查看Node.js与Play Framework的对话,详细分析这两个框架在这10个维度上的比较情况。