2012-07-20 6 views
43

Eventuali duplicati:
Framework vs. Toolkit vs. LibraryQual è la differenza tra un framework JavaScript e una libreria?

Vorrei sapere qual è la differenza tra un framework JavaScript e una biblioteca utilizzando alcuni esempi.

Ad esempio, jquery, backbone.js e gelsomino sono strutture o librerie JavaScript? E perché?

Potete fornire qualche esempio di framework JavaScript e una biblioteca con la frase Don't call Us, We'll call You.

+1

Non credo che ci sia una vera risposta a questo. Sono una specie di termini sovrapposti. – Peter

+0

Generalmente un "framework" implica un contesto di esecuzione [speciale] mentre una "libreria" è solo un'API esterna che viene utilizzata. Tuttavia, con questa definizione, un jQuery Plugin userebbe il "framework jQuery" .. in ogni caso, non votando per chiudere poiché si tratta di una domanda soft prevalentemente a risposta aperta. –

+0

http://chat.stackoverflow.com/transcript/message/4603815#4603815 Vedi anche http://en.wikipedia.org/wiki/Software_framework – Esailija

risposta

50

Comunque Anche questa domanda è altamente soggettiva, la mia opinione personale su quei due è questa:

  • quadro : questo descrive una determinata struttura di "come" dovresti presentare il tuo codice. Praticamente come un modello di codice, insieme ad alcuni aiutanti, costruttori ecc. Per risolvere/semplificare un problema specifico o portare la tua architettura in "ordine". Esempi, "Backbone", "requireJS", "socketIO".

  • Biblioteca: è un intero kit di strumenti che astrae altamente diversi strati, come i browser modelli/DOM/ecc anche come un buon kit di strumenti, che offre un sacco di strumenti e roba pulita con cui lavorare, che in generale, semplifica la tua esperienza di codifica. Esempi "jQuery", "MooTools", "YUI"

+1

+1 grazie per la risposta. puoi fare anche qualche esempio in merito alla frase "Non chiamarci, ti chiameremo" – js999

+0

O semplicemente possiamo dire che JQuery è una libreria e JQuery Mobile è un framework :) – Sarath

+1

@jAndy perché la documentazione Backbone dice è una libreria che puoi spiegare qui, sono solo curioso di risolvere questa confusione –

0

Una libreria JavaScript è una libreria di JavaScript pre-scritto, che consente una più facile lo sviluppo di applicazioni basate su JavaScript.

e Alcune librerie JavaScript, come YUI, sono classificate come framework poiché presentano funzionalità di stack completo e proprietà non trovate nelle librerie JavaScript generiche.

0

JavaScript è un linguaggio di scripting.

JQuery è una libreria JavaScript che gestisce molte funzioni di uso comune e gestisce anche le differenze tra, ad esempio, Internet Explorer e browser conformi agli standard. È qualcosa che puoi usare per ridurre la quantità di lavoro durante la creazione di applicazioni basate sul web.

0

Non esiste una reale definizione della differenza tra questi due, ma in generale direi che un framework è una cosa più "multi-tool" di una libreria, che di solito è molto specializzata.

Ad esempio, Sylvester è una libreria matematica e matematica vettoriale. È molto specifico nella sua funzionalità.

A framework come Prototype d'altra parte offre molto più di una serie limitata di funzionalità molto specializzate. Può persino utilizzare o consistere di più librerie internamente.

Importante: Alla fine, le persone usano "quadro" e "libreria" come meglio credono. Sfortunatamente;)

2

Un framework incapsula la funzionalità dell'applicazione comune, consentendo allo sviluppatore di concentrarsi sulle parti che sono uniche per la loro applicazione. Ciò significa che lo sviluppatore scrive pezzi di codice che vengono chiamati dal framework quando accadono varie cose; Es: backbone.js o jasmine. Le librerie sono pacchetti di codice che in genere vengono richiamati dall'applicazione per eseguire un'attività, come la manipolazione DOM o le richieste HTTP. Es: jQuery.

29

Sono d'accordo con JANDY, a mio parere un quadro impone struttura al momento il codice al fine di affrontare un particolare problema e una bibliotecaè un insieme generico di strumenti che aiutano in vari compiti, senza affrontare necessariamente la stesso problema.

A questo proposito:

  • jQuery è una libreria perché astrae un sacco di incompatibilità del browser, ma impone alcuna struttura sul vostro codice.
  • underscore.js è una libreria perché è una raccolta di utilità per manipolare strutture dati e altri gadget.
  • backbone.js è un framework perché struttura il codice front-end in modo che corrisponda al pattern MVC.
  • Jasmine è un framework perché struttura il codice in modo da poter eseguire facilmente BDD.

Per quanto riguarda il tuo esempio suggerito, quadri montare il don't call us paradigma, perché la maggior parte di essi impongono il flusso del codice (una sorta di inversion of control). Chiami le biblioteche, non chiamano il tuo codice.

Questa è un'opinione soggettiva, quindi prendila come tale.

+1

+1 grazie per la tua risposta che è molto chiara e risponde alla mia domanda. – js999

Problemi correlati