2016-11-09 74 views
1

我们在Ember 1.7的顶部创建了一个相当大的应用程序。有相当一部分代码是遗留的,我们希望重构/重新架构来摆脱。我们的目标是使用最新版本的Ember(目前为2.9),利用余烬引擎,以便稍后我们可以将部分应用程序移植到其他应用程序(如果需要的话)。这次我们对新功能没有太多要求,我们有6-8周的时间来投资技术更新。同样在此期间,我们可能需要为现有应用添加一些功能。我们的开发人员可能会被拉到几周的时间内处理其他一些小项目。我们认为在Ember 2.x上是至关重要的。在2017年,我们可能没有时间进行迁移。我们目前有2个选项:将Ember 1.7迁移到Ember 2.9

  1. 潜入我们的头下来重建应用与最新的烬,这意味着在进行迁移的同时进行重构。如果有新功能,我们将添加到旧应用程序并稍后迁移。
  2. 首先重构Ember 1.7版本的重新架构,摆脱我们不想要的遗留代码,并在重构完成后迁移。如果我们需要为应用程序添加更多功能,我们可以在重构过程中添加。当重构完成后,我们将冻结来自新功能的应用程序。

第一种方法更危险,同时由于重构和迁移,事情可能会失控。但如果事情顺利,可以在更短的时间内完成。

后面的方法更安全。如果我们最后耗尽时间,我们仍然有更好的代码库。而且每当我们有时间的时候,我们都可以回来做移民。但是这需要更长的时间,因为我们需要在迁移到ember 2.x时再做一次重构。我们可能永远没有时间迁移,并永远陷入Ember 1.7的困境。

我们正在尝试寻找第三种方法,重构并将更小的应用程序块移植到ember引擎或更小的ember应用程序。并将这些小型引擎/应用程序注入现有的大型传统应用程序。但是,我找不到任何提及我们可以在Ember 1.x应用程序中使用Ember 2.x的地方。

任何想法,建议,提示暗示,我们可以达到我们的目标将非常感激。还有一件事是,使用RequireJS的现有应用程序。

回答

2

其实我觉得你应该想想两个迁移:

  • 迁移到ember 2.9
  • 并迁移到ember-cli

我认为最重要的问题是,如果它也许可以在短时间内跳到ember 1.13。这非常依赖于您对私有API的使用。如果您可以在几小时内跳到ember 1.13,那应该是您的第一步。

如果你有一个没有弃用的1.13应用,你实际上可以跳到2.x。因此,这里的弃用次数将帮助您评估所需的工作量。


现在我们来谈谈跳转到ember-cli。这可能会很难跳到ember 2.9,因为你必须触摸每一个文件!在1.71.13上尽快完成此操作可能是个好主意。但是,如果这是一个好主意,取决于你和你的队友的知识。如果您在1.x阶段对ember-cli有足够的了解,您可以尝试。如果你没有这个知识,可能很难获得这个知识,因为这个互联网并没有被冻结。自那以后,很多事情都发生了变化。


如果你能得到你的应用程序上1.13ember-cli它是重构一个很好的点,摆脱所有弃用的。不要过度重构你的代码。如果你可以跳到2.9做到这一点,然后做重构。


如果这些多步升级是不可能的你,我会建议你选择1,有喜欢的东西ember-islands,但是我怀疑你将节省大量的时间与。

也许我会尝试重建应用程序2.9尽可能少的重构和尽可能多的代码重用。稍后开始重构引擎。