Beginning to migrate a XXL ember app from Rails to ember-cli


#1

I’m beginning to lead the transition of a very (very, very) large Ember app from Rails to Ember CLI. We’ve been hindered by a few non-standard decisions we made at the very beginning (CoffeeScript, Emblem.js for templates), but at this point I’ve got a rough game plan:

  1. Move dependencies from Ruby gems to Bower (mostly done)
  2. Refactor files to match pod-structure
  3. Migrate from Sprockets (Rails asset pipeline) to Broccoli builds
  4. Migrate to ember-cli-rails
  5. Ditch Rails

I have exactly one requirement: Work on new features can not stop. We simply don’t have the luxury of pushing pause on development so we can refactor. Development also happens at such a rapid pace that simply having a long-living branch is not an option. The way this will happen is that I will be able to free up a few hours every sprint to move us forward in the transition plan.

Three questions have arisen so far:

Does that plan sound reasonable?

Am I missing something? Is that the right way to go?

Is it possible to organize pods by service?

We’re using a micro-services architecture, and one of the things our team got excited about when looking at pods was potentially organizing by service as well. Is there any support for this? Or would adding to the resolver be difficult? We’re looking at organizing along the lines of pods/Service/Resource.

I’m actually a bit sketchy on the relationship between the resolver and the file structure when it doesn’t involve compiled templates.

Is it possible to move to ES6 modules incrementally?

I’m a little sketchy on the broccoli build system, but would it be possible to move to ES6 style modules one class at a time? It seems this is a question that’s been asked countless times before, but usually the answer revolves around people discovering that it wasn’t that hard to change all at once. In our case, due to the size of the app and the teams that are involved, migrating all at once may not be feasible.

Thanks all. I’m not usually the type to post questions–preferring countless hours of late night googling. But this particular problem is so enormous and will probably require committing hundreds of man-hours. So in order to not have a crippling anxiety attack every time I think about it, I’m seeking the wisdom of the community.