应用程序迁移期间记住的事情:ColdFusion到Spring [英] Things to keep in mind during Application Migration: ColdFusion to Spring

查看:161
本文介绍了应用程序迁移期间记住的事情:ColdFusion到Spring的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题是关于迁移项目。目前,遗留应用程序在ColdFusion中,我们想将其迁移到Spring Framework。

This question is regarding migration project. Currently the legacy Application is in ColdFusion and we want to migrate it to Spring Framework.

所以我的主要问题是:



  1. 在考虑从ColdFusion迁移到Spring Framework时,我需要记住什么细节吗?



  1. What are the things to keep in mind while considering Migration Project ?
  2. Are there any specifics things that I need to keep in mind while considering migration from ColdFusion to Spring Framework ?
  3. How do ColdFusion stack up with Spring Framework ?
  4. What resources would you recommend to get myself familiar with before starting on Migration Project from ColdFusion to Spring ?

在ColdFusion中使用ColdFusion和Spring框架开始之前, >

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

I know some might think that this is very open ended question but this is my first Migration Project and I have never had any experience with Migration Project and what looking for some useful guidance over here.

推荐答案

迁移项目充满危险。

是,这是昂贵和痛苦。让重建
所有从头开始,并实现任何新的想法或功能
任何营销人员/经理/程序员使用结构化方法
和blah blah blah。 ..这个路径导致厄运,因为

The first danger is, "this is expensive and painful. Lets rebuild it all from scratch and implement any new idea or feature that any marketer/manager/programmer has using structured methodologies and blah blah blah..." This path leads to doom, because

1)它的开放工作量,

1) its an open-ended amount of work, and

2)没有人真正知道旧系统是做什么的(最近看到的规范),因此,你会最终重新发现旧系统在新系统上线后,在巨大的痛苦和损害组织的能力它的工作与新的软件。通常事实上,新系统从来不赶上旧的,所以重写死了一个丑陋的死亡。

2) nobody actually knows what the old system does (seen the spec recently?) and therefore you'll end up rediscovering what the old system after the new one goes live, at great pain and damage to the organizations' ability to do its job with the new software. Usually in fact the new system never catches up with the old one and so the rewrite dies an ugly death.

正确的方式做这样的迁移是:坚持离开单独的功能,并转换现有的系统。没有新的好东西,特色和方法。

The right way to do such a migration is: insist on leaving the functionality alone, and convert the existing system. No new goodies, features, methodologies.

这种坚持有自己的麻烦:组织经常必须在窗口期间为生存原因做一些改变

That insistence has its own troubles: the organization often has to make some changes for survival reasons during the window in which the migration is occurring.

为了处理这个问题,您真的需要一个自动迁移工具,以便无功能变更规则只适用于实际的转换,而且因此尽可能短。它确定迁移工具的开发人员需要一些时间来构建它,并彻底测试转换工具;同时,组织可以通过其常规方法来增强遗留系统。当迁移工具准备就绪...拉动触发器,转换代码,修补问题并测试结果系统的有效性。

To handle that, you really want an automated migration tool, so that the "no functionality changes" rule only applies during the actual conversion, and is thus as short as possible. Its ok for the developers of the migration tool to take some time to build it and thoroughly test the conversion tool; in the meantime, the organization can enhance the legacy system by its usual methods. When the migration tool is ready.... pull the trigger, convert the code, patch the problems and test the result system for effectiveness.

一旦系统迁移,那么你可以考虑进行彻底的重组或重塑,知道基本的功能仍然是健全的。

Once the system has been migrated, then you can consider radical restructuring or reshaping, knowing that the fundamental functionality is still sound.

无论你选择自动迁移工具,你需要小心,它生成的代码在新环境中是可维护的。许多转换器实现了真正的1对1转换,并且最终的代码最终被遗留在foo编码的新的酒吧,或者笑声称为JOBOL之后幼稚的COBOL到Java转换。转换工具必须复杂,如何映射语言结构。 (您可能希望阅读此SO关于 PL / 1至Java转换的讨论) a>)。

Whatever you choose for an automated migration tool, you need to be careful that the code it produces is maintainable in the new environment. Many converters to truly naive 1-to-1 conversions, and the resulting code ends up being legacy-foo-coded-in-new-bar, or what is laughingly called "JOBOL" after naive COBOL to Java conversions. The conversion tool must be sophisticated about how it maps the language constructs. (You might want to read this SO discussion of PL/1 To Java Conversion).

您最大的麻烦可能是测试。当前系统有完整的功能测试,对吧?呃,你不有任何功能测试吗?

Your biggest trouble is likely to be "testing". The current system has complete functional tests, right? Uh, you don't have any functional tests? How will you verify the new system implements what the old one did correctly?

这里的正确答案是 对旧系统的测试输入输出行为的条件,并将这些测试应用于遗留系统和迁移的系统。这是很多工作,没有人愿意这样做,更不用说付出代价了。这是迁移失败的第二种方式。

The right answer here is to construct tests of the legacy system in terms of its input-output behavior, and apply those tests to both the legacy system and the migrated one. This is a lot of work, and nobody wants to do it, let alone pay for it. This is the second way migrations fail.

发生的最后一件事是管理层负担不足,承担所需的工作。通常与开发团队的谈判是这样的:

The last thing that happens is that management woefully underfunds and undertimes the work required to do this right. Usually negotiations with the development team go like this:

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.

注意这里没有真正讨论的工作。

Notice how there's no actual discussion of the work here.

6个月后,手指指向将开始。经理:我问你们,你说了6个月...

At the end of 6 months, finger pointing will start. Manager: "I asked you guys, and you said 6 months..."

你很难过。小心准备。坚持人们真正列出所有的问题,并且他们产生可信的估计。如果你第一次做迁移,你没有良好的基础做出这样的估计;如果它是组织的第一次,它没有根据来判断是否任何估计是正确的。

You're in for a rough ride. Prepare carefully. Insist that people really list all the issues, and that they produce believable estimates. If its your first time doing a migration, you have no good basis to make such estimates; if its the organization's first time, it has no basis by which to judge if any estimate is right.

(完全公开:我有偏见,我建立迁移工具。请查看 B2迁移。)

(Full disclosure: I'm biased. I build migration tools. Check out B2 migration.)

这篇关于应用程序迁移期间记住的事情:ColdFusion到Spring的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆