首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有使用"Play“java web开发框架的经验吗?

有使用"Play“java web开发框架的经验吗?
EN

Stack Overflow用户
提问于 2009-10-21 04:25:52
回答 9查看 10.2K关注 0票数 63

我刚刚偶然发现了以下新的java web框架: Play

http://www.playframework.org/

http://www.playframework.org/documentation/1.0/home

有了这么多令人惊叹的功能,我很惊讶我以前从来没有听说过它……

听起来像是java web开发的乐土……

有人试过吗?有没有真正的经验?你认为它值得研究吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-10-30 18:51:46

我同意Jason的观点,Play可能会被证明比Grails更好。有了四个Grails项目(在此之前还有两个Tapestry项目和一个Wicket项目),我认真地考虑了Play next。

我认为Grails最酷的一点是“一切都是Groovy的”。也就是说,可以使用Groovy编写所有内容(除了HTML和CSS) --域、控制器、服务、页面模板(GSP)、标记库、Hibernate API (GORM)、单元测试(GUnit)和构建脚本(GANT)。您甚至可以在Groovy中编写shell脚本。因此,能够使用一种语言编写应用程序的所有方面似乎又像是一种早就应该进行的简化--让人回想起用C++或Delphi等单一语言编写桌面应用程序的日子。然而,我了解到,一种尺寸并不适合这里的所有人。

首先,IDE对Groovy的支持不是很好。IntelliJ做得最好,但是由于Groovy是动态的,所以它只能做到这一点。重构工具不能(不能)捕获所有的东西,所以你不能百分之百地信任它们。这意味着你必须对单元测试特别警惕。这里,由于Grails在很大程度上依赖于运行时发生的动态“魔术”,所以Grails中的单元测试必须依赖于一个广泛的模拟层来模拟它,而这个模拟层是奇怪的。第三个问题是,您正在编写的许多所谓的Groovy代码实际上是特定于域的语言(DSL)代码。(长话短说,DSL是Groovy的缩写,它利用了Groovy和许多语法都是可选的这一事实。)Grails对不同的配置、URL映射等使用不同的DSL,这是不一致的。例如,指定log4j设置的方式看起来与指定数据源的方式完全不同,也不像Groovy语言所基于的纯Java语言。因此,“一切都是Groovy”的承诺无论如何都会破灭。

在这种情况下,我知道Play团队是从哪里来的。

对于域、控制器、服务和JUnits,

  1. 回到常规Java是有意义的。强类型意味着集成开发环境可以可靠地提供智能感知、代码导航、重构等方面的帮助(因此,如果您对IntelliJ感到满意,则无需为Eclipse付费)。为了获得强大的工具支持,不得不编写更多冗长的代码,这对我来说现在似乎是一笔不错的交易。我们走着瞧。Groovy我很高兴我仍然可以在页面模板中使用
  2. 。不过,我担心我在模板中放入的代码可能会比我应该放入的代码多。
  3. 我没有使用JPA的经验,但它似乎与GORM为我所做的非常接近,所以这很酷。
  4. Grails中的Spring IOC支持是完全透明的,而Play的支持似乎很少;然而,我认为IOC被过度使用了,在我真正需要的极少数情况下,我非常愿意手动编写Spring XML映射。(我的一个悬而未决的问题是,我假设JPA有事务支持,这就是为什么Play不像Grails那样需要Spring,不是吗?)
  5. 我从来都不是Python的粉丝,所以当我读到Play使用Python作为构建脚本时,我感到害怕。但我同意Grails的GANT脚本运行非常慢。另外,我发现,尽管GANT比XML ANT有了巨大的改进,但仍然很难理解ANT的概念。Grails GANT脚本非常复杂。
  6. 的Play“应用程序模块”模型听起来就像Grails的“插件”模型,所以这很酷。
  7. 到目前为止,我读过的Play文档给我留下了非常深刻的印象。我有一大堆问题要问,但其中一半马上就得到了回答。

当我深入研究的时候,我会再次报告的。

票数 71
EN

Stack Overflow用户

发布于 2009-11-02 21:52:45

我尝试过Play,我印象深刻:它在提供一个比大多数框架简单得多的有用的开发模型方面做得很好。最重要的是,运行时在“开发模式”下直接解析.java文件的能力很有价值:只需在浏览器中重新加载网页,而不运行构建脚本或等待重新部署,就值得大大提高开发速度。浏览器中显示的错误消息也非常好。

给我留下深刻印象的另一件事是整体美感:教程应用程序实际上看起来很好(无论是代码还是网页设计),这可能是一件小事,但这延伸到了整个框架,API以及文档。

票数 28
EN

Stack Overflow用户

发布于 2009-11-11 05:31:08

在一位同事的鼓励下,我看了一眼,跟着教程走了,然后就迷上了它。在浏览器中获得即时反馈意味着您不必使用IDE。我喜欢Eclipse,但让我们面对它:在添加了一些额外的内容之后,它就不像一个简单的文本编辑器那样稳定。在装有TextMate的苹果电脑上,你甚至可以点击浏览器中的错误信息,TextMate就会弹出,并将光标放在该行上。

Play中的测试也做得很好,只需按一下按钮,就可以运行单元测试、功能测试和基于Selenium的测试。

Play是令人兴奋的,因为它仍然很小,不复杂。它只使用ant来构建,并且在25秒内完成。只需在任何play应用程序中编辑.textile文件并重新加载文档,就可以为漂亮的文档做出贡献。

这就是我最终如何将教程翻译成使用Scala,在需要的地方添加Scala支持,以获得尽可能好的效果。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1597086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档