我一直在研究诸如 Rails、Grails 等 Web 框架。我习惯于在 Spring Framework 中使用 Hibernate 来做应用程序……我想要一些更有效率的东西。
我意识到的一件事是,虽然 Grails 中的某些东西很性感,但它存在一些严重的问题。Grails 的控制器:
1)执行得非常好。它们似乎无法在运行时从超类扩展。我尝试这样做来添加基本操作和辅助方法,这似乎导致 grails 爆炸。
2)基于过时的请求参数模型(而不是表单支持对象,后者要好得多)。
3)很难测试。命令对象的处理方式完全不同......实际上编写测试比编写控制器代码要困难得多。
4) 命令对象的操作完全不同。它们是预先验证和绑定的,这与基本参数模型相比会导致很多不一致。
5) 命令对象不可重用,重用域类中的大部分内容(如约束和字段)在后面很痛苦。这在基本的 Spring 中是很简单的。为什么在 Grails 中做这件事不简单?
6)生成的脚手架是纯粹的废话。它没有概括插入和更新......它实际上在两个视图中复制/粘贴一堆代码:create.gsp 和 edit.gsp。这些观点本身就是一大堆小狗要做的事情。它使用低级参数而不是对象这一事实进一步加剧了这种情况。
集成测试比 Spring 集成测试慢 30 倍。真恶心。
一些模拟测试很难编写,并且在部署时不能保证工作,我认为它不鼓励快速的 tdd 测试周期。
大多数事情在运行时似乎都搞砸了,比如添加标签库或其他任何东西。服务器重启问题根本没有解决。
我开始认为使用 Spring/Hibernate/Java 是唯一的方法。虽然启动时成本相当高,但我知道它最终会平稳下来。
很糟糕,我不能使用像 Scala 这样的语言......因为习惯上,它与 Hibernate 是如此不兼容。
这个应用程序也不是数据库上的普通 UI。它有一些,但它不会是一个懒散的。我现在非常害怕 Grails,因为它在 Controller 层中是多么的垃圾。
关于我能做什么的建议?