2016-11-09 6 views
1

У нас есть довольно большое приложение на вершине Ember 1.7. Существует довольно значительная часть кода - это наследие, и мы хотим реорганизовать/переструктурировать, чтобы избавиться. Цель состоит в том, чтобы быть в последней версии Ember (2.9 в данный момент), использовать ember engine, так что позже мы можем портировать часть приложения в другие приложения, если это необходимо. На этот раз у нас нет большого спроса на новые функции, и у нас есть 6-8 недель, чтобы инвестировать в обновления технологий. Также в течение этого времени нам может потребоваться добавить некоторые функции в существующее приложение. Наши разработчики могут быть привлечены к работе над некоторыми другими небольшими проектами в течение нескольких недель. Мы считаем, что быть на Ember 2.x имеет решающее значение. В 2017 году у нас может не хватить времени на миграцию. У нас есть 2 варианта на данный момент:Migrate Ember 1.7 to Ember 2.9

  1. Погрузитесь с помощью нашей головы вниз, перестройте приложение с помощью последнего ember, что означает, что рефакторинг одновременно с мигрированием. Если есть новые функции, мы добавим в старое приложение и перенесем позже.
  2. Рефакторинг сначала, повторная архитектура версии 1.7 Ember, избавиться от старого кода, который нам не нужен, и мигрировать, когда мы закончили рефакторинг. Если нам нужно добавить дополнительные функции в приложение, мы можем добавить его в процессе рефакторинга. Когда это будет сделано с рефакторингом, мы заморозим приложение из новых функций.

Первый подход более рискован, вещь может выйти из-под контроля из-за реорганизации и миграции в одно и то же время. Но если все будет хорошо, это можно сделать за более короткое время.

Более поздний подход намного безопаснее. Если в конце у нас заканчивается время, у нас все еще есть лучшая база кода. И всякий раз, когда у нас есть время, мы можем вернуться к миграции. Но это займет больше времени, так как нам нужно будет сделать еще один недостаток рефакторинга при переносе на ember 2.x. И у нас может не быть времени для миграции и навсегда застрять с Ember 1.7.

Мы пытаемся найти третий подход, который реорганизует и переносит небольшие куски приложения на ember-двигатели или более мелкие приложения ember. И добавьте эти небольшие двигатели/приложения в существующее большое приложение для старых приложений. Тем не менее, я не мог найти нигде, где упоминается, что мы можем использовать Ember 2.x внутри приложения Ember 1.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.7 или 1.13. Однако, если это хорошая идея, зависит от знания вас и ваших товарищей по команде. Если у вас есть приличное знание ember-cli во время фазы 1.x, вы можете попробовать. Если у вас нет этого, это может быть трудно получить эти знания, потому что этот интернет не замораживается. С тех пор многое изменилось.


Если вы можете получить ваше приложение на 1.13 с ember-cli это хорошая точка для рефакторинга и избавиться от всех Устаревшие. Не переустанавливайте код. Если вы можете перейти на 2.9, сделайте это и сделайте рефакторинг позже.


Если эти мульти обновления шаг не представляется возможным для вас, я бы рекомендовал ваши варианты 1. Есть такие вещи, как ember-islands, однако я сомневаюсь, что вы будете экономить много времени с этим.

Возможно, я попытаюсь перестроить приложение на 2.9 с минимальным количеством рефакторинга, насколько это возможно, и как можно больше повторного использования кода. Позже начните рефакторинг с двигателями.

Смежные вопросы