Що означає Дуглас Крокфорд, коли він каже, що 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.