圣杯值得吗?[已关闭]

2022-08-31 11:36:10

这是半咆哮,半问题。

值得使用圣杯吗?我正在尝试开发一个相对简单的数据库驱动的Web应用程序。我的专长是Java,所以Grails自然是一个不错的选择。起初我想使用Spring,JPA和Hibernate,但我以前使用过它们,并且遇到了各种繁琐的配置和编码工作。Grails宣称自己可以解决这个问题。

我对Grails最大的挫败感是所有不起作用的小事情。我的意思是,它并不像人们直觉上认为的那样有效。边缘非常粗糙。我经常遇到问题。有时是我缺乏对Grails的理解 - 其他时候我发现了合法的Grails错误。

一个主要问题是缺乏良好的Eclipse集成。有一个Groovy和Grails插件,但它除了语法突出显示之外没有做太多事情。从Java调用Groovy,反之亦然,配置起来非常痛苦。没有良好的IDE支持是一个很大的麻烦。

发生的事情是我坐下来尝试开发我的Web应用程序。在一天结束时,我意识到我花了大约85%的时间调试与Grails相关的问题。如果它不是 Eclipse 问题,那么它就是急于加载在视图中获取一对多关系奇怪的空文件 bug 行为一个奇怪的属性/getter bug——它只是一直持续下去。这只是我今天遇到的问题的一个例子。我最后一次与Grails的坐下来产生了一大堆不同的问题。

我有时想知道这是否值得。我很好奇其他人是否经历过这种情况。是否有人真的使用Grails来有效地开发Web应用程序?是否有其他我应该考虑的快速Web开发的框架?


答案 1

我们有一个由12人组成的团队,他们都是经验丰富的高级Java开发人员,他们从0.6B开始学习Grails,我们都在从事基于Grails的项目。我不会心甘情愿地回到Java,我们都为如何用Grails应用程序快速到达某个地方而感到欣慰。

这是一场斗争,这并不容易,而且有/是沮丧的。

尽管如此,鉴于我们正在进行的努力,我们很快就交付了一些东西。有错误,许多都有解决方法。

我听说过几个擅长Java的开发人员试图深入研究Grails项目的深入,复杂的咒语的例子。我们避开了所有Java,选择了纯粹的Grails和Groovy。我们确保我们从简单的开始,尽可能管理地建立复杂性。我们不敢潜入最深处,希望我们的Java知识足以承载我们。

我们最终创造了一些巨大而复杂的东西,它工作得非常好,而且比编写纯Java /Spring/Hibernate版本要快得多。而且没有像样的IDE支持,并且在错误方面的情况比今天糟糕得多。

至于Eclipse支持,唯一真正用于Grails/Groovy的IDE是Intellij - Eclipse支持远远落后,可悲的是:我是Eclipse的爱好者,我远不是Intellij的转换者 - Grails / Groovy支持吹走了其他一切。

是的,与春天相比,圣杯是不成熟的。或休眠。我敢打赌,在他们存在的头1.5年里,他们同样充满了问题。

既然如此,你就有责任,要注意将复杂性保持在绝对最低限度,仔细地首先测试(在我们看来),并逐渐小心地建立复杂性。

一旦你在堆栈中涉及Spring/Hibernate,Java就没有快速的代码解决方案。Grails所体现的复杂性反映了Spring's / Hibernate自身的复杂性。如果你觉得你的时间最好花在纯Java上,我不会反驳。我仍然有我的WTF,但现在陡峭的学习曲线已经过去了,我想我会再坚持一些Grails。


答案 2

我非常喜欢编写圣杯应用程序,原因有两个:

  • 我不必使用Java
  • 我可以使用Java

我认为在熟悉了圣杯之后,一个人可以非常快速,优雅地完成他的事情。

对于优点来说,这么多。缺点是性能,它在两个方面对我印象深刻:部署和测试驱动开发。

我还没有设法在单个(租用的)服务器上运行超过3个grails应用程序,因为我很快就达到了内存和性能限制。包含的框架实在太多了。

另外,圣杯的测试者不值得这个名字。当我运行单元测试时,它们应该在瞬间完成,而不是在10到20秒内完成。所以我发现自己一直在用普通的java编写业务逻辑,因为我可以更快地测试它。但我想这可以通过更好地集成到IDE(eclipse)中来解决。


推荐