node.js a meteor.js jaka jest różnica? [Zamknięte]

88

Tak więc dużo słyszałem / czytałem o meteor.js. Samouczki sprawiają, że jako framework wydaje się bardzo sportowy, ale nadal jestem trochę nowicjuszem, jeśli chodzi o programowanie internetowe.

Przez ostatnie półtora miesiąca próbowałem naprawdę nauczyć się node.js i dowiedzieć się, jak to wszystko się łączy. Podoba mi się to, jak szybko i łatwo można rozpocząć pracę oraz społeczność, która się z tym wiąże (czego przykładem jest oszałamiająca liczba frameworków, które można uzyskać dla Node).

Ale co z meteor? Jakie są prawdziwe zalety tego i jaka jest różnica? Czy ktoś zaczynał jako użytkownik node.js i „przekonwertował”, czy nadal jest to bardziej ciekawy nowy framework?

ZacAttack
źródło

Odpowiedzi:

159

Luźna analogia brzmi: „Meteor jest dla węzła tak, jak Rails dla Rubiego”. Jest to duży, uparty framework, który używa Node na serwerze. Sam węzeł jest tylko strukturą niskiego poziomu zapewniającą funkcje 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 Kierownica, który jest zsynchronizowany z serwerem. Wypróbuj przykład tabeli liderów : tworzysz szablon, który mówi po prostu „Wypisz nazwiska i wyniki” i za każdym razem, gdy klient zmieni imię lub wynik, strona zostanie zaktualizowana o nowe dane - nie tylko dla tego klienta, ale dla każdego, kto przegląda strona.

Inna różnica: podczas gdy sam Node jest stabilny i szeroko stosowany w produkcji, Meteor jest w stanie „podglądu”. Istnieją poważne błędy, a pewne rzeczy, które nie pasują do modelu koncepcyjnego zorientowanego na dane firmy Meteor (takie jak animacje), są bardzo trudne do wykonania.

Jeśli lubisz bawić się nowymi technologiami, zakręć Meteor. Jeśli potrzebujesz bardziej tradycyjnej, stabilnej platformy internetowej opartej na Node, spójrz na Express .

Trevor Burnham
źródło
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 opłacalny, a rozwój z nim jest absolutną przyjemnością.
Trevor Burnham
4
Należy również zauważyć, że ta odpowiedź ostatecznie nie będzie całkowicie dokładna, ponieważ Meteor jest w trakcie aktywnego rozwoju i otrzymał znaczny wkład finansowy, który przyspiesza czas opracowywania, miejmy nadzieję, że wyprowadzi go z etapu „wstępnego”.
Goddard,
12

Meteor to framework zbudowany na bazie node.js. Używa node.js do wdrożenia, ale ma kilka różnic.

Kluczowe jest to, że używa własnego systemu pakowania zamiast systemu opartego na modułach węzła. Ułatwia tworzenie aplikacji internetowych przy użyciu Node. Węzeł może być używany do różnych celów i sam w sobie jest straszny w udostępnianiu dynamicznej zawartości internetowej. Biblioteki Meteor ułatwiają to wszystko.

Akszat
źródło
4
wersja 0.6.0 ma teraz bezpośrednie wsparcie dla modułów NPM meteor.com/blog/2013/04/04/ ...
Max Hodges
9

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

Meteor używa ładnego stosu wtyczek Node.js (Handlebars.js, Spark.js, Bootstrap css itp., Ale używa własnego mechanizmu pakowania zamiast npm) pod spodem w / MongoDB dla warstwy pamięci, której nie musisz myśleć o. Ale czasami kończysz również z tym walcząc ... np. Jeśli chcesz dostosować motyw Bootstrap, psuje sekwencję ładowania pliku responsive.css Bootstrapa, więc nie reaguje już (ale prawdopodobnie naprawi się sam, gdy Bootstrap 3.0 zostanie wkrótce wydany).

Tak jak wszystkie „frameworki z pełnym stosem”, wszystko działa świetnie, o ile Twoja aplikacja jest zgodna z przeznaczeniem. Gdy wyjdziesz poza ten zakres i przekroczysz granice, możesz skończyć walką z ramami ...

kenyee
źródło
2
Meteor V0.6.0 + ma integrację npm: meteor.com/blog/2013/04/04/…
Manav Kataria