2014-11-15 11 views
14

Ich bin gefangen in einer Lösung. Ich habe MeteorJS gelernt, eine Web-App zu entwickeln, und ich bin ein Viertel meines Weges getan. Dann kommt Meteor, der erst kürzlich veröffentlicht wurde. Es hat viel Presse, Finanzierung bekommen und es hat den Vorteil, nach Cordova zu portieren. Jetzt bin ich mir nicht sicher, ob ich bei ExpressJS bleiben oder zu Meteor wechseln soll.ExpressJS vs MeteorJS

Die wichtigsten Punkte: Skalierbarkeit, Benutzerfreundlichkeit, Entwicklungseffizienz

+0

_Ich habe MeteorJS gelernt, eine Web-App zu entwickeln, und ich bin ein Viertel meiner Art done_ Ich denke, du meinst, du hast expressJS gelernt? –

Antwort

24

Express = MVC Framework in Javascript integriert und wird von Node betrieben.

Meteor = Voller Stack mit den Front-End- und Back-End-Komponenten zum Erstellen einer Echtzeitanwendung.

Um dieselbe Implementierung von Meteor mit Express zu erstellen, müssen Sie sich den MEAN-Stack ansehen, der MongoDB, Express, AngularJS und Node enthält. Sie können dasselbe in Meteor erstellen, das Sie mit dem MEAN-Stack können, Sie werden gerade mit AngularJS viel mehr lernen. Express und Angular werden in Meteor mit Meteor's Template-System und Blaze versorgt.

Ich würde bei Meteor bleiben. Es hat immer noch einige Nachteile, aber es gibt Workarounds. Es ist erstaunlich, was man in kurzer Zeit zusammenwerfen kann.

8

Du vergleichst Orangen mit Kartoffeln. Expressjs ist Backend und Meteor ist vollgestopft, so ein Vergleich ist unfair!

Ich habe mit Meteor seit 0.8 gearbeitet und ich litt in der Haut den Schmerz der Aktualisierung, Entfernung von alten wichtigen Drittanbieter-Pakete, etc. Sie bekommen die Idee. Obwohl Meteor 1,0 erreicht hat, glaube ich nicht, dass die mobile Komponente ganz fertig ist, überprüfe github Probleme damit.

Ich denke Meteor ist bereit für den Aufbau von Online-Plattformen. Wenn Sie feststellen, dass es auf dem Handy nicht gut funktioniert, können Sie Ihre Meteor-Anwendung weiterhin verwalten und eine API darüber erstellen. Sie können Pakete auf atmospherejs.com finden (oder sogar builder: router verwenden). Das ist es, was Sie mit Expressjs tun würden: Erstellen Sie eine API, die von mobilen Geräten verwendet werden kann.

Über Ihre Schlüsselpunkte der Meteor: Skalierbarkeit - Es ist möglich, Meteor zu skalieren, obwohl Sie keinen guten Artikel darüber haben, aber wenn Sie sich Kadira anschauen, hat es Arunoda geschafft, es zu skalieren. Benutzerfreundlichkeit - Es ist ziemlich einfach, am Anfang eine Meteor-Anwendung zu schreiben, aber auf lange Sicht werden Sie mit einigen Problemen konfrontiert sein, wie ich konfrontiert war. Entwicklungseffizienz - Meine Erfahrung im Team war nicht so positiv, wir hatten schlechte Architekturentwürfe und einige Bugs, weil neue Entwickler (selbst erfahrene) Meteor nicht bekommen. Beispiel: Anstelle von Collections erlauben und leugnen Regeln benutzen sie Meteor .Methoden für alles, was nicht in Sicherheit übersetzt. Einige veröffentlichen sogar die gesamte Datenbank auf dem Client und sagen: Funktioniert gut auf meinem localhost: D

Über Express: Ich habe wenig Erfahrung, aber der Vergleich mit Meteor, es ist überhaupt nicht fair. Meteor hat nicht den gleichen Zweck wie Expressjs.

Ein Vergleich mit MEAN Stapeln würde viel mehr Sinn machen: http://mean.io/

4

Express.js von Meteor ganz anders.

Meteor versucht, einen guten Rahmen für alle zu bieten, die viele Entscheidungen treffen (hoffentlich gute Entscheidungen), die aus Sicht der Anwendungsentwicklung normalerweise uninteressant sind: Welche Transportbibliothek zu verwenden, wie Daten zu synchronisieren, wie man ein wiederverwendbare API-, Sicherheits-, CRUD-Operationen mit der Datenbank usw.

Stattdessen Meteor bietet Ihnen eine einheitliche Erfahrung über den Stapel. Da es so viel Macht Kontrolle über Backend, Transport, Schnittstellen, Front-End-, Build-Tool-Kette hat - es kann viele nette Features bauen, die so viel schwieriger zusammen von Mongo + Express + Ihre Lieblings-Front-End-Framework zu kleben wäre + socket.io + grunt/schluck.

Lesen Sie den Blog von Socket.io über das Problem, wie schwierig es ist, in einzelnen Apps eine gute Nutzererfahrung zu bieten: http://rauchg.com/2014/7-principles-of-rich-web-applications/. Meteor macht viel davon + mehr. (außer für das serverseitige Rendering und Vorhersagen, zumindest jetzt).

Denken Sie darüber nach, wie viele Sicherheitslücken Sie haben werden, wenn Sie die Abstraktionen zu niedrig wählen in der Hoffnung, alles richtig umzusetzen.

+0

Meteor hat immer noch viel zu tun, wenn es um die Sicherheit geht, aber Sie haben einen guten Grund, einen komplexen Stack zu verwalten, da scheint Meteor. –

+1

@ Mário: Können Sie auf [was Meteor tun muss, wenn es um Sicherheit geht] (http://wiki.dandascalescu.com/essays/Why_Meteor#6._Security) erweitern? –