2012-07-12 11 views
88

Więc słyszałem/czyta dużo o meteor.js. Samouczki sprawiają, że wydaje się bardzo sportowy jako framework, ale wciąż jestem trochę początkującym, jeśli chodzi o programowanie w Internecie.node.js kontra meteor.js jaka jest różnica?

Próbowałem przez ostatni miesiąc i pół, aby naprawdę nauczyć się node.js i dowiedzieć się, jak to wszystko razem. Podoba mi się, jak szybko i łatwo można się dostać do pracy i do społeczności, która się z nią łączy (czego przykładem może być niesamowita liczba frameworków, które można uzyskać dla Node).

Ale co z meteorytem? Jakie są rzeczywiste zalety tego i jaka jest różnica? Czy ktoś zaczął jako użytkownik node.js i "konwertował", czy jest to jeszcze bardziej ciekawy nowy framework?

Odpowiedz

159

Luźna analogia brzmi: "Meteor jest węzłem, ponieważ Rails jest Rubinem". Jest to duża, opiniotwórcza struktura korzystająca z węzła na serwerze. Sam węzeł to tylko szkielet niskopoziomowy zapewniający funkcje do wysyłania i odbierania żądań HTTP oraz wykonywania innych operacji we/wy.

Meteor jest radykalnie ambitny: Domyślnie każda wyświetlana strona jest w rzeczywistości szablonem Handlebars, który jest zsynchronizowany z serwerem. Wypróbuj Leaderboard example: Tworzysz szablon, który po prostu mówi "Podaj nazwy i wyniki", a za każdym razem, gdy dowolny klient zmieni nazwę lub wynik, strona będzie aktualizowana o nowe dane - nie tylko dla tego klienta, ale dla wszystkich przeglądających stronę .

Kolejna różnica: podczas gdy sam węzeł jest stabilny i szeroko stosowany w produkcji, Meteor jest w stanie "podglądu". Istnieją poważne błędy, a niektóre rzeczy, które nie pasują do meteorologicznego modelu konceptualizacji danych (takich jak animacje), są bardzo trudne do zrobienia.

Jeśli lubisz bawić się nowymi technologiami, daj Meteorowi zakręt. Jeśli chcesz uzyskać bardziej tradycyjny, stabilny framework sieciowy zbudowany na węźle, spójrz na Express.

+2

Czy Meteor poprawił swoje "poważne błędy" od zeszłego roku? – danorton

+3

@danorton Tak, zdecydowanie bym tak powiedział. W przypadku niektórych zastosowań Meteor jest teraz całkiem niezły, a także z pewnością czerpie przyjemność z rozwoju. –

+4

Należy również zauważyć, że ta odpowiedź nie będzie w pełni dokładna, ponieważ Meteor jest w fazie rozwoju i dostał znaczny wkład finansowy, który przyspieszy czas rozwoju, miejmy nadzieję, że wydostanie go z etapu "podglądu". – Goddard

12

Meteor to framework zbudowany ontop z node.js. Korzysta z node.js do wdrożenia, ale ma kilka różnic.

Kluczowy klucz używa własnego systemu pakowania zamiast systemu opartego na module węzła. Ułatwia tworzenie aplikacji internetowych przy użyciu węzła. Węzeł może być używany do różnych rzeczy i sam w sobie jest straszny w dostarczaniu dynamicznych treści internetowych. Biblioteki Meteora ułatwiają to wszystko.

+4

wersja 0.6.0 ma teraz bezpośrednie wsparcie dla modułów NPM http://meteor.com/blog/2013/04/ 04/meteor-060-brand-new-dystrybucja-system-app-pakiety-npm-integracja –

9

Siła Meteor jest w jego funkcji aktualizacji w czasie rzeczywistym, która działa dobrze dla niektórych aplikacji społecznościowych, które widzisz obecnie, gdzie można zobaczyć aktualizacje dla każdego nad czym pracujesz. Te aktualizacje koncentrują się wokół replikowania podzbiorów kolekcji MongoDB pod okładkami jako lokalne mini-mongo (ich podzbiory MongoDB po stronie klienta) aktualizacji bazy danych w przeglądarce internetowej (co powoduje uruchamianie wielu zdarzeń renderowania w szablonach). Ostatnia część dotycząca wielu aktualizacji renderowania jest również słabością. Jeśli chcesz, aby Twój interfejs użytkownika kontrolował odświeżanie interfejsu użytkownika (np. Klasyczne strony AJAX jQuery, w których ładujesz kod HTML i kontrolujesz wszystkie wywołania AJAX i aktualizacje interfejsu użytkownika), będziesz walczył z tym mechanizmem.

Meteor używa ładnego zestawu wtyczek Node.js (Handlebars.js, Spark.js, Bootstrap css itp., Ale używa własnego mechanizmu pakującego zamiast npm) pod spodem wzdłuż w/MongoDB dla warstwy pamięci masowej Muszę myśleć. Ale czasami kończy się to walką ... np. Jeśli chcesz dostosować motyw Bootstrap, uruchamia on sekwencję ładowania pliku responsive.css Bootstrapa, więc nie jest już responsywna (ale prawdopodobnie naprawi się, gdy Bootstrap 3.0 jest już dostępny wkrótce).

Tak jak wszystkie "pełne struktury stosu", wszystko działa świetnie, o ile Twoja aplikacja jest zgodna z zamierzeniami.Po przekroczeniu tego zakresu i przesunięciu granic krawędzi, możesz zakończyć walkę z ramą ...

+2

Meteor V0.6.0 + ma integrację npm: http://www.meteor.com/blog/2013/04/04/meteor-060-brand-new-distribution-system-app-packages-npm-integration –

Powiązane problemy