We have a quite large app building on top of Ember 1.7. There are quite a significant portion of the code is legacy and we want to refactor/re-architecture to get rid of. The goal is to be on the latest version of Ember (2.9 at this moment), leverage ember engine so later we can port portion of the app to other apps if required. This time is we don’t have a lot of request for new features and we have 6-8 weeks to invest in technology updates. Also during this time, we may be required to add some features to the existing app. Our developer(s) may get pulled to work on some other small projects for couple of weeks. We consider being on Ember 2.x is crucial. In 2017, we may not have the time to do the migration. We have 2 options at this moment:
- Dive with our head down rebuild the app with the latest ember which mean do the refactoring at the same time with migrating. If there are new features, we will add to the old app and migrate later.
- Refactor first, re-architecture on the 1.7 version of Ember, get rid of the legacy code we don’t want and migrate when we’re done with refactoring. If we need to add more features to the app, we can add during the refactoring process. When done with refactoring, we will freeze the app from new features.
The first approach is more risky, thing can go out of control because of refactoring and migration at the same time. But if things go well, it could be done in shorter time.
The later approach is much safer. If we run out of time at the end, we still have a better code base. And whenever we have time we can come back to do the migration. But it would takes longer since we will need to do another short of refactor when migrate to ember 2.x. And we may never have time for migration and forever get stuck with Ember 1.7.
We are trying to look for a third approach which is refactoring and migrating a smaller chunks of the app to ember engines or smaller ember apps. And inject these small engines/apps to the existing large legacy app. However, I could not find anywhere which mention we can use Ember 2.x inside an Ember 1.x app.
Any idea, suggestion, tips hint on that we can reach to our goals will be really appreciated. One more thing, the existing app using RequireJS.
Thank in advance. Vinh