2012-07-12 13 views
88

Quindi ho ascoltato/letto molto su meteor.js. I tutorial lo fanno sembrare molto sportivo come framework, ma sono ancora un po 'novizio quando si parla di programmazione web.node.js vs. mete.js qual è la differenza?

Ho provato durante l'ultimo mese e mezzo per imparare davvero node.js e capire come tutto si riunisce. Mi piace la rapidità e la facilità di messa in funzione e la comunità che ne deriva (il che è esemplificato dal numero incredibile di strutture che è possibile ottenere per Node).

Ma che mi dici della meteora? Quali sono i suoi reali vantaggi e qual è la differenza? Qualcuno ha iniziato come utente node.js e 'convertito' o è ancora più un curioso nuovo framework?

risposta

159

Un'analogia allentata è "Meteor sta per nodo come Rails sta per Ruby". Si tratta di un framework ampio e motivato che utilizza il nodo sul server. Il nodo stesso è solo una struttura di basso livello che fornisce funzioni per l'invio e la ricezione di richieste HTTP e l'esecuzione di altri I/O.

Meteor è radicalmente ambizioso: per impostazione predefinita, ogni pagina utilizzata è in realtà un modello Handlebars che viene mantenuto sincronizzato con il server. Prova il Leaderboard example: crei un modello che dice semplicemente "Elenca nomi e punteggi" e ogni volta che un cliente modifica un nome o un punteggio, la pagina si aggiorna con i nuovi dati, non solo per quel cliente, ma per tutti quelli che visualizzano la pagina .

Un'altra differenza: mentre il nodo stesso è stabile e ampiamente utilizzato nella produzione, Meteor è in uno stato di "anteprima". Ci sono dei bug seri, e certe cose che non si adattano al modello concettuale di Meteor (come le animazioni) sono molto difficili da fare.

Se ami giocare con le nuove tecnologie, dai un tocco a Meteor. Se vuoi un framework web più tradizionale e stabile, costruito su Node, dai un'occhiata a Express.

+2

Meteor ha migliorato i "bug gravi" dall'anno scorso? – danorton

+3

@danorton Sì, lo direi sicuramente. Per alcune applicazioni, Meteor è ora abbastanza vitale, oltre che un piacere assoluto da sviluppare. –

+4

Si noti inoltre che questa risposta alla fine non sarà completamente accurata poiché Meteor è in sviluppo attivo e ha ottenuto notevoli contributi finanziari che accelerano i tempi di sviluppo, sperando di portarlo fuori dalla sua fase di "anteprima". – Goddard

12

Meteor è un framework costruito ontop di node.js. Utilizza node.js per la distribuzione ma presenta diverse differenze.

La chiave è che utilizza un proprio sistema di pacchettizzazione invece del sistema basato su modulo del nodo. Semplifica la creazione di applicazioni Web tramite Node. Il nodo può essere utilizzato per una varietà di cose e da solo è terribile a servire contenuti web dinamici. Le librerie di Meteor rendono tutto questo facile.

+4

versione 0.6.0 ora ha il supporto diretto per i moduli NPM http://meteor.com/blog/2013/04/ 04/meteor-060-brand-new-distribution-system-app-packages-npm-integration –

9

La forza di Meteor è nella sua funzionalità di aggiornamento in tempo reale che funziona bene per alcune delle applicazioni social che vedi al giorno d'oggi in cui vedi gli aggiornamenti di tutti per quello su cui stai lavorando. Questi aggiornamenti riguardano i sottoinsiemi di replica di una raccolta MongoDB sotto le copertine come mini-mongo locali (il loro sottoinsieme MongoDB lato client) gli aggiornamenti del database sul browser Web (il che causa l'attivazione di più eventi di rendering sui modelli). Anche l'ultima parte relativa a più aggiornamenti di rendering è la debolezza. Se vuoi che la tua interfaccia utente controlli quando l'interfaccia utente si aggiorna (ad esempio, le classiche pagine JQuery AJAX in cui carichi l'HTML e controlli tutte le chiamate AJAX e gli aggiornamenti dell'interfaccia utente), dovrai combattere questo meccanismo.

Meteor utilizza una bella serie di plugin Node.js (Handlebars.js, Spark.js, Bootstrap css, ecc. Ma utilizzando il proprio meccanismo di pacchettizzazione invece di npm) sotto w/MongoDB per il livello di archiviazione che si indossa devo pensarci. Ma a volte finisci anche tu a litigare ... ad esempio, se vuoi personalizzare il tema Bootstrap, incasina la sequenza di caricamento del file responsive.css di Bootstrap in modo che non sia più reattivo (ma questo probabilmente si risolverà da solo quando Bootstrap 3.0 è rilasciato presto).

Così come tutti i "framework full stack", le cose funzionano alla grande finché l'app si adatta a ciò che è previsto.Una volta oltrepassato tale ambito e spingendo i limiti del bordo, si potrebbe finire per combattere il framework ...

+2

Meteor V0.6.0 + ha l'integrazione di npm: http://www.meteor.com/blog/2013/04/04/meteor-060-brand-new-distribution-system-app-packages-npm-integration –

Problemi correlati