Cosa significa Douglas Crockford quando dice che jQuery non si ridimensiona? [chiuso]


32

Nella sezione Domande e risposte di questo discorso , Douglas Crockford afferma che jQuery non si ridimensiona così come alcune altre librerie popolari. Che cosa intende con questo, e cosa c'è nelle altre librerie che le rende più scalabili?


Altre discussioni su questo al JavaScript reddit: reddit.com/r/javascript/comments/h21vr/…
MatrixFrog

Senza guardare l'intero video, posso dire che l'uso di jQuery da solo non si adatta bene alle applicazioni a pagina singola. Il motivo è che non si ottiene un framework modello-vista-qualcosa per organizzare il codice. Combina jQuery con framework strutturali come Backbone.js , Knockout.js e / o Sammy.js , tuttavia, e si adatta molto bene.
user16764,

Non ho visto il discorso, ma il mio 2c qui è che la natura incentrata sul plug-in della bestia combinata con la mancanza di guida e strumenti per caricare le dipendenze porta ad app in cui hai una minestra di plugin jQuery poiché qualcuno nel team ha bisogno di alcuni plug-in per un'attività specifica, detto plug-in viene incluso a livello di app e alla fine si caricano 342 diversi plug-in jquery nell'intera app. È un po 'la natura della bestia - è progettata per rendere più facile la roba su scala ridotta a costo di non avere grandi concetti a monte da ingannare.
Wyatt Barnett,

4
È curioso che 3 risposte su 4 inizino con una variazione di "Non ho visto il video". In che modo puoi chiarire cosa intendesse Mr. Crockford senza guardare il video?
Corbin,

Beh, non ha detto molto. Come ha detto uno dei rispondenti, alla fine è stata una specie di osservazione alla mano nella sezione Domande e risposte. Ma fai un buon punto.
MatrixFrog,

Risposte:


41

Se guardi il video, non parla formalmente di jQuery. È una risposta rapida a una domanda un po 'offtopica da parte di qualcuno dopo la presentazione .... alla fine della presentazione, circa minuto 1:29.

Dice molte cose positive di jQuery. La parte su questo non si adatta bene, dice che non pensa che jQuery si ridimensioni molto bene per applicazioni molto complicate (confrontandolo con altre cose come YUI). .


29
+1 per guardare effettivamente il video prima di pubblicare una risposta. (-:
KM.

3

È difficile per me dire senza guardare il video, ma la mia ipotesi è che è perché jQuery non offre tutte le funzionalità della maggior parte delle altre librerie che rendono più facile la programmazione JavaScript. Lo scopo di jQuery è di semplificare la manipolazione del DOM semplificando l'indirizzamento degli elementi tramite selettori CSS e fornendo un framework semplice per alterare tali elementi. Offre alcune altre bellezze come richieste Ajax , gestione degli eventi di base, templating e alcune altre funzionalità rudimentali, ma questo è tutto.

Altre librerie come Prototype , MooTools , Ext JS e Dojo forniscono moltissime altre funzionalità per la creazione di oggetti, la gestione di array e raccolte, la manipolazione di stringhe e l'esecuzione di tutte le altre cose insignificanti che noi programmatori ci aspettiamo di poter fare.

In breve, a jQuery mancano gli strumenti desiderabili per le applicazioni JavaScript su larga scala. È abbastanza raro trovare siti pesanti molto JavaScript usando jQuery, proprio per questo motivo. Ad esempio, Mint.com è basato su YUI . Il servizio Web MobileMe di Apple funziona su SproutCore (il sito principale di Apple utilizza Prototype).

Almeno, questo è ciò che penso significhi.


1
Hm. Conosco abbastanza bene jQuery, ma non ho molta familiarità con YUI o con qualsiasi altro framework JS. Quindi forse avrei dovuto chiedere, cosa c'è in YUI, Prototype, ecc. Che li rendono buoni per la creazione di app Web di grandi dimensioni e scalabili? Invece di chiedere ciò che jQuery non ha ...
MatrixFrog

6
"È abbastanza raro trovare siti molto pesanti su JS usando jQuery" .... mentre stiamo inventando qualcosa, puoi inventare qualcosa su YUI che richiede meno di 10 MB di file?
Ken,

@ken Se stai caricando l'intera libreria YUI sulla tua pagina, la stai sbagliando. C'è una ragione per cui Yahoo offre un caricatore dinamico. E se non sei d'accordo con la mia valutazione, fornisci esempi del contrario. Mostraci un'applicazione su larga scala basata su jQuery.
ChiperSoft,

4
Definire "grande scala" quindi. Lo stack SE utilizza jQuery.
Ken,

SE non è principalmente basato su JS, utilizza jQuery come la maggior parte di tutti usa jQuery: associazione di eventi di base, semplici richieste AJAX, manipolazione del DOM. Su larga scala significa intere applicazioni costruite interamente su JS; siti non basati su pagina. Stiamo parlando di cose come quelle che ho menzionato sopra (Mint.com e MobileMe), Cloud9 Editor, gMail, Mockingbird. Siti con almeno 1 MB di codice JS scritto internamente.
ChiperSoft,

2

jQuery non ti consente un sacco di riutilizzo come MooTools per esempio.

È una decisione di filosofia / design: jQuery non è un sacco di codice per gli scenari di incendio e dimenticanza.

Quando si creano esperienze JavaScript discrete (di solito solo miglioramenti della pagina), questo funziona molto bene e richiede pochissimo codice. Quando costruisci Google Docs ... non così tanto. Avrai bisogno di più concetti OOP che altri progetti espongono come eredità, meccanismi simili all'interfaccia, ecc ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.