圣杯或游戏!对于前RoR开发人员?

我计划开始学习Java Web框架(我喜欢Java API),我已经使用过Rails和Django。

我想要一些接近Java的东西,但没有J2EE的所有复杂性。

我发现了2个可能对我有好处的框架:

圣杯

Grails看起来很棒,它使用Groovy,它比Java更适合Web应用程序(我认为..)但它比基于纯java的框架(Hibernate,Strut,Spring)慢,它看起来很容易部署(发送.war,没关系!),GSP很棒!调试有点困难(每次修改都需要重新启动服务器,堆栈跟踪包含Java和Groovy跟踪的混合,这并不总是最容易理解的)

玩!

这个框架看起来也很棒;它比Grails快(它使用Java),但我真的不喜欢它使用Java的方式,它修改了源代码以将属性调用转换为setXXX / getXXX,我不喜欢这样...该框架还具有Grails没有的缓存功能。我真的不喜欢模板引擎。调试也更容易(无需重新启动服务器,堆栈跟踪更清晰)

你有什么建议?我正在寻找一些易于学习的东西(我有很多Ruby经验,不是那么多Java经验,但我喜欢Java API),功能齐全(所有可用的Java库都没有问题,但如果它是捆绑和集成的,我更喜欢),具有良好的可扩展性并且不太慢(比Ruby快)理想情况下,我想使用一个具有体面社区的框架来轻松找到支持。

PS:我对JRuby on Rails不感兴趣


答案 1

我从Grails切换到Play,我从未回头。我在Grails上遇到的最大问题是整体健壮性和开发人员可用性。大多数时候,我被Grails将通常的Spring MVC和Hibernate堆栈粘合在一起的事实所咬伤,同时试图隐藏这一事实并为您提供类似Rails的API(我个人的观点)。这样做的问题是,一旦某些东西超出了琐碎的样本,它就很容易坏掉,对我不起作用。用它发展就像在鸡蛋上行走(对我来说)。每当我在谷歌上搜索我需要的功能的文档时,我都没有被重定向到示例,教程,博客,而是重定向到Grails JIRA,向我解释为什么该功能不适用于我的用例,并且该错误在我使用的两个版本之前未得到解决。

虽然这可能不是每个开发人员的整体体验(我写这篇文章不是为了抨击Grails,而是在这里提供我的体验),但我需要一些能帮助我的东西,并且不会在我最需要的时候阻碍我或崩溃。就在那时,我发现了Play,并且在我发现它之后(大约在~1.0版本)之后,我迅速将我的应用程序迁移到了它。

到目前为止,这是一次很棒的旅程,在我的Web开发生涯中,我第一次停止寻找其他框架,试图找到我想要更好的东西。

如果我必须以Play比Grails做得更好的一件事来结束 - 至少对我来说是这样 - 那就是Play是从头开始构建的,考虑到开发人员的可用性。它不会牺牲企业流行语的易用性。它有勇气抛弃不适合这种范式的东西(例如,在开发过程中抛弃基于Servlet的运行时,以加快周转速度)。它愿意做出妥协,以保证令人敬畏。这是我在发现Play之前只在Rails或Django等社区中看到的。


答案 2

我建议圣杯。它有一个比play框架更大的社区(约350个插件几乎涵盖了所有基本需求)。此外,grails几乎完全是用Java编写的,它只是允许您使用Groovy来实现特定于域的实现。

如果您确实遇到了性能问题,其中您创建的时髦页面是瓶颈,则始终可以切换到Java实现。然后,您就与一直使用Play框架在同一条船上。你已经优化了你的开发时间,推迟了Java中的编码,直到你知道你实际上需要这样做(根据我的经验,这是非常罕见的)。

我也不确定您在哪里听说每次修改都需要重新启动服务器,但实际上并非如此。Grails支持重新加载控制器/ gsps /服务/域对象等,而无需重新启动服务器。

混合堆栈跟踪可能会有点长,但工具供应商(如Intellij)最近进行了一些改进,删除了您不关心的所有堆栈跟踪部分。

自.5天以来,我一直在使用圣杯,并且对平台非常满意。


推荐