Kiedy aktualizować jQuery?

19

Kiedy polecasz aktualizację interfejsu jQuery / jQuery? Lub innymi słowy: jakie są najlepsze praktyki dotyczące aktualizacji interfejsu użytkownika jQuery / jQuery?

Pracuję nad długim projektem, który potrwa co najmniej jeszcze rok. W tym czasie jestem pewien, że interfejs użytkownika jQuery / jQuery będzie aktualizowany wiele razy.

Czy zalecamy aktualizację moich plików jQuery / jQuery UI za każdym razem, gdy aktualizacja jest wydawana? A może lepiej pozostać przy konkretnej wersji do końca projektu?

Boję się „łamania” zmian kodu i za każdym razem, gdy publikowana jest aktualizacja, muszę wszystko testować. To zajmuje za dużo czasu. Ale z drugiej strony, jeśli nie zaktualizuję, obawiam się błędów, które później ugryzą mnie z tyłu.

Projekt jest ASP.MVC i często używam jQuery.

jakieś pomysły?

Yannis
źródło
Ten artykuł może być istotne: to wzywa zawsze jest na końcu łącząc wersji udostępnianej przez Google: encosia.com/...
Alex Feinman

Odpowiedzi:

19

Zaktualizuj swoją wersję jQuery wtedy i tylko wtedy, gdy potrzebujesz nowej funkcji zawartej w nowej wersji. Proste.

Jeśli często rozwijasz się za pomocą jQuery, miej oko na oficjalnym blogu, aby wiedzieć, kiedy aktualizacje są wydawane i co oferują. Poczekaj kilka tygodni przed aktualizacją do najnowszej wersji, aby upewnić się, że wszelkie nieoczekiwane błędy zostaną usunięte.

Blazemonger
źródło
1
+1 to najbardziej stabilny sposób, aby to zrobić, ulepszenie w celu ulepszenia wydłuża twój ogólny czas rozwoju, gdy skończysz walczyć z błędami.
Nicholas Smith
2
Ponadto miej oko na swoje wtyczki. Czasami naprawa błędu wtyczki wymaga uaktualnienia podstawowego kodu jQuery.
Adrian J. Moreno,
12
Nie zgadzam się z tą odpowiedzią. Jeśli produkt jest nadal w fazie rozwoju, jak brzmi jak z pytania, to aktualizuj z każdą nową wersją jQuery. Jeśli produkt jest w produkcji, zgadzam się z tą odpowiedzią, aktualizuj tylko wtedy, gdy wymagana jest aktualizacja (poprawki błędów, nowa funkcja ... itd.)
Chuck Conway
@ChuckConway: Dobrze powiedziane.
Jim G.
20

Powinieneś aktualizować każdą wersję jQuery - po prostu zajrzyj do dzienników aktualizacji przed aktualizacją.

Zespół jQuery bardzo dobrze dokumentuje zmiany API i przestarzałe połączenia . W tym momencie zdecydowana większość API jest dość stabilna i prawdopodobnie się nie zmieni. Większość zmian to poprawki zza kulis, które nie wpływają na zewnętrzny interfejs API. Jest to szczególnie prawdziwe w przypadku najnowszych wydań (1.8+).

Innym doskonałym powodem aktualizacji jest to, że niezależnie od tego, czy pozostaniesz w projekcie, projekt ten zostanie utrzymany przez kogoś po zakończeniu pracy. Aktualizacja do najnowszej wersji jest korzystna dla ciebie, przyszłych programistów i użytkowników - ponieważ nowsze wersje jQuery wyrzucają starsze z wody ... więc idź i zaktualizuj thang.

Cory Danielson
źródło
4
To powinna być zaakceptowana odpowiedź, pozostawiając to po prostu oznacza, że ​​kiedy w końcu chcesz uaktualnić, musisz wykonać skoki w większej wersji, co jest znacznie trudniejsze.
Daniel Little
5

Uaktualnij tak szybko, jak to możliwe, bez niszczenia czegokolwiek. Nowe funkcje, naprawa błędów, nowe funkcje są wprowadzane w każdej iteracji.

Być może nie potrzebujesz najnowszych funkcji, ale kiedy to zrobisz, będziesz musiał sprawdzić każdą nową wersję pomiędzy tym, co musisz, aby upewnić się, że nic nie psuje.

Mały przyrost pozwoli ci zachować wszystko na bieżąco bez konieczności aktualizacji 5 głównych wydań i spędzić 5 godzin na testowaniu wszystkiego na raz.

Maxime Rouiller
źródło
1
Nadal próbuję dowiedzieć się, czy aktualizacja z 1.4.x do 1.7.x coś zepsuje.
styfle
4

Czy potrzebujesz nowych funkcji zawartych w nowszej wersji JQuery? Czy Twoja witryna działa dzisiaj zgodnie z oczekiwaniami?

Jeśli odpowiedziałeś „nie” na pierwsze i „tak” na drugie pytanie, nie aktualizuj jQuery.

Jeśli potrzebujesz nowej funkcjonalności, musisz to zrównoważyć z kosztem zwiększonego testowania i ewentualnego wprowadzenia nowych problemów.

Jeśli masz problemy z bieżącą wersją JQuery, to nowsza wersja mogła rozwiązać problem, ale nadal masz zwiększone obciążenie testowe, ponieważ musisz upewnić się, że nowa wersja nie psuje niczego innego.

Dlatego tak ważne jest posiadanie dobrego zestawu testów jednostkowych, funkcjonalnych i funkcjonalnych.

Richard Turner
źródło
2

Tylko Ty możesz zdecydować, czy ryzyko jest tego warte. Osobiście lubię być na bieżąco. Jednak wprowadziłem kilka błędów podczas aktualizacji, które coś zepsuły (lub spowodowały dziwne zachowanie). Ponieważ masz przed sobą rok rozwoju, prawdopodobnie i tak będzie musiał przejść ostateczną kontrolę jakości.

Mówię: bądź na bieżąco. Znacznie łatwiej jest wykonywać ciągłe małe integracje niż duże jednocześnie.

Erik Funkenbusch
źródło
0

Test. Test, test, test, test, test.

Użyłem wersji jQuery UI (ówczesnej) w projekcie i użyłem zewnętrznej wtyczki o nazwie .autocomplete, która wykonała funkcję automatycznego uzupełniania, wiążąc pole tekstowe ze źródłem danych JSON. Użyłem tego wiele miejsc.

Potem, kilka miesięcy później, musiałem dodać suwak, który pojawił się tylko w późniejszej wersji. Niestety, ta późniejsza wersja dodała natywną funkcję autouzupełniania, która, jak twierdzili, była duchowym następcą wtyczki, z której korzystałem, ale która używała zupełnie innej metodologii, funkcji i wymagań dotyczących danych, przerywając pola autouzupełniania na każdej stronie, z której korzystałem mój nowy suwak włączony.

Ponieważ strony, na których opracowywałem tę nową funkcję, nie używały autouzupełniania, nie zauważyłem. Ponieważ mój klient spieszył się z uruchomieniem tej funkcji przed targami, przebiegł przez etapy i testy, a następnie wszedł do produkcji z craptonem zepsutych autouzupełniania.

Ostatecznie była to porażka MOICH testów. Wyciągnięta lekcja jest taka, że ​​jQuery i jQuery UI bardzo mało interesują się kompatybilnością wsteczną. Co nakłada na nas, jako twórców, wymóg testowania i testowania.

Dan Ray
źródło
-1

Z mojego doświadczenia wynika, że ​​nowe wersje jQuery są ogólnie bardziej rygorystyczne pod względem wymagań dotyczących czystości kodu w odniesieniu do kodu wywołującego (twojego kodu).

Istnieje wiele przestarzałych elementów ( http://api.jquery.com/category/deprecated/ ). Niestety na stronie nie ma przestarzałego tagu. Starsze wycofania są bardziej podatne na uszkodzenie.

W szczególności (dla mnie) :checkboxselektor i toggle()funkcja są przestarzałe. Jakiś czas temu ta zmiana wpłynęła na mój (najstarszy) kod jquery. Przez pewien czas nie zdawałem sobie z tego sprawy.

Z drugiej strony nowsze wersje jQuery zwykle zawierają znaczne ulepszenia wydajności. Sprawdź dzienniki zmian, a może jedną z prezentacji Johna Resiga, aby zobaczyć, gdzie nastąpiła poprawa wydajności. Jeśli uzyskasz z nich jakąś korzyść ... to zależy od ciebie.

knb
źródło