【问题标题】:grails backward compatibilitygrails 向后兼容性
【发布时间】:2014-05-28 07:24:33
【问题描述】:

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

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

最重要的是,我现在正在开发的项目能与未来更高版本的 grails 兼容的保证是什么?

【问题讨论】:

    标签: grails web compatibility backwards-compatibility


    【解决方案1】:

    Joshua Moore 的回答是正确的,但我并不认为它像他那样被动。

    grails 开发团队有足够的勇气做出打破过去的改变。我认为这是一个很棒的功能 - Grails 不会骑死马。

    对我来说,大多数变化似乎并不太激进。大多数时候,我会跳过 2-3 个版本,然后在不到一天的时间内将我的应用程序升级到当前的稳定版本。这也有助于我了解新功能。

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

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

    希望有帮助

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

    因此,如果您想学习 Grails(以及使用 Grails 的所有这些网络概念),我建议您开始阅读 Guide,它将告诉您 Grails 的工作原理。如果您需要更多示例,我可以推荐 Apress 发布的“The Definitive Guide to Grails 2”。它包含与指南基本相同的内容,但它通过引导您完成构建示例应用程序的过程来实现。

    当谈到您在网上找到的示例时...一旦您更好地了解框架,您可能就会知道如何处理示例 - 但没有灵丹妙药...

    【讨论】:

    • 感谢您的回复 ralf,您说“我跳过 2-3 个版本,然后在不到一天的时间内将我的应用程序升级到当前的稳定版本。”我知道一天升级应用程序的时间是可以接受的,但是有一个问题,我是整个网络概念的新手,我主要完成后端编程,所以像骨干或角度之类的东西......对我来说是新的我需要阅读它们,有时需要下载它们的示例代码,我认为只是为了学习其他东西而没有时间效率。
    • 再次感谢 :) 我是一名 Java 程序员,因此我选择 grails 的原因与您所说的相同,但它的更新确实让我抓狂。我会读你推荐的书。
    • 不要太担心更新。如果您现在从 grails 开始,请从 2.3.9 版本开始并坚持下去。正如 Joshua 已经说过的,即使是 1.3.x 分支仍然很棒......
    【解决方案2】:

    不保证您的项目将与 Grails 的未来版本兼容。事实上,根据我自己的经验,他们不会。随着 Grails 成熟到更高版本,事情经常会发生变化,有时也会发生根本性的变化。

    向后兼容性也是如此。

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多