我们在Ember 1.7之上有一个非常大的应用程序。代码的很大一部分是遗留的,我们想重构/重新构建以摆脱。目标是使用最新版本的Ember(此时为2.9),利用ember引擎,以便稍后我们可以将应用程序的一部分移植到其他应用程序(如果需要)。这次我们对新功能没有太多要求,我们有6-8周的时间来投资技术更新。此外,在此期间,我们可能还需要向现有应用添加一些功能。我们的开发人员可能会在几周内被其他一些小项目工作。我们认为在Ember 2.x上是至关重要的。 2017年,我们可能没有时间进行迁移。目前我们有两种选择:
第一种方法风险更大,因为同时重构和迁移,事情可能会失控。但如果情况顺利,可以在更短的时间内完成。
后一种方法更安全。如果我们最后耗尽时间,我们仍然有更好的代码库。每当我们有时间,我们都可以回来进行迁移。但是,由于我们在迁移到ember 2.x时需要再做一次重构,因此需要更长的时间。而且我们可能永远没有时间迁移并永远陷入Ember 1.7。
我们正在尝试寻找第三种方法,即重构并将较小的应用程序块迁移到ember引擎或较小的ember应用程序。并将这些小型引擎/应用程序注入现有的大型遗留应用程序。但是,我找不到任何提到我们可以在Ember 1.x app中使用Ember 2.x的地方。
任何想法,建议,提示暗示我们可以达到我们的目标将非常感激。还有一件事,现有的应用程序使用RequireJS。
答案 0 :(得分:2)
实际上我认为你应该考虑两次迁移:
ember 2.9
,ember-cli
我认为最重要的问题是,是否可以在一个简短的步骤中跳转到ember 1.13
。这在很大程度上取决于您对私有API的使用。如果你可以在几个小时内跳到ember 1.13
那应该是你的第一步。
如果您的1.13
应用没有弃用,实际上您可以跳转到2.x
。所以这里的弃用数量将帮助您评估所需的工作量。
现在让我们谈谈跳转到ember-cli
。这可能比跳转到ember 2.9
要困难得多,因为你必须触摸每一个文件!在1.7
或1.13
上尽快完成此操作可能是个好主意。但是,如果这是一个好主意取决于你和你的队友的知识。如果您在ember-cli
阶段对1.x
有充分的了解,可以尝试一下。如果你没有这个可能很难获得这些知识,因为这个互联网不会冻结。从那时起,很多事情都发生了变化。
如果您可以使用1.13
在ember-cli
上获取应用,那么重构和摆脱所有弃用都是一个好点。不要过度重构你的代码。如果您可以跳转到2.9
,请稍后再进行重构。
如果您无法进行这些多步骤升级,我会推荐您的选项1.有ember-islands之类的内容,但我怀疑您会节省多少时间。
可能我会尝试在2.9
上重建应用程序,尽可能少的重构和尽可能多的代码重用。后来开始重构引擎。