Когда обновлять jQuery?

19

Когда вы рекомендуете обновить интерфейс jQuery / jQuery? Или другими словами: каковы лучшие практики для обновления пользовательского интерфейса jQuery / jQuery?

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

Рекомендуете ли вы обновлять мои файлы jQuery / jQuery UI при каждом выпуске обновления? Или лучше придерживаться определенной версии до конца проекта?

Я боюсь «сломать» изменения кода, и каждый раз, когда выходит обновление, мне приходится все тестировать. Это занимает слишком много времени. Но с другой стороны, если я не обновлюсь, я боюсь ошибок, которые позже укусят меня сзади.

Проект ASP.MVC, и я часто использую jQuery.

Есть предположения?

Яннис
источник
Эта статья может быть актуальной: она настоятельно рекомендует всегда быть на кону, ссылаясь на
Алекс Фейнман

Ответы:

19

Обновите свою версию jQuery тогда и только тогда, когда вам нужна новая функция, которая включена в новую версию. Просто как тот.

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

Blazemonger
источник
1
+1 это самый стабильный способ сделать это, обновление ради обновления увеличивает ваше общее время разработки, когда вы заканчиваете борьбой с ошибками.
Николас Смит
2
Также следите за вашими плагинами. Иногда исправление ошибки плагина требует обновления основного кода jQuery.
Адриан Дж. Морено,
12
Я не согласен с этим ответом. Если продукт все еще находится в разработке, как кажется из вопроса, то обновляйте его с каждым новым выпуском jQuery. Если продукт находится в производстве, то я согласен с этим ответом: обновляйте только тогда, когда требуется обновление (исправление ошибок, новая функция и т. Д.)
Chuck Conway
@ChuckConway: Хорошо сказано.
Джим Г.
20

Вы должны обновляться с каждым выпуском jQuery - просто посмотрите журналы обновлений перед обновлением.

Команда jQuery очень хорошо документирует изменения API и устаревшие вызовы . На данный момент, подавляющее большинство API довольно стабильно и, вероятно, не изменится. Большинство изменений - это скрытые исправления ошибок, которые не влияют на внешний API. Это особенно верно с последними выпусками (1.8+).

Другая важная причина для обновления заключается в том, что независимо от того, останетесь ли вы в проекте или нет, этот проект будет поддерживаться кем-то после того, как вы закончите с ним. Обновление до последней версии выгодно для вас, будущих разработчиков и пользователей - потому что новые версии jQuery выбрасывают старые из воды ... так что продолжайте и обновляйте Thang.

Кори Дэниелсон
источник
4
Это должен быть принятый ответ, оставляя его просто означающим, что когда вы, наконец, захотите обновить, вы должны совершать прыжки с увеличенной версией, что намного сложнее.
Даниэль Литтл
5

Обновите, как только сможете, не ломая ничего. Новые функции, исправление ошибок, новые функции вводятся на каждой итерации.

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

Небольшой прирост позволит вам поддерживать все в актуальном состоянии без необходимости обновлять 5 основных выпусков и тратить 5 часов на тестирование всего сразу.

Максим Ройллер
источник
1
Я все еще пытаюсь выяснить, сломается ли обновление с 1.4.x до 1.7.x.
Styfle
4

Вам нужны какие-либо новые функции, включенные в более новую версию JQuery? Ваш сайт работает так, как ожидалось сегодня?

Если вы ответили «нет» на первый вопрос и «да» на второй вопрос, не обновляйте jQuery.

Если вам действительно нужны новые функциональные возможности, то вы должны сбалансировать их с затратами на усиленное тестирование и возможное появление новых проблем.

Если у вас есть проблемы с вашей текущей версией JQuery, то, возможно, более новая версия устранила вашу проблему, но у вас все еще повышенная нагрузка на тестирование, потому что вы должны быть уверены, что новая версия не сломает ничего другого.

Вот почему так важно иметь хороший набор модульных, функциональных и функциональных тестов.

Ричард Тернер
источник
2

Только вы можете решить, стоит ли рисковать. Лично мне нравится оставаться в курсе. Тем не менее, у меня было несколько ошибок при обновлении, которые что-то ломали (или вызывали странное поведение). Поскольку у вас впереди год разработки, скорее всего, в любом случае ему придется пройти окончательный контроль качества.

Я говорю держать в курсе. Гораздо проще делать непрерывные маленькие интеграции, чем большие сразу.

Эрик Фанкенбуш
источник
0

Тестовое задание. Тест, тест, тест, тест, тест.

Я использовал версию jQuery UI (тогдашнюю) в проекте и использовал внешний плагин с именем .autocomplete, который выполнял функцию опережающего ввода, привязывая текстовое поле к источнику данных JSON. Использовал это много мест.

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

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

В конце концов, это был провал МОЕГО тестирования. И извлеченный урок состоит в том, что jQuery и jQuery UI очень мало заинтересованы в обратной совместимости. Что ставит перед нами, как разработчиками, требование тестировать и тестировать и тестировать.

Дэн Рэй
источник
-1

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

Есть множество элементов, которые были признаны устаревшими ( http://api.jquery.com/category/deprecated/ ). К сожалению, на странице нет устаревшего тега. Устаревшие шансы, скорее всего, что-то сломают.

В частности (для меня), :checkboxселектор и toggle()функция устарели. Некоторое время назад это изменение коснулось моего (самого старого) кода jquery. Я не осознавал это некоторое время.

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

KNB
источник