Co oznacza Douglas Crockford, gdy mówi, że jQuery się nie skaluje? [Zamknięte]

32

W sekcji Q & A z tej rozmowy , Douglas Crockforda mówi, że jQuery nie skaluje jak również kilka innych popularnych bibliotek. Co on przez to rozumie i co z innymi bibliotekami czyni je bardziej skalowalnymi?

MatrixFrog
źródło
Więcej dyskusji na ten temat w JavaScript reddit: reddit.com/r/javascript/comments/h21vr/…
MatrixFrog
Bez oglądania całego wideo mogę powiedzieć, że samo użycie jQuery nie daje się dobrze skalować do aplikacji jednostronicowych. Powodem jest to, że nie masz struktury widoku modelu do uporządkowania kodu. Połącz jQuery ze strukturami strukturalnymi, takimi jak Backbone.js , Knockout.js i / lub Sammy.js , i rzeczywiście skaluje się bardzo dobrze.
user16764
Nie widziałem rozmowy, ale mój 2c tutaj jest taki, że skoncentrowana na wtyczce natura bestii w połączeniu z brakiem wskazówek i narzędzi do ładowania zależności prowadzi do aplikacji, w których masz zupę z wtyczką jQuery, ponieważ ktoś w zespole potrzebuje trochę wtyczka do określonego zadania, wymieniona wtyczka zostaje dołączona do całej aplikacji i ostatecznie ładujesz 342 różne wtyczki jquery w całej aplikacji. Jest to rodzaj natury bestii - ma ona na celu ułatwienie rzeczy na mniejszą skalę kosztem braku dużych pomysłów.
Wyatt Barnett
4
Ciekawe, że 3 z 4 odpowiedzi zaczynają się od pewnej odmiany „Nie widziałem wideo”. Jak dokładnie możesz wyjaśnić, co miał na myśli pan Crockford, nie oglądając wideo?
Corbin,
Cóż, niewiele powiedział. Jak powiedział jeden z respondentów, na samym końcu była to rodzaj odręcznej uwagi w sekcji pytań i odpowiedzi. Ale masz rację.
MatrixFrog

Odpowiedzi:

41

Jeśli obejrzysz wideo, nie mówi on formalnie o jQuery. Jest to szybka odpowiedź na nieco nietypowe pytanie zadane przez kogoś po prezentacji ... na końcu prezentacji, około minuty 1:29.

Mówi wiele dobrych rzeczy o jQuery. Część o tym nie skaluje się dobrze, mówi, że nie uważa, że ​​jQuery skaluje się bardzo dobrze w przypadku bardzo skomplikowanych aplikacji (porównując go do innych rzeczy, takich jak YUI). .

jon
źródło
29
+1 za faktyczne obejrzenie filmu przed opublikowaniem odpowiedzi. (-:
KM.
3

Trudno mi powiedzieć bez oglądania wideo, ale zgaduję, że to dlatego, że jQuery nie oferuje wszystkich funkcji większości innych bibliotek, które ułatwiają programowanie JavaScript. Celem jQuery jest ułatwienie manipulacji DOM poprzez uproszczenie adresowania elementów za pomocą selektorów CSS i zapewnienie łatwej struktury do modyfikacji tych elementów. Oferuje inne funkcje, takie jak żądania Ajax , podstawowe zarządzanie zdarzeniami, szablony i inne podstawowe funkcje, ale o to chodzi.

Inne biblioteki, takie jak Prototype , MooTools , Ext JS i Dojo, zapewniają mnóstwo innych funkcji do tworzenia obiektów, zarządzania tablicami i kolekcjami, manipulowania ciągami znaków i robienia innych drobiazgowych rzeczy, które my, programiści, możemy robić.

Krótko mówiąc, w jQuery brakuje narzędzi, które byłyby potrzebne w aplikacjach JavaScript na dużą skalę. Z tego powodu bardzo rzadko można znaleźć bardzo ciężkie strony JavaScript za pomocą jQuery. Na przykład Mint.com jest oparty na YUI . Usługa internetowa Apple MobileMe działa na SproutCore (główna strona Apple używa Prototypu).

Przynajmniej tak myślę, że miał na myśli .

ChiperSoft
źródło
1
Hm Jestem całkiem zaznajomiony z jQuery, ale niezbyt dobrze z YUI lub jakimkolwiek innym frameworkiem JS. Może powinienem był zapytać, co to jest z YUI, Prototypem itp., Które sprawiają, że są one dobre do tworzenia dużych, skalowalnych aplikacji internetowych? Zamiast pytać, czego nie ma jQuery ...
MatrixFrog
6
„Znalezienie bardzo ciężkich witryn JS przy użyciu jQuery jest dość rzadkie”… podczas gdy my wymyślamy, czy możesz coś wymyślić na temat YUI wymagającego mniej niż 10 MB plików?
Ken
@ken Jeśli ładujesz całą bibliotekę YUI na swoją stronę, robisz to źle. Jest powód, dla którego Yahoo oferuje dynamiczny moduł ładujący. A jeśli nie zgadzasz się z moją oceną, podaj przykłady przeciwne. Pokaż nam wielkoskalową aplikację opartą na jQuery.
ChiperSoft
4
Zdefiniuj wtedy „dużą skalę”. Stos SE używa jQuery.
Ken
SE nie opiera się głównie na JS, używa jQuery w taki sposób, w jaki większość używa jQuery: podstawowe wiązanie zdarzeń, proste żądania AJAX, niektóre manipulacje DOM. Duża skala oznacza całe aplikacje zbudowane całkowicie na JS; witryny nie oparte na stronach. Mówimy o rzeczach, o których wspomniałem powyżej (Mint.com i MobileMe), edytorze Cloud9, gMail, Mockingbird. Witryny, które mają co najmniej 1 MB kodu JS napisane wewnętrznie.
ChiperSoft
2

jQuery nie zezwala na wielokrotne użycie, na przykład MooTools .

Jest to decyzja filozoficzna / projektowa: jQuery nie zawiera dużo kodu do scenariuszy pożaru i zapomnienia.

Kiedy budujesz dyskretne wrażenia JavaScript (zwykle tylko rozszerzenia strony), działa to bardzo dobrze i wymaga bardzo mało kodu. Podczas tworzenia Dokumentów Google ... nie tyle. Będziesz chciał więcej koncepcji OOP, które ujawniają inne projekty, takich jak dziedziczenie, mechanizmy podobne do interfejsu itp.

Cohen
źródło