Основное улучшение Ember - с 1.12 до 3.5 - PullRequest
0 голосов
/ 29 октября 2018

В ближайшее время я буду заниматься серьезным обновлением приложения. У меня есть небольшой опыт работы с ember.js, и у меня нет никого, кто мог бы помочь мне решить этот вопрос. Приложение написано в Ember 1.12, и есть несколько зависимостей. У него есть веб-версия и мобильная версия (iOS + Android), написанная на Cordova - все они требуют обновления.

Каких проблем мне ожидать? Как к ним подготовиться? Сколько времени я должен оценить? Любая помощь будет очень полезна - я впервые буду обновлять приложение.

Я проверил эти ссылки, но большинство из них для версий выше 2.0.

https://www.emberscreencasts.com/meta_guide_to_upgrading_ember https://medium.com/ingenious/how-to-upgrade-ember-js-to-3-x-and-live-to-fight-another-day-cfc28c16b726 http://www.ember -cli-diff.org / https://medium.com/front-end-hacking/everything-you-need-to-know-to-upgrade-your-ember-js-app-including-ember-3-9de5e808dde0 https://medium.com/ember-ish/upgrading-ember-from-1-13-to-2-8-0-f1dbcecc40ca https://medium.com/front-end-hacking/how-to-use-ember-2-code-in-your-ember-3-app-9ed15c28bad6

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я обновил кучу приложений / дополнений Ember с 1.11 до 2.18 перед выпуском 3.0. Я не думаю, что было какое-то незначительное обновление версии до 2.10, которое не сломало мое приложение.

Я также одновременно обновил ember cli с приложением. Я попытался обновить ember cli до последней версии, но у меня была куча загадочных ошибок, и я зашел в тупик. Вместо этого я остановился на примечаниях к выпуску Ember и выяснил, какая версия ember cli была последней на момент выпуска Ember. Я буду обновлять Ember cli каждые 4 версии или около того, если только у меня не возникнут проблемы, после чего я немедленно обновлю.

Самым важным является автоматизированные тесты. Я вижу, что вы говорите, что у вас нет тестов и просто будете тестировать вручную, но это глупо. У меня была куча кода, который мне нужно было обновить без тестов. Я написал комплексные тесты в течение недели, так как у меня было две недели, чтобы выполнить обновление. Это было абсолютно необходимо, и некоторые обновления сломали бы 60-80% моих тестов. Это заняло бы у меня 2 месяца без тестов, но я выполнил это за 2 недели с тестами, используя первый, чтобы написать необходимые дополнительные тесты.

Комплексные тесты являются лучшими, но далеко не необходимыми. Как минимум, я бы порекомендовал вам потратить время на насмешку над вызовами API и написать приемочный тест для каждой страницы вашего приложения, который служит тестом на дым. Тест так же прост, как перейти к URL и проверить, есть ли там дом. Ember cli page page очень помогает + html5 test-* классов данных.

Как только вы это сделаете, следуйте советам @Trenton Trama. Обновите минорную версию, запустите тесты, исправьте проблемы, промойте и повторите до полного обновления.

0 голосов
/ 29 октября 2018

В зависимости от размера вашего приложения и объема вашего набора тестов, вы, вероятно, посвятите минимум 4 недели, получая только веб-версию до 3.5.

Процесс будет трудоемким и утомительным.
1. Обновление до 1 минорной версии (1.12-> 1.13)
2. Запустите тестовый набор и исправьте все проблемы, которые возникают
3. Вручную протестируйте инструмент, перемещаясь по нему, и устраняйте возникающие проблемы
4: во время тестирования вы должны были определить несколько амортизационных отчислений. Исправьте это.
5: повторите шаги 1-4
6. После обновления до 2.0.0 вы можете пропустить несколько второстепенных версий одновременно, если вы не используете частные API и у вас небольшие зависимости.

Эмбер поддерживает их [список изменений] ( https://github.com/emberjs/ember.js/blob/master/CHANGELOG.md), а также страница, на которой перечислены устаревшие версии и их решения , так что вы захотите стать друзьями с версией, которую вы обновляете. Для каждого упоминания об устаревании, проверьте связанную историю ошибок, чтобы увидеть, что является предложенной заменой. Будьте активны - не ждите, пока окончательная версия исправит устаревание.

Большие / общие проблемы, с которыми вы столкнетесь:
Представления устарели и удалены. Вам необходимо понять, как работают компоненты, и перенести все существующие представления в компонент. Выбранный помощник удаляется.
Если ваши представления и компоненты используют targetObject для получения контроллера, вам нужно заставить их работать без этого. Это означает определение того, какие свойства и действия необходимо передать, и явное выполнение этого. Компоненты не должны ничего знать о том, как они называются.

У Ember есть надежное руководство по работе с устаревшими документами на https://guides.emberjs.com/release/configuring-ember/handling-deprecations/, которое может помочь.

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

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

...