Dois-je utiliser Meteor? Pourquoi?

MISE À JOUR : J’ai développé cette réponse en une analyse beaucoup plus complète et équilibrée sur quand utiliser et quand ne pas utiliser Meteor – voir Pourquoi Meteor – Wiki de Dan Dascalescu.

Je recommande plutôt de lire l’article ci-dessus. La réponse ci-dessous est antérieure à la sortie de Meteor v1.0.


L’analyse de rentabilisation de Meteor

Meteor est un framework d’applications Web open source, prêt pour la production, en temps réel et multiplateforme, construit sur une technologie éprouvée, qui permet un prototypage très rapide et produit du code multiplateforme (Web, Android, iOS). Une application de type Tinder a été construite à partir de zéro avec Meteor en 6 semaines, plusieurs startups construites avec Meteor ont déjà été acquises et le nombre d’entreprises utilisant Meteor augmente.

Meteor Development Group a reçu un financement de 11,2 millions de dollars de la prestigieuse société de capital-risque Andreessen Horowitz, qui a également investi dans Twitter, Airbnb et Foursquare. Fondée en 2011, Meteor était une startup incubée par YCombinator, l’incubateur de startup le plus performant. Les fondateurs et les premiers employés de Meteor incluent d’anciens Googlers, les premiers employés d’Asana et le créateur d’Etherpad.

Le cas d’ingénierie pour Meteor

Meteor est un framework client-base de données-serveur, entièrement écrit en JavaScript. Il fonctionne avec votre framework frontal existant comme Famo.us, Ember, React ou Backbone (ou même AngularJS) (jQuery est inclus), et avec votre backend via des API REST ou un DDP, une publication / abonnement simple et puissante protocole. Le côté serveur s’exécute sur Node.js et l’interface avec MongoDB est transparente.

Ce qui rend Meteor facile à apprendre

  • Meteor a été conçu pour être facile à apprendre, y compris par les débutants. L’un des sept principes de Meteor est «La simplicité est synonyme de productivité».
  • JavaScript partout – sur le serveur (Node.js, Underscore) et sur le client (jQuery). Vous avez seulement besoin de connaître une langue.
  • Même interface MongoDB sur le client et le serveur (pas besoin d’apprendre un nouveau code de modèle), via une instance MiniMongo en mémoire
  • Pas de concepts ésotériques (contrairement à Angular), une documentation claire, des conventions de codage bien établies et une courbe d’apprentissage superficielle. Une application de chat simple peut être créée par une personne familiarisée avec JavaScript en une heure environ.
  • Meteor vous permet d’accéder immédiatement à votre première application Web déployée en direct. Pour les débutants, avoir votre propre projet tangible à pirater est extrêmement motivant, et cela vous rend beaucoup plus susceptible de réussir dans votre objectif de devenir développeur.
  • Il existe un livre unanimement reconnu comme le meilleur pour apprendre Meteor: Découvrez Meteor, par les auteurs de nombreux packages Meteor, y compris le référentiel de packages lui-même, Atmosphere.

Base de données

Meteor prend en charge MongoDB en natif et le futur support de base de données arrive, avec l’acquisition de FathomDB. La prise en charge de Redis.io est déjà en version bêta.
L’architecture pub / sub fait que les changements dans un client se propagent de manière transparente à tous les clients abonnés, sans avoir à écrire de code spécial.

Vue

Tout comme avec Backbone, Meteor ne dépend pas du remplissage de la logique d’application dans votre code HTML. Il n’y a pas de JavaScript intégré, de logique de modèle ou de code de raccordement de liaison dans les attributs data ou ng, et pas besoin d’inventer vos propres balises HTML.

Mieux encore, les modèles déclaratifs de Meteor, le système de modèles de type guidon et la liaison de données unidirectionnelle vous évitent d’avoir à lier la fonction de rendu de votre vue à l’événement “changement” du modèle, comme vous l’avez fait avec Backbone.

Jade est également pris en charge pour les modèles.

Grâce à ses modèles sans logique et au rechargement automatique du site Web sur les modifications de code et de CSS, Meteor est également très facile à utiliser par les concepteurs de sites Web – ils n’ont pas besoin de connaître le code ou les directives HTML personnalisées.

Sécurité

Meteor a une sécurité intégrée contre de nombreuses préoccupations communes et répertorie les aspects indépendants du cadre à surveiller.

  1. Les principes de conception de la sécurité de Meteor incluent le code contre les données et la séparation client contre serveur, les connexions avec état qui doivent être délibérément authentifiées et autoriser / refuser les règles d’accès à la base de données.
  2. Toutes les entrées utilisateur sont échappées HTML lorsqu’elles sont affichées de nouveau au client, grâce aux modèles {{…}} de type guidon – une première défense contre XSS. En outre, la prise en charge de la politique de sécurité du contenu est fournie par les packages de base thebrowser-policy- *. La politique de navigation offre un mécanisme très facile à utiliser mais puissant pour empêcher une grande variété d’attaques avec seulement quelques lignes de code. Enfin, les consignes de sécurité de Meteor conseillent sur la façon de déjouer les types d’attaque restants (désinfecter les URL saisies par l’utilisateur et CSS).
  3. MongoDB est par nature plus résistant aux injections de base de données que SQL car il n’analyse pas les entrées, mais il y a encore des choses à surveiller. Un exemple est de passer des expressions où des chaînes étaient attendues:

    // user_supplied_id est “{$ ne: ‘nonexistingstring’}”
    Users.find ({id: user_supplied_id});

    Cela renvoie tous les utilisateurs, lorsque le programmeur s’attendait à ce qu’un identifiant particulier soit transmis. Meteor se défend contre cela de plusieurs façons:

    • Les données doivent être explicitement publiées par le serveur pour qu’une requête comme celle ci-dessus les renvoie dans la console du navigateur
    • Les opérations sur les collections côté client sont limitées. Par exemple, les enregistrements ne peuvent être mis à jour qu’un par un. Le client ne peut pas exécuter des sélecteurs arbitraires car cela permettrait des attaques sophistiquées telles que la recherche binaire de valeurs d’informations d’identification.
    • Le package de vérification comprend des fonctions de vérification de modèle utiles pour vérifier les types et la structure des variables et une bibliothèque extensible de modèles pour spécifier les types que vous attendez.
    • Le package audit-argument-checks garantit que votre application dispose d’une couverture de vérification complète pour tous les arguments des méthodes et des fonctions de publication.
  4. En utilisant le stockage du navigateur au lieu des cookies de session détournables, les attaques CSRF sont impossibles.
  5. Meteor utilise le meilleur crypto pour stocker les mots de passe hachés – bcrypt.
  6. Meteor fournit un contrôle précis sur les appels de méthode et l’accès à la base de données – voir Découvrir Meteor – Mettre le dossier de sécurité en ordre.
  7. Pour les paranoïaques, il existe une couche de chiffrement de base de données complète qui s’exécute au-dessus de Meteor, appelée Mylar. Il stocke uniquement les données chiffrées sur le serveur et déchiffre les données uniquement dans les navigateurs des utilisateurs.

Vous devez toujours être conscient des problèmes liés aux valeurs mobilières, mais ceux-ci s’appliquent à n’importe quel cadre Web. Meteor s’occupe automatiquement des problèmes les plus courants.

Outillage

Pas besoin de Grunt ou Bower. Meteor inclut la compilation SASS / LESS, CoffeeScript vers JavaScript et la concaténation et la minification. Tout cela se produit automatiquement et de manière transparente lorsque vous exécutez votre application et lorsque vous modifiez votre code.
Le push de code à chaud signifie que les utilisateurs sont mis à niveau de manière transparente lorsque le HTML, CSS ou JavaScript change, avec une persistance complète des champs de formulaire. Votre application serveur n’est pas redémarrée si tout ce qui change est le code client. Si seul le CSS change, seul le CSS est rechargé dans le client. De plus, il n’est pas nécessaire de soumettre des mises à jour via l’App Store.

Support mobile

Les applications mobiles peuvent être générées à partir de la même base de code, en utilisant PhoneGap / Cordova. Une application construite avec Meteor + Cordova + Famo.us a des capacités de données en temps réel, tout en étant multi-plateforme et native.

Je ne saurais trop souligner à quel point c’est cool. Vous n’avez pas besoin d’apprendre Java, Swift et Objective C pour publier une application native. Vous n’avez pas besoin d’engager des développeurs distincts pour vous créer une application mobile; il vous suffit de créer l’interface utilisateur de votre application Web pour être réactif, ce que vous devez faire de toute façon, car une grande partie du trafic proviendra des appareils mobiles, en particulier pendant la phase d’acquisition des utilisateurs. Vous n’avez pas besoin de synchroniser trois bases de code – ce qui peut être extrêmement douloureux même dans les entreprises établies. Par exemple, MyFitnessPal a une très belle application iOS, mais son homologue Android semble avoir quelques années de retard et l’interface utilisateur Web est radicalement différente des deux.

Écosystème

Atmosphere, le référentiel de packages de Meteor, contient environ 5 000 packages. Meteor peut également utiliser l’un des plus de 100 000 modules intégrés de l’écosystème Node.js.

Cela fait de Meteor un cadre beaucoup plus riche que Backbone, qui stipule expressément que «vous pouvez lire et comprendre la source d’un après-midi».

Exemple: alors qu’un système de connexion prenant en charge OAuth via Facebook, Twitter ou GitHub nécessite plusieurs centaines de lignes de code avec Angular, dans Meteor, tout ce que vous avez à faire est d’ajouter un package et de spécifier où placer le bouton de connexion. La réinitialisation du mot de passe est incluse.

J’ai utilisé Meteor pour développer des applications en production, pour de vraies entreprises, qui font de l’argent.

Êtes-vous familiarisé avec JavaScript (ou souhaitez-vous apprendre)? Vous avez une idée pour une application qui bénéficierait de mises à jour de données “en temps réel” pour tous les clients connectés? Si c’est le cas, Meteor est probablement ce que vous recherchez. En fait, même si vous êtes un “nouveau” développeur web, j’irais bien. Meteor est un excellent outil.

Même s’il est en pré-version, cela fonctionne. Si vous rencontrez un bug, vous pouvez soit le corriger vous-même, soit le publier dans la communauté et il sera (selon toute probabilité) corrigé s’il s’agit d’un bug valide.

Il existe des hacks pour utiliser des bases de données autres que Mongo, mais je suis juste allé avec Mongo.

Une sorte de réponse décousue, mais je ne veux pas avoir l’air de jaillir dessus. Jetez un coup d’œil à leur site, ils sont financés, beaucoup d’intérêt pour les développeurs, une communauté géniale, la capacité de tirer des npm, des modèles, etc.

Edit (18 juillet 2017): Donc, trois ans après avoir écrit l’original, je n’utilise plus Meteor. C’était beau quand il a commencé, puis il est rapidement devenu désagréable. Réagissez pour le front-end et l’API Rails sur le back-end, si vous voulez être cool. Sinon, je suis juste de retour pour lancer les applications Rails et aimer la vie. Meh?

Il existe cependant des applications Meteor absolument meurtrières.

Meteor est un framework Open Source à pile complète basé sur Node.js et MongoDB. En termes simples, il s’agit de la collection de bibliothèques et de packages liés entre eux de manière à faciliter le développement Web. Meteor peut être connecté à n’importe quelle base de données SQL ou No-SQL (à l’aide d’Apollo). En fait, Meteor fournit deux bases de données MongoDB: une base de données de cache côté client et une base de données MongoDB sur le serveur.

Voici quelques raisons pour lesquelles nous utilisons Meteor pour développer les applications:

Développement Web en temps réel: de nombreuses entreprises ont évolué vers un Web en temps réel. Meteor est cependant intégré en temps réel à son cœur. Lorsque la base de données est mise à jour, les données des modèles sont également mises à jour. Lorsqu’un utilisateur clique sur un bouton, l’action se produit immédiatement, ce qui signifie qu’il n’est pas nécessaire d’actualiser la page pour voir les mises à jour. Cela fait de Meteor un cas d’utilisation parfait pour une collaboration en temps réel.

Développer avec un seul langage: L’une des parties frustrantes d’être un développeur Web est d’écrire différents langages pour une seule programmation. Vous devez penser au front-end, au back-end et aux détails de la base de données qui extraient le dernier pouce de votre capacité mentale. Meteor simplifie ce processus en utilisant un langage -JavaScript dans le processus de développement pour le frontend, le backend et la base de données.

Facile à apprendre: l’ un des plus grands avantages de Meteor.js est que ce sont les frameworks les plus faciles à apprendre pour les débutants en ne connaissant qu’un seul langage de développement, les développeurs peuvent apprendre Meteor.js. Tout développeur JS semi-expérimenté pourrait se voir confier un projet Meteor avec une structure décente, le récupérer et le faire fonctionner rapidement.

Développement plus rapide : Lorsque vous utilisez Meteor, il développe l’application en 6 semaines avec JavaScript sur le front et le back-end, Meteor vous permet de développer plus rapidement. Nous pouvons utiliser des packages intelligents pour le développement qui permettent de gagner beaucoup de temps. Ce système rend également le processus assez simple.

Transformez votre application Meteor en applications mobiles: Meteor simplifie la transformation de votre application Web en application mobile avec Cordova. Cordova est une plate-forme pour créer des applications pour téléphones intelligents en utilisant HTML, CSS et JavaScript. Avec Meteor.js, vous pouvez créer des applications mobiles incroyables compatibles avec IOS et Android.

Le futur cadre est Meteor: Meteor.js est certainement le cadre de développement du futur en fournissant l’environnement en temps réel et la facilité d’utilisation pour le développeur. Meteor fait partie de la famille JavaScript qui rend son chemin plus clair.

Conclusion Au moment d’écrire ces mots, il y a de nombreux avantages de Meteor qui est parmi la première vague d’outils ci-dessus et tout dans un seul cadre pour développer les applications en direct et être utilisé sur le Web. Meteor.js est le cadre JavaScript de choix correct qui fonctionne en douceur sur les interfaces Web et mobiles avec une évolutivité élevée, des tests rapides et des options de développement.

PS: Recherche de partenaire principal Meteor Js pour profiter de tous les avantages de Meteor.js pour votre prochain projet.

Nous sommes partenaire Meteor Prime et avons jusqu’à présent terminé 15 applications Meteor. Vous pouvez consulter notre portefeuille sur https://www.deligence.com/portfo… et voici quelques critiques de différents clients – Deligence Technologies Pvt. Ltd.

Eh bien, le même genre de question s’est posée dans mon esprit il y a quelques mois, quand j’ai entendu parler de ce cadre.

Donc, la toute première chose, pourquoi vous devriez passer votre temps à apprendre MeteorJS plutôt que tout autre framework, et bien la réponse est assez simple et directe, MeteorJS est très facile à apprendre et à comprendre.

Plus que tout autre Framework, MeteorJS permet de créer une application web en temps réel et opérationnelle sur le web en quelques heures.

Et si vous êtes déjà familier avec le développement frontal, vous serez déjà familier avec JavaScript, vous n’aurez donc même pas besoin d’apprendre une nouvelle langue.

MeteorJS pourrait être le cadre idéal pour vous, pour savoir pourquoi ne pas simplement essayer et découvrir vous-même.! Vive 🙂

J’ai développé des météores, objective-c et java pour les applications mobiles et je dois dire qu’étant nouveau sur météore, il a l’avantage d’être plus facile à comprendre. Je pense que javascript est intrinsèquement plus facile à apprendre par rapport à des langages plus traditionnels comme objective-c, java, c ++ etc. avec Android Studios (récemment, le développement Android était absolument insupportable et super lent car il était principalement géré sur Eclipse). La méthodologie derrière la création d’applications est différente lors de leur construction en mode natif vs avec météore et si vous avez le temps d’apprendre ces langues, je le suggère également. Je vois l’intérêt de pouvoir créer 2 applications avec un seul ensemble de codes. Cependant, en tant que développeur, encore une fois, je préfère de loin le développeur iOS avec Xcode, mais j’aime toujours beaucoup les météores et où va-t-il à l’avenir. Le seul inconvénient de météore pour moi est le besoin de feuilles de style qui ne sont pas nécessaires lors de la construction en mode natif. Des cadres comme Radium aident mais ne sont pas une solution complète à ce problème. De plus, lorsque vous utilisez ces cadres, vous allez à l’encontre de la norme d’utilisation des feuilles de style et incluez plutôt un style en ligne avec votre javascript, ce qui n’est généralement pas bon. Bc javascript se conforme toujours en dernier après le html et le css. Mais encore une fois, si vous avez le temps, je dis: apprenez tout ce que vous pouvez!

Le choix d’un framework dépend certainement des particularités d’une application que vous allez développer. Meteor a attiré notre attention en raison de la facilité d’apprentissage, du développement multiplateforme, de la même base de code à l’arrière et à l’avant et de plusieurs autres avantages qu’il offre. Pour ne pas paraître subjectif, nous avons demandé à plusieurs entrepreneurs prospères pourquoi ils avaient choisi Meteor pour leurs projets. J’espère que notre article Why Entrepreneurs Coose Meteor vous aidera à répondre à votre question.

Quelque chose de nouveau et d’innovation se rapproche de l’utilisation, lorsque vous pensez à écrire un logiciel, c’est quelque chose qui prend du temps et devient fastidieux. C’est maintenant quelque chose qui fournit une excellente plate-forme et crée une application d’une nouvelle manière. Cette solution collaborative résout la plupart des problèmes rencontrés en développement et voici un rapide aperçu de cette plateforme intéressante.
Meteor-The Better & Swift Platform for Application Development – PROBESEVEN BLOG

Il y a plusieurs raisons qui vous donneraient envie d’essayer Meteor tout de suite

Facile à apprendre et simple à travailler

Réactivité full-stack

Application en temps réel

JavaScript – Une seule langue résout tout

Où apprendre Meteor?

J’espère que vous le trouverez utile