Що означає Дуглас Крокфорд, коли він каже, що jQuery не масштабує? [зачинено]


32

У розділі запитань і відповідей у цій бесіді Дуглас Крокфорд каже, що jQuery не масштабується, як і деякі інші популярні бібліотеки. Що він розуміє під цим, і що це стосується інших бібліотек, які роблять їх більш масштабованими?


Більше обговорення цього питання на JavaScript reddit: reddit.com/r/javascript/comments/h21vr/…
MatrixFrog

Не переглядаючи ціле відео, я можу сказати, що використання jQuery само по собі не підходить для односторінкових програм. Причина полягає в тому, що ви не отримуєте модель-перегляд-щось, щоб організувати свій код навколо. Поєднайте jQuery зі структурними рамками, такими як Backbone.js , Knockout.js та / або Sammy.js , і це справді дуже добре масштабується.
user16764

Я не бачив розмови, але мій 2c тут полягає в тому, що орієнтована на плагін природа звіра в поєднанні з відсутністю вказівок та інструментів для завантаження залежностей призводить до програм, де у вас є суп плагінів jQuery, як хтось із команди потребує деяких плагін для конкретного завдання, зазначений плагін включається у всьому додатку, і, врешті-решт, ви завантажуєте 342 різних плагінів jquery у всьому додатку. Це своєрідна природа звіра - він створений для того, щоб полегшити дрібніші речі ціною того, що не маючи великих понять на течії для вгору.
Wyatt Barnett

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. З цієї причини досить рідко можна знайти будь-які важкі веб-сайти з використанням jQuery. Наприклад, Mint.com побудований на YUI . Веб-служба Apple MobileMe від Apple працює на SproutCore (на головному сайті Apple використовується прототип).

Принаймні, це я думаю, що він має на увазі.


1
Гм. Я досить знайомий з jQuery, але зовсім не знайомий з YUI або будь-якою з інших програм JS. Тож, можливо, я мав би запитати, що це з YUI, прототипом тощо, що робить їх хорошими для створення великих масштабованих веб-додатків? Замість того, щоб запитувати, що у 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. Сайти, що містять або перевищують 1 Мб коду JS, написані в будинку.
ChiperSoft

2

jQuery не дозволяє використовувати багато разів, наприклад, MooTools .

Це філософія / дизайнерське рішення: jQuery - це не дуже багато коду для сценаріїв, що захищають і забувають.

Коли ви створюєте ненав’язливий досвід JavaScript (зазвичай це лише покращення сторінки), це працює дуже добре і вимагає дуже мало коду. Коли ви створюєте Google Документи ... не так вже й багато. Вам потрібно більше концепцій OOP, які піддаються іншим проектам, як спадкування, механізми, подібні до інтерфейсу тощо ...

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