Java 应用程序迁移过程中需要牢记的事项:ColdFusion到Spring

Java 应用程序迁移过程中需要牢记的事项:ColdFusion到Spring,java,spring,coldfusion,migration,Java,Spring,Coldfusion,Migration,这个问题是关于迁移项目的。目前遗留应用程序处于ColdFusion中,我们希望将其迁移到Spring框架 因此,我的主要问题是: 在考虑迁移项目时,需要记住哪些事项 在考虑从ColdFusion到Spring框架的迁移时,我需要记住哪些细节 ColdFusion如何与Spring框架相结合 在开始从ColdFusion到Spring的迁移项目之前,您建议我熟悉哪些资源 我知道有些人可能会认为这是一个非常开放的问题,但这是我的第一个迁移项目,我从来没有任何迁移项目的经验,在这里寻找一些有用的指导

这个问题是关于迁移项目的。目前遗留应用程序处于ColdFusion中,我们希望将其迁移到Spring框架

因此,我的主要问题是:

  • 在考虑迁移项目时,需要记住哪些事项
  • 在考虑从ColdFusion到Spring框架的迁移时,我需要记住哪些细节
  • ColdFusion如何与Spring框架相结合
  • 在开始从ColdFusion到Spring的迁移项目之前,您建议我熟悉哪些资源

  • 我知道有些人可能会认为这是一个非常开放的问题,但这是我的第一个迁移项目,我从来没有任何迁移项目的经验,在这里寻找一些有用的指导

    迁移项目充满了危险

    第一个危险是,“这既昂贵又痛苦,让我们重建吧。” 这一切都是从零开始的,并实现任何新的想法或功能 任何营销人员/经理/程序员都使用结构化方法 这条路通向末日,因为

    1) 这是一个开放式的工作量,而且

    2) 实际上,没有人知道旧系统的功能(最近看过规范吗?),因此,在新系统上线后,您最终会重新发现旧系统的功能,这会给组织使用新软件完成工作的能力带来极大的痛苦和损害。通常情况下,新的系统永远赶不上旧的系统,因此重写的过程很难看

    进行这种迁移的正确方法是:坚持不使用功能,而是转换现有系统。没有新的优点、功能和方法

    这种坚持有其自身的问题:组织经常必须做出一些改变 在迁移发生的窗口期间,出于生存原因

    要处理这个问题,您确实需要一个自动迁移工具,这样“无功能更改”规则只在实际转换期间适用,因此尽可能短。迁移工具的开发人员可以花一些时间来构建它并彻底测试转换工具;同时,组织可以通过其常用方法增强遗留系统。当迁移工具准备就绪时。。。。扣动扳机,转换代码,修补问题,并测试结果系统的有效性

    一旦系统迁移,那么你可以考虑激进的重组或重塑,知道基本的功能仍然是健全的。 无论您选择什么样的自动迁移工具,都需要注意它生成的代码在新环境中是可维护的。许多转换器转换为真正的简单的1对1转换,结果代码最终被用新的代码条进行传统的foo编码,或者在简单的COBOL到Java转换之后被可笑地称为“JOBOL”。转换工具必须非常熟悉如何映射语言结构。(您可能想阅读本文以便进行讨论)

    你最大的麻烦可能是“测试”。目前的系统有完整的功能测试,对吗?你没有任何功能测试吗?您将如何验证新系统是否正确实现了旧系统的功能

    这里的正确答案是根据遗留系统的输入输出行为构建遗留系统的测试,并将这些测试应用于遗留系统和迁移的系统。这是一项艰巨的工作,没有人愿意去做,更不用说付钱了。这是迁移失败的第二种方式

    发生的最后一件事是,管理层严重地资金不足,并且没有及时完成正确的工作。通常与开发团队的谈判如下:

    Mgr:  How long to do this?
    Team:  Two years...?
    Mgr:  BZZZT!  Wrong answer, try again...
    Team:  One year?
    Mgr:  BZZT! ..
    Team: (Gulping) 6 months?
    Mgr:  OK, get started.
    
    注意这里没有实际的工作讨论

    在6个月结束时,将开始相互指责。经理:“我问过你们,你们说6个月……”

    你的处境很艰难。仔细准备。坚持让人们真正列出所有问题,并做出可信的估计。如果这是你第一次做迁移,你没有很好的基础来做出这样的估计;如果这是该组织的第一次,它就没有依据来判断任何估计是否正确


    (充分披露:我有偏见。我已经构建自动迁移工具22年了。请查看。)

    很大程度上取决于您的CFML应用程序的现有结构。虽然有一个CFML框架与Spring的IoC部分非常匹配,但我怀疑您正在考虑从非结构化CFML应用程序迁移到SpringWeb,而不仅仅是IoC部分,您正在考虑从一种语言迁移到另一种语言:CFML到Java

    所以现实是:这不是一个迁移项目,而是一个彻底的重写

    我知道你说过“迁移是一项要求”(原文如此),但我认为你需要更多地解释是什么推动了这一点,这样人们就可以提供比“你疯了,不要这样做!”更好的答案——因为你提供的信息很少,没有人能够提供有用的答案

    至于这种迁移的机制,如果您有一个使用ColdSpring的结构良好的MVC CFML应用程序,那么您可以将模型一块一块地迁移到Java,并使用Spring的IoC而不是ColdSpring进行bean管理(您希望Spring成为ColdSpring的父bean工厂,以便CFML代码的其余部分仍然可以访问新迁移的bean)

    将所有模型(和数据访问层)迁移到Java/Spring后,您将处理所有.cfm视图页面到.jsp视图页面的转换,并将所有CFML控制器/侦听器(取决于正在使用的CFML框架)重写为Spring Web处理程序

    这很可能是一个庞大的项目——而且