Коли оновити jQuery?


19

Коли ви рекомендуєте оновити інтерфейс jQuery / jQuery? Або іншими словами: які найкращі практики оновлення інтерфейсу jQuery / jQuery?

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

Чи рекомендуєте ви оновлювати мої файли інтерфейсу jQuery / jQuery щоразу, коли оновлення випускається? Або краще дотримуватися певної версії до кінця проекту?

Я боюся "зламати" зміни коду, і кожного разу, коли виходить оновлення, я повинен все перевірити. Це займає занадто багато часу. Але з іншого боку, якщо я не оновлювався, я боюся помилок, які згодом будуть кусати мене в тилу.

Проект є ASP.MVC, і я багато використовую jQuery.

Будь-які думки?


Ця стаття може бути доречною: вона закликає завжди бути в підказці, посилаючись на
Алекс Фейнман

Відповіді:


19

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

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


1
+1 - це найбільш стабільний спосіб зробити це, оновлення заради оновлення збільшує загальний час розробки, коли ви закінчите боротьбу з помилками.
Ніколас Сміт

2
Також слідкуйте за своїми плагінами. Іноді виправлення помилок плагіну потребує оновлення основного коду jQuery.
Адріан Дж. Морено

12
Я не згоден з цією відповіддю. Якщо продукт все ще знаходиться в розробці, як це звучить як із запитання, то оновіть кожен новий випуск jQuery. Якщо продукт випускається, тоді я погоджуюся з цією відповіддю, оновіть лише тоді, коли потрібне оновлення (виправлення помилок, нова функція .. тощо)
Чак Конвей

@ChuckConway: Добре сказано.
Джим Г.

20

Вам слід оновити з кожним випуском jQuery - просто загляньте в журнали оновлення перед оновленням.

Команда jQuery дуже добре стосується документування змін API та застарілих викликів . На даний момент переважна більшість API є досить стабільною і, ймовірно, не зміниться. Більшість змін - це виправлення помилок за кадром, які не впливають на зовнішній API. Особливо це стосується останніх версій (1.8+).

Ще одна чудова причина для оновлення - це те, що незалежно від того, залишаєтеся ви чи ні в проекті, хтось буде підтримувати цей проект після того, як ви закінчите його. Оновлення до останньої версії вигідне для вас, майбутніх розробників та користувачів - адже новіші версії jQuery вибухають старші з води ... тож продовжуйте та оновлюйте thang.


4
Це має бути прийнятою відповіддю, а це просто означає, що коли ви нарешті хочете оновити, вам доведеться робити більші стрибки версії, що набагато складніше.
Деніел Малий

5

Оновіть, як тільки зможете, нічого не порушуючи. У всіх ітераціях вводяться нові функціональні можливості, виправлення помилок, нові функції.

Можливо, вам не знадобляться останні функції, але коли ви це зробите, вам доведеться перевірити кожну нову версію між тим, що вам потрібно, щоб переконатися, що вона нічого не порушує.

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


1
Я все ще намагаюся з’ясувати, чи оновлення з 1.4.x до 1.7.x щось порушить.
стайфл

4

Вам потрібна будь-яка з нових функцій, включених до нової версії JQuery? Чи працює ваш сайт, як очікувалося сьогодні?

Якщо ви відповіли "ні" на перше і "так" на друге питання, тоді не поновлюйте jQuery.

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

Якщо у вас є проблеми з вашою поточною версією JQuery, можливо, виправлена ​​ваша проблема новою версією, але ви все ще маєте посилене тестове навантаження, оскільки ви повинні переконатися, що нова версія не порушує нічого іншого.

Ось чому так важливо мати гарний набір одиничних, функціональних і функціональних тестів.


2

Тільки ви можете вирішити, чи варті ризики. Особисто мені подобається бути в курсі. Тим не менш, у мене було кілька помилок, введених під час оновлення, які щось порушили (або викликали дивну поведінку). Оскільки у вас попереду рік розвитку, швидше за все, йому доведеться все-таки пройти остаточний контроль якості.

Я кажу, будьте в курсі. Набагато простіше робити безперервні невеликі інтеграції, ніж великі всі відразу.


0

Тест. Тест, тест, тест, тест, тест.

Я використовував версію інтерфейсу jQuery (тодішня) для проекту та використовував зовнішній плагін під назвою .autocomplete, який вводив функціональність наперед, прив’язуючи текстове поле до джерела даних JSON. Використовували це багато місць.

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

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

Зрештою, це був збій МОЙ тестування. А засвоєний урок полягає в тому, що інтерфейс jQuery та jQuery дуже мало зацікавлений у зворотній сумісності. Що ставить перед нами вимогу, як розробників, тестувати і випробовувати.


-1

На мій досвід, нові версії jQuery, як правило, більш суворі в своїх вимогах щодо чистоти коду щодо викликового коду (вашого коду).

Існує чимало предметів, які застаріли ( http://api.jquery.com/category/deprecated/ ). На жаль, немає застарілого тегу на сторінці, на жаль. Старіші домінати швидше щось зламають.

Найбільш помітно (для мене), :checkboxселектор та toggle()функція застаріли. Деякий час тому ця зміна вплинула на мій власний (найдавніший) код jquery. Я цього не усвідомлював деякий час.

З іншого боку, новіші версії jQuery, як правило, суттєво покращують продуктивність. Перевірте журнали змін або, можливо, одну з презентацій Джона Ресіга, щоб побачити, де було досягнуто покращення продуктивності. Якщо ви отримаєте від них якусь вигоду ... вирішувати вам.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.