Должен ли я перейти с rails 2.3 на 3+ или подождать, пока выйдет rails 4, и затем обновить?
Я собираюсь начать работу по переносу старой версии рельсов компании ap с 2.3/1.87 на самую последнюю версию рельсов. Стоит ли ждать 4-х рельсов, или мне просто до 3,2?
Мы воспользуемся возможностью, чтобы убедиться, что тестирование полностью обеспечено, и, возможно, потребуется некоторое переписывание. Первая цель - убедиться, что все текущие функции работают.
Мы хотим, чтобы существующая кодовая база работала в самой последней версии rails. Мы перепишем любые части, которые этого не делают.
2 ответа
Я хотел бы рассмотреть следующие два варианта:
А) Переписать приложение.
В этом случае я бы сделал это в рельсах. 3.2.10 Не ждите до 4, так как он должен быть выпущен, сброшен, найдены ошибки и т. Д. С рельсами почти никогда не стоит ждать, поскольку у него такой быстрый цикл освобождения с Большие перемены. Что-то, чему я научился за последние пару лет.
Б) Обновите его постепенно.
Я бы тоже не стал ждать пока 4, зайдите на 3.2.10 сейчас. Начните с обновления приложения 2.3 до rails 3.0 Это, вероятно, будет не так сложно. Есть несколько изменений формата и активных изменений записи, но большинство из них довольно просты и хорошо документированы другими. Внимательно примите к сведению предупреждения об устаревании, так как они часто вводятся в rails версии x.0, а затем фактически удаляются в x.1 (поэтому в данном случае это означает 3.0 и 3.1)
Как только это будет завершено, и вы разогнали шины и убедились, что все работает, затем переходите к обновлению до рельсов 3.1. Это на самом деле довольно большое обновление, поскольку оно представляет конвейер ресурсов. Вам нужно будет прочитать об этом и следовать советам. Не "копируй", не используя его для производства. По сути, он выполняет две ключевые вещи: минимизирует код js и компилирует весь код js и css в 1 файл (каждый). Эта помощь ускоряет работу веб-страниц и уменьшает запросы к серверу для всех отдельных ресурсов.
Следующее обновление ruby с 1.8.7 до 1.9.3. Это должно быть относительно безболезненно, но, как и во всех шагах, тщательно проверьте приложение и, очевидно, если у вас есть автоматические регрессионные тесты, их следует запускать (то же самое для каждого шага, описанного здесь).
Наконец, обновите рельсы с 3.1 до 3.2.11, что включает исправление безопасности.
Какой выбор вы сделаете, зависит от множества других факторов, как технических, так и нетехнических, в том числе:
- Пропускная способность разработчика
- опыт разработчика
- бюджет
- график
- качество кода
- размер кодовой базы
- количество пользователей приложений (таким образом, будут влиять любые проблемы).
- доступность поддержки клиентов для полевых звонков о проблемах.
Полезные ресурсы:
- https://github.com/rails/rails_upgrade (2.3 -> 3.0)
- http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1
- http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html
- http://railscasts.com/episodes/282-upgrading-to-rails-3-1
- http://omgbloglol.com/post/364624593/rails-upgrade-is-now-an-official-plugin
- http://guides.rubyonrails.org/3_2_release_notes.html
Я думаю, что вам нужно сначала обновить до 3.x, и через некоторое время (когда выйдет 4.1 или что-то подобное) вы обновите свое приложение до последней версии Rails.
Я настоятельно рекомендую создать огромную работу по созданию тестов для текущей кодовой базы (если это еще не сделано). Когда вы обновитесь до Rails 3, вы получите хорошую базу ошибок, которую нужно исправить перед производством.
И есть много учебников (видео и текст) о том, как обновить 2.x до 3.x приложений Rails.
Моя рекомендация: обновите ваше текущее приложение до 3.2 и подождите, пока ветка 4.x не станет стабильной, и вы сможете использовать ее в производственном режиме (это займет около 4-8 месяцев с момента выпуска 4.0)