Должен ли я обновляться с рельсов от 2,3 до 3+ или дождаться, пока рельсы 4 не будут выпущены и обновлены?

Я собираюсь начать работу по портированию старой компании rails ap с 2.3/1.87 до самой последней версии рельсов. Должен ли я ждать рельсов 4, или мне нужно всего лишь 3.2?

Мы собираемся воспользоваться возможностью, чтобы убедиться, что есть полное покрытие для тестирования, и, вероятно, также будет задействовано некоторое переписывание. Первая цель - убедиться, что все текущие функции работоспособны.

Мы хотим, чтобы иная текущая база кода работала под самой последней версией рельсов. Мы перепишем любые части, которые этого не делают.

Ответ 1

Я бы рассмотрел следующие два варианта:

A) Перезапишите приложение.
В этом случае я сделал бы это в рельсах. 3.2.10 Не дожидайтесь 4, пока он должен быть выпущен, потрясен, обнаружены ошибки и т.д. С рельсами почти никогда не стоит ждать, поскольку у него такой быстрый цикл выпуска с Большие перемены. Что-то, чему я научился за последние пару лет.

B) Обновите его пошагово.
Я бы тоже не дождался, пока придет 4, перейдем к 3.2.10. Начните с обновления приложения 2.3 на rails 3.0. Это, вероятно, на самом деле не так уж сложно. Есть несколько изменений формата и активных изменений записей, но большинство из них довольно прямолинейно и хорошо документировано другими. Обратите внимание на предупреждения об устаревании, поскольку они часто вводятся в версии rails x.0, а затем фактически удаляются в x.1 (поэтому в этом случае это означает 3.0 и 3.1).

Как только это будет завершено, и вы выбросите шины вокруг и убедитесь, что все работает, а затем перейдите к обновлению до рельсов 3.1. Это на самом деле довольно большое обновление, поскольку оно представляет конвейер активов. Вам нужно будет прочитать об этом и следовать советам. Не "выходите", не используя его для производства. В основном он выполняет две ключевые вещи: минимизирует js-код и компилирует все js и css-коды в 1 файл (каждый). Эта помощь ускоряет веб-страницы и уменьшает запросы серверов для всех отдельных активов.

Следующее обновление рубина от 1,8,7 до 1,9,3. Это должно быть относительно безболезненным, но, как и все этапы, внимательно проверяйте приложение и, очевидно, если у вас есть автоматические регрессионные тесты, они должны быть запущены (то же самое для каждого описанного здесь шага).

Наконец, обновите рельсы от 3.1 до 3.2.11, которые содержат исправление безопасности.


Какой выбор вы сделаете, будет зависеть от большого количества других факторов, как технических, так и нетехнических, в том числе:

  • пропускная способность разработчика
  • опыт разработчика
  • бюджет
  • график
  • качество кода
  • размер кодовой базы
  • количество пользователей приложений (таким образом, повлияет на любые из них).
  • доступность поддержки клиентов для полевых вызовов о проблемах.

Полезные ресурсы:

Ответ 2

Я думаю, вам нужно сначала обновить до 3.x, и через некоторое время (когда будет выпущено 4.1 или что-то вроде этого) вы обновите приложение до последней версии Rails.

Я настоятельно рекомендую создать огромную работу по созданию тестов для текущей кодовой базы (если это еще не сделано). Когда вы будете обновлены до Rails 3, вы получите хорошую базу ошибок, которые необходимо исправить до производства.

И есть много учебников (видео и текст) о том, как обновлять приложения 2.x до 3.x Rails.

Рекомендация: обновить текущее приложение до версии 3.2 и дождаться, пока ветка 4.x не станет стабильной, и вы можете использовать ее в режиме производства (потребуется от 4 до 8 месяцев с момента выпуска 4.0)