Blog

Meteor

Jan Toebes

Aktualisiert Oktober 22, 2025
5 Minuten

Haben Sie jemals AngularJS als Frontend-Framework verwendet? Dann sollten Sie unbedingt Meteor ausprobieren! Während AngularJS nur als Client-Framework leistungsfähig ist, ist Meteor als Full-Stack-Framework großartig. Das bedeutet, dass Sie Ihren Code einfach in einer Sprache schreiben, als ob es gar kein Back- und Frontend gibt. Sie erhalten sogar einen kostenlosen Android- und IOS-Client. Meteor ist so unglaublich einfach, dass Sie von Anfang an produktiv sind.

Wo Meteoriten kantig zuschlagen

Eine der besten Eigenschaften von Meteor ist, dass Sie eine gemeinsame Codebasis für Frontend und Backend haben. Im nächsten Codeschnipsel sehen Sie eine Datei, die von Backend und Frontend gemeinsam genutzt wird: [code language="javascript" title="Eine gemeinsame Datei, die von Backend und Frontend verwendet wird"] // Gemeinsame und synchronisierte Sammlung für Client, Server und Datenbank Todos = new Mongo.Collection('todos'); // Gemeinsame Validierungslogik validateTodo = function (todo) { var errors = {}; if (!todo.title) todo.title = "Bitte geben Sie einen Titel ein"; return errors; } [/code] Können Sie sich vorstellen, wie schön der obige Code ist?

[caption id="" align="alignright" width="201"]Scannen 04 Jan 2015 18.48Seite4 Mit einer Codebasis erhalten Sie den gesamten Stack![/caption]

  1. Sowohl in der Backend-Datei als auch in der Frontend-Datei kann man auf die Todos-Sammlung zugreifen und sie abfragen. Meteor ist für die Synchronisierung der Todos verantwortlich. Selbst wenn ein anderer Benutzer ein Element hinzufügt, ist es für Ihren Client direkt sichtbar. Meteor erreicht dies durch eine clientseitige Mongo-Implementierung (MiniMongo).
  2. Man kann die Validierungsregeln einmal schreiben! Und sie werden sowohl auf dem Front-End als auch auf dem Back-End ausgeführt. So können Sie meinem Benutzer eine schnelle Rückmeldung über ungültige Eingaben geben, aber Sie können auch garantieren, dass keine ungültigen Daten vom Backend verarbeitet werden (wenn jemand den Client umgeht). Und das alles ohne duplizierten Code.

Ein weiteres Killermerkmal von Meteor ist, dass es sofort funktioniert und leicht zu verstehen ist. Angular kann ein wenig überwältigend sein. Sie müssen Konzepte wie Direktiven, Services, Factories, Filter, isolierte Scopes und Transclusion lernen. Für ein erstes Gerüst müssen Sie Grunt, Yeoman und so weiter kennen. Mit Meteor kann jeder Entwickler innerhalb weniger Minuten eine vollständige Anwendung erstellen, ausführen und bereitstellen. Nach der Installation von Meteor können Sie Ihre Anwendung innerhalb von Sekunden ausführen. [code title="Einfache Schritte zur Installation, Ausführung und Bereitstellung einer Meteor-App"] $ curl https://install.meteor.com | /bin/sh $ meteor create dummyapp $ cd dummyapp $ meteor $ meteor deploy dummyapp.meteor.com [/code]

[caption id="" align="alignright" width="200"]Bildschirmfoto 2015-01-04 um 19.49.08 Meteor Dummy-Anwendung[/caption]

Another nice aspect of meteor is that it uses DDP, the Distributed Data Protocol. The team invented the protocol and they are heavily promoting it as "REST for websockets". It is a simple, pragmatic approach allowing it to be used to deliver live updates as data changes in the backend. Remember that this works all out of the box. This talk walks you through the concepts of it. But the result is that if you change data on a client it will be updated immediately on the other client. And there is so much more, like...

  1. Latenz-Ausgleich. Auf dem Client holt Meteor Daten vor und simuliert Modelle, damit es so aussieht, als würden die Methodenaufrufe des Servers sofort zurückkehren.
  2. Meteor ist Open Source und lässt sich mit bestehenden Open Source-Tools und -Frameworks integrieren.
  3. Dienste (wie ein offizieller Paketserver und eine Build-Farm).
  4. Tools für die Befehlszeile
  5. Heiße Einsätze

Wo der Meteor zu kurz kommt

Ja, Meteor ist nicht die Antwort auf alle Ihre Probleme. Der Grund, warum ich Angular für meine professionelle Arbeit immer noch vor Meteor bevorzuge, ist, dass das View-Framework von Angular rockt. Es macht es einfach, Ihren Client-Code in testbare Einheiten zu strukturieren und diese über Dependency Injection zu verbinden. Mit Angular können Sie Ihr HTML von Ihrem Javascript trennen. Bei Meteor enthält Ihr Javascript HTML-Elemente, (weil deren UI-Bibliothek auf Handlebars basiert. Das macht das Testen schwieriger und große Projekte werden sehr schnell unstrukturiert. Eine weitere Schwachstelle tritt auf, wenn Ihr Projekt bereits ein Backend hat. Wenn Sie sich für Meteor entscheiden, entscheiden Sie sich für den gesamten Stack. Das bedeutet: Mongo als Datenbank und Node.js als Backend. Obwohl Sie in der Lage sind, leistungsstarke Anwendungen zu erstellen, erlaubt Ihnen Meteor nicht, diesen Stack (einfach) zu ändern.

Unter der Haube

Meteor besteht aus mehreren Unterprojekten. Genau genommen ist es eine Bibliothek von Bibliotheken. Eigentlich ist es ein Stack; ein Standardsatz von Kernpaketen, die so konzipiert sind, dass sie gut zusammenarbeiten:img class="wp-image-14566" src="https://storage.googleapis.com/xebia-blog/1/2015/01/Scan-04-Jan-2015-18.48-page1.jpg" alt="" width="200" height="203" /> Von Meteor verwendete Komponenten

  1. Um Meteor reaktiv zu machen, haben sie die Komponenten blaze und tracker integriert. Die Komponente blaze basiert stark auf der Komponente handlebars.
  2. Die DDP-Komponente ist ein neues, von Meteor beschriebenes Protokoll für die moderne Client-Server-Kommunikation.
  3. Livequery und die Full-Stack-Datenbank nehmen Ihnen die Mühe der Datensynchronisierung zwischen Datenbank, Backend und Frontend ab! Sie müssen nicht mehr darüber nachdenken.
  4. Das Isobuild-Paket ist ein einheitliches Build-System für Browser, Server und Mobilgeräte.

Fazit

Wenn Sie in kürzester Zeit eine Website oder eine mobile App mit einem Backend erstellen und dabei viele Funktionen sofort nutzen möchten, ist Meteor ein sehr interessantes Tool. Wenn Sie mehr Kontrolle haben oder eine Verbindung zu einem bestehenden Backend herstellen möchten, dann ist Meteor wahrscheinlich weniger geeignet. Passend zu diesem Artikel können Sie sich diese Präsentation ansehen, die ich kürzlich gehalten habe.

Verfasst von

Jan Toebes

Contact

Let’s discuss how we can support your journey.