17

我环顾四周,看看 java 中是否有与 django/RoR 等价的东西。

我发现:

有没有人尝试过这些框架,或者你知道其他的吗?它们比 django/RoR 快吗?

4

18 回答 18

17

大约一年前我发现了 Grails,并且没有回头。它吸收了 Ruby on Rails 的很多想法(最初它被命名为 Groovy on Rails),并且拥有丰富的插件/扩展生态系统。Grails 和底层 Grails 语言(Java 的超集)使编程变得很有趣——您可以真正专注于基本要素。它的 GORM 功能(在 hibernate 之上的一个层)也非常强大,除了插件系统之外,这是检查它的两个重要原因之一(你也可以在你的 java 应用程序中使用它)。

随着 1.2 版即将问世,我觉得它的功能丰富且成熟,足以成为任何开发人员都应该拥有的工具。

就性能而言,它肯定不如纯 Java,但是您可以使用从 spring/hibernate/J2EE 的所有内容进行优化,并且您始终可以将一些关键代码放入纯 Java。最近有一些实验允许使用静态方法解析来运行部分 Groovy 代码,再加上调用动态支持,应该会提供巨大的性能提升。

其他要在 Java 中查看的还有 Spring Roo 和 AribaWeb。

基于附加资格的更新

可扩展性、生产力、文档和体面的资源消耗

  • 可扩展性——你得到了经过验证的 Java / Spring / Hibernate 堆栈,虽然我不能说 Grails 本身提供了很多东西。
  • 生产力——这是使用 Grails 的主要原因。您确实有性能开销,但是当开发时间/生产力更重要时,您会使用 Grails。
  • 文档 - grails 文档非常棒,仅在 Grails 上就至少有三本好书。社区蓬勃发展,非常有帮助。
  • 资源消耗——这是一种权衡。Grails(部分是因为底层的 java 堆栈)是资源密集型的。如果我正在构建类似 Google 的东西,Grails 将不是我的选择。但是,在任何复杂的 Web 应用程序中,缓存解决方案都会做得很好,所以这里同样适用。
于 2009-12-01T11:22:56.067 回答
3

Stripes似乎非常轻量级,并且包含约定优于配置。

于 2009-12-01T11:11:07.823 回答
2

使用过支柱、检票口、导轨和 Tapestry,我建议您查看Tapestry 5

它支持

  • 在容器类重新加载中(因此每次进行更改时都不必重新启动 webapp)
  • 快速的开发时间和提高的生产力 - 它使用基于组件的模型,带有声明性连接
  • 最小的配置,无论如何,这主要是在代码中,约定优于配置 - 等等。
  • 没有要扩展的基类
  • 用于模板文件的表达式语言
  • 良好的ajax支持
  • 出色的调试支持,客户端和服务器端
  • 良好的数据访问集成
  • 活跃的社区
  • 从头开始编写,并考虑到性能。例如页面池(以最小化资源使用),页面压缩,空白消除,所有动态代码都编译为本机。
  • 良好的 bean 和表单支持 - 使常见任务变得简单。一个可排序的数据库支持的 drid 可以只用一行模板代码和一个最小的骨架服务器后端进行编码。

唯一的缺点是文档很好,但有点简洁,尽管用户组/邮件列表非常活跃,大多数问题都得到了很好的回答。

(另外,请务必只查看 T5 - 而不是 T4、3、2、1 ......因为这些与当前版本非常不同)

更多关于为什么在这里

于 2009-12-01T11:13:11.213 回答
2

考虑尝试Lift Framework。这真的很棒。

于 2009-12-01T12:59:41.497 回答
2

每当您考虑应用程序堆栈(语言、框架等)时,您还需要考虑您要解决的问题以及您拥有什么样的编程技能。我发现,与更初级的程序员相比,更有经验的 Java 程序员在使用 Groovy 和 Grails 堆栈方面效率很高。

您提到以下关注领域:

  • 可扩展性:具体指什么?(页面浏览量/秒,# 事务/秒等...)一般来说,Groovy 和 Grails 在渲染页面时会扩展,但是与任何使用 ORM 的应用程序堆栈一样(在 Grails 的情况下,您有 GORM)需要考虑一些开销。
  • 生产力:这里的主要优势之一 - 快速原型设计,快速开发对于 Groovy 和 Grails 来说是轻而易举的事,尽管它有助于让使用 Java 或 Ruby 开发的员工了解 Grails 框架在“幕后”实际上在做什么”。有大量的 UI 插件可以帮助快速创建类似 web 2.0 的页面。
  • 文档:为 Groovy & Grails 编写的质量参考书越来越多。在过去的两年中,两者都非常成熟。当遇到错误/问题时,关于 Grails 框架的大部分内部工作,事情肯定没有很好的记录(当遇到错误时,框架的大部分输出是模糊的,或者充其量是不存在的)。如果您愿意卷起袖子并足智多谋地了解内部工作原理,那么您不会对这个堆栈感到失望。同样,有经验的程序员会发现这是第二天性,而初级程序员有时可能会沮丧地举手。
  • 资源消耗:存在开销,但是对于今天发现的大多数硬件(本地或云中),我不会太担心给定应用程序实例的物理资源消耗。

希望这可以帮助。

于 2009-12-03T00:43:25.357 回答
1

我不知道 Play Framework,但为了回答第二个问题,我们正在使用 Google 的Webtoolkit做一些项目。可能值得一试。
祝你好运!

于 2009-12-01T10:48:14.890 回答
1

JRoR怎么样

于 2009-12-01T10:49:03.367 回答
1

我自己没试过,但我的大学喜欢使用条纹

有一本书和一切。

于 2009-12-01T11:09:27.687 回答
1

Spring Roo声称是一个解决方案。

于 2009-12-01T12:45:30.753 回答
1

我用 grails 完成了一个项目,我发现它对于某些任务来说非常快,但它在幕后做了很多“魔法”,这使得调试时变得困难。

我还发现自己一遍又一遍地阅读文档,因为我觉得它不自然。一个简单的例子是控制器,其中动作被定义为字段(我很自然地将动作视为一种方法......)。我可以说一些关于 GORM 的事情,你需要知道一些特殊的词,当放在静态字段中时会产生一些魔法,比如使字段瞬态......没有注释,没有自动完成......只有手册。

至于玩!我发现它的开发非常简单和快速,易于学习和记忆。社区似乎比 Grail 的小,但它更活跃,回答也更快。唯一的缺点是它不依赖于 servlet 的 api,因此一些 3rd 方过滤器或其他东西很难集成,但并非不可能。重要的是要注意,您可以在任何传统的 Web 服务器包中部署 Play 应用程序,并将其作为战争。

在我看来,Grails 很棒,但你需要有很多使用它的经验才能提高效率,否则你会在手册上浪费很多时间。因此,如果这不是您的情况,我应该推荐 Play!特别是如果您不熟悉 Groovy

于 2011-04-02T23:30:18.390 回答
0

我不知道 Play Framework,但是Spring MVCStruts一起将Hibernate提供类似的功能。

还有许多其他选项可用。基本上你需要一个 MVC 框架(Spring MVC、Struts、Wicket)和一个 ORM 工具(Hibernate、iBatis)。当然,您需要自己集成所需的组件,但这已经完成了很多次,您将能够找到大量信息。

于 2009-12-01T10:48:56.183 回答
0

我不确定 Spring MVC 和 Hibernate 是否提供与 Ruby on Rails 提供的相同的易用性(实际上,我确信它要复杂得多......)。我认为 Play Framework 更像 Ruby on Rails,但我自己并没有使用它,只是观看了截屏视频并阅读了一些关于它的文档,所以如果你想拥有与使用 RoR 开发类似的体验,我认为你可以最好尝试使用 Play 而不是 Spring MVC with Hibernate 之类的东西。后者的优点是它非常强大并且能够适应例如现有的数据模型(根据我对 RoR 的了解,这在 RoR 中并不是很简单)。您可以考虑的另一个框架是 Groovy on Grails。虽然它不使用 Java(它使用 Groovy),但它非常类似于 RoR。它在引擎盖下使用 Spring 和 Hibernate(如果我 m 正确)并且 Groovy 的优点是您没有 Java 的严格静态类型。Ruby on Rails 和 Django 极大地受益于实现它的语言的动态特性,而 Java 由于其静态类型而错过了这一特性。

编辑:啊,你已经在你的问题中提到了 Grails ......

于 2009-12-01T10:56:17.770 回答
0

如果 grails 是一个选项(它实际上不是 java,而是一个 groovy 框架),那么基于 Scala 的Lift框架也是一个选项。

于 2009-12-01T11:02:53.173 回答
0

另一种选择是RIFE,它试图在仍然使用 Java 的同时拥有 RoR 的最小配置。在您的列表中,只有 Play Framework 具有该功能,其他都在 JVM 上,但不是 Java(如果这对您很重要的话)。

于 2009-12-01T11:10:37.980 回答
0

VRaptor呢?- 它使用 Spring 作为 DI 容器和类似于 Rails Action-Pack 的 Controller/View 引擎。

于 2009-12-01T11:12:34.247 回答
0

AribaWeb 还支持 Groovy。在http://aribaweb.org/上查看我们的其他功能,并了解我们提高 Web 开发效率的方法。

于 2009-12-02T18:47:28.060 回答
0

我们广泛使用 Stripes 框架,它的效果非常好。它真的很轻巧,它可以引导您对应用程序进行简洁的设计。它基本上只是向您隐藏了开发中无聊的部分,因此您可以专注于有趣的东西(一个这样的例子是索引属性)。

于 2010-03-08T08:29:04.203 回答
0

我一直在使用http://www.ninjaframework.org/进行微服务,它非常接近大多数 mvc 范例,如果你使用 rails、asp.net mvc 或 nancyfx,你很高兴。它非常接近这一理念,并且非常棒且易于测试。唯一的缺点是没有太多文档,但它非常接近 mvc 模式。它在框架中没有使用任何专有的东西,因此它是一个纯 Java 的解决方案。所以这弥补了文档的不足。

于 2018-01-12T19:34:11.113 回答