Jump to content

Использование jQuery 1.9 в рабочих проектах уже сегодня? Нужен совет.


Catherine
 Share

Recommended Posts

Доброго времени суток!

Ситуация следующая:

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

Теоретически я понимаю, что в последних версиях jQuery произошли некоторые серьезные (с моей дилетантской точки зрения) изменения: http://jquery.com/upgrade-guide/1.9/ и, вероятнее всего, могут возникнуть конфликтные ситуации. Но практического опыта в этой области у меня нет. Всегда подключала только конкретную версию jQuery (актуальную на момент старта), и в процессе работы ее не меняла.

После выхода jQuery 1.9 решила протестировать и убедилась в том, что по умолчанию не все используемые мной без проблем до этого дня плагины работают нормально. Поэтому пока остановилась на переходной версии 1.8 для стабильной работы над другими заказами. Но, с перспективой на будущее, перейти, все же, на v1.9.

Интересует мнение людей, которые уже сталкивались на практике с использованием новой версии jQuery и/или имеют опыт командной работы над долгосрочными (свыше полугода) проектами.

В связи с вышеизложенной ситуацией, у меня возникли следующие вопросы:

1) Нормально ли, с вашей точки зрения, фактически в самом разгаре разработки совершать этот переход? Возможно, я просто сгущаю краски по неопытности в этом вопросе?

2) Часто ли вам приходилось совершать подобные действия? Имеется в виду не именно переход на jQuery 1.9, а эквивалентные ситуации в принципе.

3) Непосредственно переход на версию jQuery 1.9 на данный момент актуален, или оно того пока не стоит?

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

Что думаете по этому поводу? Поделитесь, пожалуйста, вашим мнением.

Спасибо!

P.S. Вопрос к модераторам. Не могли бы вы изменить название темы на "Использование jQuery 1.9 в рабочих проектах уже сегодня? Нужен совет." или нечто похожее? А то суть вопроса по названию не совсем очевидна.

Link to comment
Share on other sites

Нормально ли, с вашей точки зрения, фактически в самом разгаре разработки совершать этот переход?
мне кажется, что если не в разгар разработки перейти, то уже никогда не перейти)

+ большую роль играет, как желание так и занятость разработчиков. Ну и + оплата работ) Просто если это ваши скрипты, то тут наверно все проще, а если чужие, то... наверно это может занять много времени, чтобы разобраться и "оптимизировать" под обновленную библиотеку этот скрипт.

Если бы была jquery 1.3.6 или 1.4.2 подключена, то другой разговор, от таким мне кажется, любыми способами надо избавляться, если проект живой. А 1.7.2, очень много где используется. Сам я тоже ее подключаю.

Опять же, это только теоретические мои размышления :)

Edited by npofopr
Link to comment
Share on other sites

Я сталкивался несколько раз с переходом с jQuery 1.7 на 1.9 и в своих проектах и в таких типа "посмотри тут что-то внезапно все перестало работать, но мы ничего не меняли", так же переход с 1.4 на 1.9, и ниче, не умер)

В тех проектах которых я участвовал как верстальщик, возникали проблемы только с методом .live() при переходе с версий ниже 1.7 сразу на 1.9. Во всяких залетных, чужих по всякому бывало, но тоже без особых проблем.

Меня спасает, то что я слежу за обновлениями, и вовремя перехожу на какие-то новые подходы, например как было с методами .live() и .on() . А когда новый подход уже стал основным, то удаление старого из либы меня ровным счетом вообще не беспокоит :)

И вообще я на jQuery 2.0.0 перешел B) По правде сказать меня стало довольно часто посещать мысль о том, что jQuery мне вообще не нужен)

  • Like 1
Link to comment
Share on other sites

Softlink, спасибо!

Npofopr, спасибо за ответ! В данной ситуации оплата работ, желание и занятость не существенна :) Понятно, если не перейти сейчас, то дальше будет еще сложнее. Но, опять же, это только теория. А хочется узнать, как дела обстоят на практике, так сказать, мнение "бывалых".

alexriz, спасибо за ответ!

Прежде, чем новый подход станет основным в моем случае, будет пересмотрено (не только мной) несколько десятков плагинов сторонних разработчиков и кода, написанного в разное время разными людьми. Поэтому удаление старого и серьезные изменения меня очень беспокоят :) Вопрос в том, насколько глобальными и целесообразными могут оказаться нововведения. Я, кстати, умирать не собираюсь ни в том, ни в другом случае ;) Но каша предстоит немалая, и было бы неплохо знать, многие ли выживают в таких случаях.

И вообще я на jQuery 2.0.0 перешел B) По правде сказать меня стало довольно часто посещать мысль о том, что jQuery мне вообще не нужен)

И как полет? Не возникает трудностей при подключении ранее любимых плагинов?

Link to comment
Share on other sites

И как полет? Не возникает трудностей при подключении ранее любимых плагинов?

ну только ИЕ8 не поддерживается в принципе, но мне на него как-то плевать вообще, сколько можно барахло это поддерживать.

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

Тут нужно понимать, что API само по себе не изменилось, в основном изменения касаются, в 2.0, именно отказа поддержки старых браузеров. А События как вешались, через .on() так и вешаются, анимации как делались через .animate() так и делаются, и т.д.

Link to comment
Share on other sites

1) Нормально ли, с вашей точки зрения, фактически в самом разгаре разработки совершать этот переход? Возможно, я просто сгущаю краски по неопытности в этом вопросе?

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

Переход страшен не переписыванием кода, а перетестированием всего и вся.

2) Часто ли вам приходилось совершать подобные действия? Имеется в виду не именно переход на jQuery 1.9, а эквивалентные ситуации в принципе.

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

3) Непосредственно переход на версию jQuery 1.9 на данный момент актуален, или оно того пока не стоит?

В случае с jQuery - не актуален. Во второй версии не появилось ничего такого, что могло бы существенно повлиять на

1. Скорость разработки

2. Скорость поддержки

3. Методику разработки

Это всего лишь мелкие твики, улучшайзеры.

Единственный пункт, который меня беспокоит, это

http://bugs.jquery.com/ticket/12254

  • Like 1
Link to comment
Share on other sites

Переход страшен не переписыванием кода, а перетестированием всего и вся.

Это попадание в самую точку. особенно если проект крупный

В данный момент я не перехожу на версии выше 1.8 , так как данная версия меня вполне устраивает, а если перейду на новые версии, теоретически безусловно возможен вариант, что, что-то не заведётся. останавливало именно проблемма перетестирования. Офис не будет нанимать тестеров для этого.

Но в скором будущем, безусловно переход на них будет. Тоже скептически отношусь к поддержке IE ниже 9

  • Like 1
Link to comment
Share on other sites

Тоже скептически отношусь к поддержке IE ниже 9

Не совсем понятно, для меня, из контекста, ты скептически относишься к поддержке IE8- или к тому, что в jQuery 2.0 отказались от поддержки их?

  • Like 1
Link to comment
Share on other sites

По правде сказать меня стало довольно часто посещать мысль о том, что jQuery мне вообще не нужен)

Это конечно да и очень похвально) У меня случай немного другого рода. Я работаю одновременно и верстальщиком и PHP программистом, поэтому времени на разработку на нативном JS практически нет. и без всякой доли стеснения использую богатый функционал JQ =)

Тоже скептически отношусь к поддержке IE ниже 9

Не совсем понятно, для меня, из контекста, ты скептически относишься к поддержке IE8- или к тому, что в jQuery 2.0 отказались от поддержки их?

к поддержке IE
Link to comment
Share on other sites

Это конечно да и очень похвально) У меня случай немного другого рода. Я работаю одновременно и верстальщиком и PHP программистом, поэтому времени на разработку на нативном JS практически нет. и без всякой доли стеснения использую богатый функционал JQ =)

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

к поддержке IE

Это правильно. *смайлик хлопающий в ладоши* :)

Есть же официальный плагин - jQuery Migrate. Он обеспечит поддержку старого кода, а новый код уже можно писать по новому.

Ну во-первых это целый лишний скрипт нужно подключить, хоть он и не большой но тем не менее.

А во-вторых он же вроде бы только для перехода с 1.8- на 1.9, с версией 2.0 он же вроде не решит поддержку старых браузеров

Link to comment
Share on other sites

Есть же официальный плагин - jQuery Migrate. Он обеспечит поддержку старого кода, а новый код уже можно писать по новому.

Есть, и несколько дней назад даже вышла обновленная версия http://blog.jquery.c...1-2-0-released/, но я почему-то была уверена, что он не решает все проблемы, а всего лишь выявляет ошибки несовместимости. Или нет?

Хотя в описании (https://github.com/j...migrate/#readme) сказано:

the plugin is only required for version 1.9.0 or higher to restore deprecated and removed functionality

Из чего должен следовать вывод, что данный плагин все-таки должен восстановить работоспособность устаревшего и удаленного в новых версиях функционала, но при этом уже сейчас можно безболезненно использовать все новшества, представленные в v1.9 и >. А на практике? Кто-то уже тестировал и внедрял в проект? Все ли так просто, или есть свои особенности?

Да, и, кстати, поддержка ИЕ хотя бы 8 версии крайне желательна (на данный момент в ИЕ7 особых косяков не наблюдается). Политика следующая: чем больший диапазон браузеров будет включен в поддержку без применения колоссальных усилий, тем лучше.

Link to comment
Share on other sites

А на практике? Кто-то уже тестировал и внедрял в проект? Все ли так просто, или есть свои особенности?

Да было на одном проекте подключили, ну вроде бы да восстанавливает работоспособность старого кода, и еще вагон всякого хлама в консоль пишет)) Но я видел его в действии на jq 1.9, на 2.0 не пробовал

Link to comment
Share on other sites

Попробовал Migrate с jQuery 2.0 как я и говорил, в IE8 все равно не будет поддержки :)

Alexriz, нескрываемая радость прослеживается в данном посте :) Но за оперативное тестирование отдельная благодарность!

Подержка устаревших методов полная, так что можно смело внедрять. Мы уже на всех проектах обновились. Правда до 1.9, а не 2.0.

Great Rash, спасибо за то, что поделились своим опытом внедрения последних версий jQuery на рабочих проектах!

s0rr0w, спасибо за подробный и исчерпывающий ответ!

Link to comment
Share on other sites

Alexriz, нескрываемая радость прослеживается в данном посте Но за оперативное тестирование отдельная благодарность!

Ну так, а то) У меня теперь есть еще один довод пускать лесом нытье, что у кого-то там в IE8 что-то не так :)

И проблема не в том, что я не умею его поддерживать - умею. Но категорически не хочу :rolleyes:

Link to comment
Share on other sites

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

1. Повышается безопасность

2. Повышается надежность

3. Повышается быстродействие, которое может принести осязаемую прибыль, а не ожидание прибыли.

Во всех остальных случаях этого не стоит делать. Баги имеют свойство накапливаться.

  • Like 1
Link to comment
Share on other sites

я в жуквери вообще разочарован. С точки зрения сравнения версий 1.9.1 и 2.0 размер библиотеки практически не изменился (в меньшую сторону), несмотря на то, что разработчики отказались от поддержки "старых" ie. Еще там анимация "не оптимизирована" (со слов людей пишущих анимационные либы). В одном из коллективных проектов используем Zepto. Он, кстати, в плане анимации тот же жуквери (вроде как), но размер либы меньше.

В идеале переход на новую стабильную версию должен пройти гладко, хотя на практике ... )

Опять же, смотря как вы используете жуквери: подключили дофига сторонних плагинов, кот. могут использовать какие-либо недокументированные возможности жуквери, иметь "узкие" места, а затем удивляться почему оно не работает; либо пару строк кода написанные вами же.

  • Like 1
Link to comment
Share on other sites

Всем спасибо за помощь!

Был совершен переход на jQuery 1.9 с использованием последней версии официального Migrate plugin'a (на данный момент http://code.jquery.com/jquery-migrate-1.2.1.js).

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

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

Link to comment
Share on other sites

при переходе с версии на версию jQ, в случае если плагин перестал работать, но есть его исходники, можно фикс написать самим.

или же уведомить разработчика о баге и ждать что бы он его пофиксил. или дать ему денег и получить фикс сразу.

в любом случае это будет дешевле чем написать плагин самим.

Link to comment
Share on other sites

Klierik, все, что можно - уже сделано.

Отказаться пришлось от пары устаревших плагинов в пользу более новых решений. Остальные сторонние плагины были обновлены до актуальной версии. Все самописное сейчас тестируется. И мне почему-то кажется, что в данном случае было бы дешевле вообще не переходить с версии на версию :)

Link to comment
Share on other sites

переход на новую версию фреймворка всегда стоит денег. вопрос лиш в том когда заказчик согласен за это платить

1. по чуть-чуть постоянно -- значительно дешевле

2. когда "припечет" -- значительно дороже

ну или не переходить вовсе ) что тоже не так уж и дальновидно, ибо через 2-3 года код может очень устареть.

В целом плыть в течении с обновленими вполне разумно, имхо )

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy