grails向后兼容性

grails向后兼容性,grails,web,compatibility,backwards-compatibility,Grails,Web,Compatibility,Backwards Compatibility,我最近开始了解grails并开始使用它,我知道grails是一种很棒的语言,它对快速开发非常有帮助,但我不明白grails为什么没有很好的向后兼容性,我在我的项目中使用grails 2.3.8和grails 2.4,但互联网上的许多示例代码都是2.2或更低,而且,将它们转换为2.3.8或2.4并不能节省时间,因为从一个版本到另一个版本有很多更改。有些时候,尽管我做任何事情都是正确的,每件事情都必须像Grails2.1或2.2那样工作,但有些事情仍然存在 我错了吗?我跳过了一些使转换版本如此困难的

我最近开始了解grails并开始使用它,我知道grails是一种很棒的语言,它对快速开发非常有帮助,但我不明白grails为什么没有很好的向后兼容性,我在我的项目中使用grails 2.3.8和grails 2.4,但互联网上的许多示例代码都是2.2或更低,而且,将它们转换为2.3.8或2.4并不能节省时间,因为从一个版本到另一个版本有很多更改。有些时候,尽管我做任何事情都是正确的,每件事情都必须像Grails2.1或2.2那样工作,但有些事情仍然存在

我错了吗?我跳过了一些使转换版本如此困难的事情


最重要的是,我现在开发的项目有哪些保证可以与将来的更高版本的grails兼容?

没有任何保证可以保证您的项目与grails的未来版本兼容。事实上,根据我自己的经验,他们不会。随着Grails向更高版本的成熟,情况往往会发生变化,有时甚至会发生根本性的变化

向后兼容性也是如此

您所需要做的就是查看Grails文档的最新版本,以了解不同版本之间发生显著变化的频率。很多时候,这些更改需要对旧项目进行重大重构以升级它们。我仍然有几个大型项目在Grails的1.3.x分支上运行,因为我们没有足够的资源(时间)来完成和升级它们


通常,这个升级过程包括创建一个新的空项目,然后慢慢地将代码从旧项目移动到新项目中,更新代码以反映执行相同操作和测试的新方法。对于拥有100多个域类、1000多个GSP、50多个服务和数十万条测试线的项目来说,这并不容易。

约书亚·摩尔的答案是正确的,但我并不认为它像他那样简单

grails开发团队有足够的勇气做出突破过去的改变。我认为这是一个伟大的特点-格雷斯不骑死马。 对我来说,大多数变化似乎都不太激进。大多数时候,我跳过2-3版本,然后在不到一天的时间内将我的应用升级到当前的稳定版本。这也有助于我了解新功能

如果您不知道如何升级,最安全的方法是使用
grails-upgrade
命令。只需逐步增加您的版本号,进行升级并重新运行测试(是的,测试可以帮助您完成升级过程:-)。如果测试失败,请查看伟大的变更日志和文档中的“GrailsX.y中有什么新功能?”部分

通常,使用BeyondCompare之类的比较工具将旧的grails版本应用程序与新的空目标版本项目进行比较也很有帮助。通过这种方式,您可以轻松发现更改的配置

希望有帮助

更新:当您不熟悉“所有那些网络概念”时,您应该首先决定要使用的平台。如果是java生态系统,Grails是市场上最好的webframework:-)否则PHP、Rails、DJango等也可能是一个匹配

因此,如果您想学习Grails(以及Grails所有那些Webconcept),我建议您开始阅读,它将告诉您Grails是如何工作的。如果您需要更多的示例,我可以推荐Apress发布的“Grails2最终指南”。它涵盖的内容基本上与指南相同,但它是通过引导您完成构建示例应用程序的过程来实现的


说到你在网上找到的样品。。。一旦你对框架有了更深入的了解,你可能会知道如何处理这些示例-但没有银弹…

感谢你的回复ralf,你说“我跳过2-3版本,然后在不到一天的时间内将我的应用程序升级到当前的稳定版本。”我知道一天是可以接受的时间来升级应用程序,但有一个问题,我对整个网络的概念是新的,我主要做后端编程,所以像主干或角度和。。。对我来说是新的,我需要阅读它们,有时还需要下载它们的示例代码,我认为仅仅是为了学习其他一些东西并不能节省时间。再次感谢:)我是一名java程序员,因此我选择grails的原因与你所说的相同,但它的更新确实让我疯狂。我会读你建议的那本书。不要太担心更新。如果您现在从grails开始,那么从版本2.3.9开始并坚持使用它。正如Joshua已经说过的,即使是1.3.x分支仍然很棒。。。