26

我正计划编写一个可供大量用户使用的简单 Web 应用程序(就像一个简单的书签应用程序一样复杂),并且我正在尝试决定使用哪种框架/语言。

总的来说,我对 Spring/Hibernate 和 Java 非常有经验,但对 Grails 和 RoR(以及 Spring ROO)都是新手。我考虑 RoR 的唯一原因是因为 Java 托管比 RoR 托管贵得多(几乎所有托管供应商都支持每月 5 美元)。

假设价格不是问题,您会向 Java 开发人员(知道如何配置 Spring/Hibernate 等)推荐上面提到的哪种框架/语言?恐怕通过使用 RoR,我将无法轻松支持同时使用该网站的许多用户。

谢谢

4

6 回答 6

45

首先你可以看看这些相关的问题:

Rails 还是 Grails?

学习 Ruby on Rails 对 Grails 有好处吗?

https://stackoverflow.com/questions/1283935/what-technology-asp-php-joomla-rails-grails-for-a-website-from-scratch

Grails值得吗?

Grails(现在)值得吗?

现在,我将根据您所传达的要求以及我从网上收集到的信息以及我自己的经验来尝试回答您。

Ruby on Rails

我不建议您从 RoR 开始,因为您是 Java 开发人员,您将必须学习一门新语言 (Ruby) 和新环境 (Rails)。托管问题不是真正的问题。您可以花 10 美元 (www.enjoyvps.com) 获得非常适合小型 grails 应用程序的 VPS 托管计划。如果您的应用程序需要更多内存,您可能需要再添加 10 块钱。

如果您的托管确实是关键因素,请使用 Python/Django 或 PHP/Kohanna(一个非常好的 MVC 框架)。否则,根据您的背景,Grails 比 Rails 更适合您。

圣杯

几个月前,我遇到了和你一样的困境,我决定用自己的方式使用 Grails。为什么?

因为很酷!!我的意思是,社区非常有帮助且充满活力,与 Groovy 一起开发是一种乐趣(请注意:此后,您很有可能会厌恶 Java)。此外,它是一个基于非常成熟的技术(Hibernate、Spring、Java)的最先进的框架,因此,它可以显着提高您作为开发人员的市场价值。Grails是我的最爱

春天的房间

Roo 是 Java 的 Grails。因此,如果您不想学习 Groovy 并且如果您需要纯 Java 应用程序(它总是比基于 Groovy 的应用程序运行得更快),那就去吧。社区比 Grails 小,但该项目得到了在社区中非常活跃的 SpringSource 的支持。我认为,如果您想尽可能快地前进,这就是您的解决方案。

弹簧应用

仅当您不喜欢 Spring Roo 集成技术(Hibernate、JSP、Maven...)并且绝对想要 Java 时,才应该选择此选项。否则,当您可以在几分钟内以最佳实践方式(使用 Rails、Roo 或 Grails)构建复杂的企业应用程序时,就没有兴趣(除了教育目的)。

上面的每个选项都将为您想要构建的应用程序提供足够的性能。很大程度上取决于网站应用程序的最佳实践,例如良好的架构设计、缓存策略的正确使用和请求优化......

我的底线

如果您有时间花在学习新概念(Groovy、RAD...)上,请使用 Grails。如果没有,请与 Roo 一起去。忘记 Spring App 和 Rails。如果托管是问题,那么请使用 Python/Django。您可以在 GAE 上进行部署,它具有自由可扩展性和高性能,并且您将处理与 Rails 或 Grails 相同的概念。

于 2010-05-16T01:35:40.367 回答
43

我不明白对运行时性能的痴迷。鉴于您的场景,您的主要关注点应该是您的表现,例如您使用所选技术完成工作的能力。

在给定的时间段内,使用 Groovy 比使用 Java 完成的工作更多。通常,一行 Groovy 代码相当于 10 行 Java 代码等

字节码执行时间很少会成为您的性能问题,通常是...

  • 糟糕的算法实现或设计。
  • 糟糕的数据库设计和/或查询
  • 需要很长时间才能完成工作,然后因此而出现各种商业关系问题。

对于 Web 应用程序,您通常不会执行大量长时间运行的 CPU 密集型操作。您的大部分请求/响应时间都花在了网络(互联网路由等)和数据库中(执行查询)。

选择一种技术可以减轻您的负担,并使您免于编写大量样板代码,这样您就可以专注于设计和实现好的算法、数据库和查询等

我个人选择 Grails。

于 2010-05-18T23:55:09.540 回答
8

在我的公司,我选择了 Roo 而不是 Grails 和 Rails。运行时性能、易于调试、良好的 Eclipse 集成(毕竟它是普通的旧 Java),运行时不会发生“黑魔法”。事实上,运行 Roo 应用程序不需要 Roo 运行时库,只需要像 Hibernate 和 AspectJ 这样的库依赖项。您可以查看生成的代码,以便确切了解发生了什么。对我来说还有一个大问题是,Google 选择 Roo 作为未来创建 GWT 应用程序的首选工具,并且他们支持它。到目前为止,我对 Roo 印象非常深刻,我认为它会在不久的将来成为首选工具。

于 2010-09-20T07:50:00.390 回答
5

RoR 的性能问题更多是由 5 美元的托管计划引起的,而不是语言和框架的选择。考虑将Heroku用于您的托管,因为您可以从廉价/免费开始,然后根据需要扩大规模。

然而,对于一个简单的书签应用程序,Rails 可能是矫枉过正。在权衡您的选择时,还可以查看Sinatra框架。

于 2010-05-15T18:01:06.740 回答
2

你看过盖利克吗?http://gaelyk.appspot.com/

这是一个用于 Google App Engine 的轻量级 Groovy 框架

于 2010-05-15T21:52:00.203 回答
1

我知道这篇文章有点老了。现在是 2012 年,Spring Roo 3 个月前刚刚发布了 1.2.2 版本。

我是一名 Java 开发人员,刚刚开始了一个雄心勃勃的项目,我将启动一个 Web 应用程序以供广泛采用。我正在经历 Spring Roo 并且正在弄脏我的手。我的第一印象很好,但是当我在互联网上读到它是一个很好的快速原型设计框架并且只用于开发 CRUD 操作等时,我觉得使用它有点消极。

但我个人认为 Spring Roo (SP) 让我的项目从已经实施的最佳实践开始,并选择创建的文件,我可以将其用作自定义使用的模板。显然,我不害怕编码。我们总是要自己编写代码,我不想要任何“魔法”。

我还尝试环顾 RoR 场景,很容易被所涉及的学习曲线吓倒。

我在 Spring Roo 社区中没有看到太大的吸引力。有什么具体原因吗?还有没有更好的选择?我对最终确定一个未来既健壮又可扩展的框架的决定感到有些困惑。我不想成为 Twitter 现在的位置,2 年的 RoR 代码让他们重新考虑他们对 RoR 的选择。Spring Roo 对我来说是最好的选择吗?

于 2012-08-23T20:37:16.053 回答