Что имеет в виду Дуглас Крокфорд, когда говорит, что jQuery не масштабируется? [закрыто]

32

В разделе «Вопросы и ответы» этого доклада Дуглас Крокфорд говорит, что jQuery не масштабируется так же хорошо, как некоторые другие популярные библиотеки. Что он подразумевает под этим и что в других библиотеках делает их более масштабируемыми?

MatrixFrog
источник
Подробнее об этом читайте
MatrixFrog
Без просмотра всего видео я могу сказать, что само по себе использование jQuery плохо масштабируется для одностраничных приложений. Причина в том, что у вас нет фреймворка модель-представление для организации вашего кода. Объедините jQuery со структурными структурами, такими как Backbone.js , Knockout.js и / или Sammy.js , и это действительно очень хорошо масштабируется.
user16764
Я не видел разговоров, но мой 2c здесь заключается в том, что плагин-ориентированная природа зверя в сочетании с отсутствием руководства и инструментов для загрузки зависимостей приводит к приложениям, в которых есть плагин jQuery, так как кому-то в команде нужно немного плагин для конкретной задачи, указанный плагин включается в приложение и в конечном итоге вы загружаете 342 различных jquery-плагина по всему приложению. Это своего рода природа зверя - он разработан для того, чтобы облегчить мелкомасштабные вещи за счет того, что у них не будет больших концепций вверх по течению.
Уайетт Барнетт
4
Любопытно, что 3 из 4 ответов начинаются с некоторой вариации «Я не видел видео». Как именно вы можете уточнить, что имел в виду мистер Крокфорд, не смотря видео?
Корбин
Ну, он не очень много сказал. Как сказал один из ответчиков, это было своего рода неосторожное замечание в самом конце раздела вопросов и ответов. Но вы делаете хорошую мысль.
MatrixFrog

Ответы:

41

Если вы смотрите видео, он не говорит о jQuery формально. Это быстрый ответ на какой-то оффтопический вопрос от кого-то после презентации ... в конце презентации, около минуты 1:29.

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

джон
источник
29
+1 за просмотр видео перед публикацией ответа. (-:
КМ.
3

Мне трудно говорить без просмотра видео, но я предполагаю, что это потому, что jQuery не предлагает все функции большинства других библиотек, которые облегчают программирование на JavaScript. Цель jQuery - облегчить манипулирование DOM , упрощая адресацию элементов с помощью селекторов CSS и предоставляя простую структуру для изменения этих элементов. Он предлагает некоторые другие функции, такие как запросы Ajax , базовое управление событиями, шаблоны и некоторые другие элементарные функции, но это все.

Другие библиотеки, такие как Prototype , MooTools , Ext JS и Dojo, предоставляют множество других функций для создания объектов, управления массивами и коллекциями, манипулирования строками и выполнения всех других мелких вещей, которые мы, программисты, ожидаем, что сможем сделать.

Короче говоря, в jQuery отсутствуют инструменты, которые нужны для крупномасштабных приложений JavaScript. По этой причине довольно редко можно найти какие-либо очень тяжелые сайты JavaScript, использующие jQuery. Например, Mint.com построен на YUI . Веб-сервис Apple MobileMe работает на SproutCore (основной сайт Apple использует Prototype).

По крайней мере, я так думаю .

ChiperSoft
источник
1
Гектометр Я довольно хорошо знаком с jQuery, но совсем не знаком с YUI или другими JS-средами. Поэтому, возможно, мне следовало бы спросить, что в YUI, Prototype и т. Д. Делает их хорошими для создания больших масштабируемых веб-приложений? Вместо того , чтобы спросить , что Jquery не имеет ...
MatrixFrog
6
«Довольно редко можно найти какие-либо очень тяжелые сайты JS, использующие jQuery»… пока мы готовим что-нибудь, можете ли вы придумать что-нибудь о YUI, требующем менее 10 МБ файлов?
Кен
@ken Если вы загружаете всю библиотеку YUI на свою страницу, значит, вы делаете это неправильно. Есть причина, по которой Yahoo предлагает динамический загрузчик. А если вы не согласны с моей оценкой, приведите примеры обратного. Покажите нам крупномасштабное приложение, построенное на jQuery.
ChiperSoft
4
Определите «большой масштаб» тогда. Стек SE использует jQuery.
Кен
SE в основном не управляется JS, он использует jQuery так, как большинство использует jQuery: привязка базовых событий, простые запросы AJAX, некоторые манипуляции с DOM. Крупномасштабные означает целые приложения, построенные полностью на JS; нестраничные сайты. Мы говорим о таких вещах, как я упомянул выше (Mint.com & MobileMe), Cloud9 Editor, gMail, Mockingbird. Сайты, которые имеют внутренний код JS или выше 1 МБ.
ChiperSoft
2

jQuery не позволяет вам многократно использовать, например, MooTools .

Это философское / дизайнерское решение: jQuery не так уж много кода для сценариев «забей и забудь».

Когда вы создаете ненавязчивый опыт JavaScript (обычно только улучшения страницы), это работает очень хорошо и требует очень мало кода. Когда вы создаете Google Docs ... не так много. Вам понадобятся дополнительные концепции ООП, которые другие проекты предоставляют, например, наследование, интерфейсные механизмы и т. Д.

Cohen
источник