web-dev-qa-db-fra.com

Sails.js vs Meteor - Quels sont les avantages des deux?

J'ai beaucoup lu sur Nodejs et ses frameworks et j'ai récemment terminé mon premier frontend entièrement en javascript (avec Angularjs).

J'ai décidé que mon prochain projet animalier serait une aventure Nodejs utilisant l'un de ces deux frameworks:

J'ai lu sur les deux, mais je ne comprends toujours pas bien leurs différences et pourquoi devrais-je choisir d'utiliser l'une plutôt que l'autre. Alors s'il vous plaît mettez votre chapeau de meilleur vendeur, choisissez un cadre et vendez-le moi.

Certaines fonctionnalités dont j'ai besoin pour mon projet animal sont:

  • Scores en direct
  • Threads de type Reddit, temps réel
  • Édition de page de type Wikipedia
  • Utilisateurs/Rôles
79
pedropeixoto

Je ne peux pas parler pour Meteor, mais je peux aider à fournir un peu de fond sur Sails parce que je l'ai créé.

tldr; Les voiles ne sont pas une panacée pour tous les problèmes du Web - mais je crois que Node.js l'est. Sails a pour objectif de fournir un cadre pratique pour le développement d’applications complètes, évolutives, adaptées au démarrage et aux entreprises, basé sur node.js. J'ai commencé Balderdash avec la question "Pouvons-nous utiliser Node.js pour tout?". Voiles est la réponse.


De notre nouveaux documents :

Sails est bien sûr un framework web. Mais prenez du recul. Qu'est-ce que ça veut dire? Parfois, lorsque nous nous référons au "Web", nous entendons le "Web frontal". Nous pensons à des concepts tels que les standards Web ou HTML 5 ou CSS 3; et des frameworks comme Backbone, ou Angular, ou jQuery. Sails n'est pas "ce genre" d'un framework web. Sails fonctionne très bien avec Angular et Backbone, mais vous n’utiliseriez jamais Sails au lieu de ces bibliothèques.

D’autre part, parfois, lorsque nous parlons de "cadres Web", nous entendons le "Web back-end". Cela évoque des concepts tels que REST, HTTP ou WebSockets; et est construit sur des technologies comme Java, Ruby ou Node.js. Un framework "back-end web" vous aide à créer des API, à interagir avec des bases de données, à gérer des fichiers HTML et à gérer des centaines de milliers d'utilisateurs simultanés. Sails est "ce genre" de framework web.

Il y a quelques années, je me suis engagé à utiliser Node.js pour tout- c'était le coup de foudre . J'ai construit Sails au-dessus de Express et Socket.io car ils étaient (et sont toujours) les plus bien établis Node modules pour Le code de traitement des demandes dans Sails est compatible Express, avec l’avantage supplémentaire de la prise en charge implicite de Socket.io.

Sails est conçu pour être compatible avec la stratégie que vous avez utilisée pour créer votre ou vos interfaces dans Angular, Backbone, iOS/ObjC, Android/Java, ou même pour offrir simplement une API brute pouvant être utilisée par un autre service Web ou votre. communauté de développeurs. Si vous changez d’approche (par exemple en passant de Backbone à Angular) ou si vous créez entièrement un nouveau frontal (par exemple, en créant une application native Windows Phone), votre application Sails fonctionnera toujours. Comme vous le savez peut-être déjà, certaines personnes qualifient cette approche d’architecture orientée services ou SOA ( Joe McCann a un très bon deck sur le sujet.)

Dans le même ordre d'idées, Sails conserve d'autres conventions connues pour la création de serveurs Web: une structure MVC standard, la possibilité de créer des API propres et des modules de base ouverts, configurables, extensibles et même échangeables. Cela signifie que les voiles peuvent être personnalisées pour répondre aux besoins de leurs utilisateurs, aussi bas que nécessaire.

En 2013, la popularité du framework a considérablement augmenté, et notre activité de conseil s'est développée. Le reste des principaux responsables de la maintenance et moi-même avons élargi notre objectif de rendre le développement backend aussi simple et rapide que possible. Les aspects connexes de Sails tels que les points d'ancrage (plugins), les tests et la documentation ont tous parcouru un long chemin au cours de la dernière année grâce aux efforts de notre équipe principale et de la communauté (en expansion constante) dans son ensemble. Nous travaillons encore sur de nombreux éléments de la feuille de route, mais je pense que Sails est la meilleure option pour le développement MVC stable et maintenable sur Node aujourd'hui. Le reste de l'équipe et moi-même Nous nous engageons à maintenir la maintenance et le développement des fonctionnalités, et comme nous l'utilisons pour tous nos projets clients, nous n'allons nulle part.

Je suis résolument engagé à faire de Sails le meilleur framework Web, mais jamais au détriment de Node.js. Notre équipe et moi-même sommes résolument consacrés à l'amélioration de l'écosystème Node), ce qui signifie adopter le NPM, en tirant parti des technologies Node existantes, etc., etc.). Non seulement parce que cela a plus de sens, mais parce que nous sommes des développeurs Node.js. La motivation de tous nos efforts est de rendre Node plus accessible, de ne pas le remplacer. Donc, si, Dans certains univers parallèles étranges, un choix faustien me fut proposé: convertir Sails en un autre langage ou abandonner complètement Sails, tout en pouvant utiliser Node, je choisirais ce dernier.


Ressources supplémentaires:

FAQ | Voiles 101 | screencast original | Guide de contribution | Stackoverflow

Groupe Google | Feuille de route | IRC: #sailsjs sur Freenode | Statut de la construction

135
mikermcneil

J'ai construit quelques projets avec Meteor et je n'ai pas encore travaillé avec Sails. Donc, mon opinion va certainement être biaisée, espérons-le, utile de toute façon.

Construire le front-end

Meteor fournit son propre framework frontal appelé Blaze-à inclure dans la prochaine version 0.8. Meteor se charge de lier les données de vos collections à vos vues. Pour cette raison, vous n'avez pas à vous soucier de mettre à jour vos points de vue, ils le font simplement.

D'autre part, Sails ne fournit qu'un cadre backend et vous devrez apporter votre propre cadre frontal.

Contrairement à la plupart des frameworks Node.js, Meteor est synchrone

Meteor fonctionne en boucle et si vous voulez utiliser les paquets Node.js, vous devrez faire n peu de travail supplémentaire pour vous assurer qu'ils fonctionnent correctement dans Meteor.

Sails semble être un framework simple de MVC Node.js, il ne devrait donc y avoir rien d’étonnant à ce sujet.

Vous devez utiliser MongoDB avec Meteor

Oui, vous pouvez utiliser d’autres bases de données avec Meteor mais elles n’ont pratiquement pas le même support que MongoDB. Alors qu'avec Sails, il semble qu'ils aient des ORM pour quelques bases de données.

Performance

Pour les applications à grande échelle, Meteor risque de ne pas fonctionner correctement . Beaucoup de travail est fait pour s'attaquer à ce problème et, à la fin de 2014, nous pouvons nous attendre à ce qu'il y ait des solutions d'échelle pour Meteor.

Stabilité

Meteor est encore très frais et n'a pas encore atteint 1.0. Vous devez vous attendre à ce que des modifications soient apportées au cours des deux prochaines versions afin de réduire la compatibilité en amont. Si vous commencez à l'utiliser dès que possible, envisagez d'utiliser la branche 0.8-rc0. Cela étant dit, certaines des fonctionnalités du pipeline sont vraiment géniales et rendront une version 1.0 très séduisante.

Dernières pensées?

J'aime Meteor à cause de ses particularités. Vous devrez apprendre à faire les choses avec Meteor, mais une fois que vous avez commencé à le faire, vous avez l'impression d'avoir bu le kool-aid. En raison de la manière dont les données sont liées aux vues, les lignes entre le serveur et le client ne sont pas distantes. Meteor représente un changement de paradigme dans l'architecture des applications et si vous ne l'avez pas encore essayé, je le recommanderais.

PS Consultez la feuille de route pour avoir une idée de ce qui va se passer.

30
MSaforrian

Je ne peux que donner un avis sur les voiles. Je suis un développeur Javascript extrêmement expérimenté et je construis des applications de décodeurs intégrées construites sur Javascript depuis les années 90.

Ce qui a très bien fonctionné - J'ai commencé très bien et je me suis senti très soutenu par les documents publiés - La courbe d'apprentissage a été très courte et il y a communauté derrière les voiles - Après l'apprentissage initial, il est très facile d'être créatif rapidement

Ce qui pourrait être amélioré - Des structures de données complexes sont difficiles à mettre en œuvre - L'intégration de Passport.js était pénible car il n'y a pas de matériaux de référence clairs

Recommandations - Le codeur Ponzi propose un excellent tutoriel qui m'a vraiment aidé à démarrer https://www.youtube.com/user/ponzicoder - En savoir plus sur l'express et la ligne de flottaison vous aidera lorsque vous tenterez des problèmes de données plus complexes

Globalement, je recommanderais les voiles.

19
simondelliott

J'utilise actuellement Meteor et je n'ai pas utilisé Sails.js.

Travailler avec Meteor a été extrêmement agréable et je pense que ce serait un excellent choix pour les applications Web en temps réel. En ce qui concerne les utilisateurs/rôles, vous pouvez consulter le package intégré Comptes et également rechercher Atmosphère pour les packages de rôles/autorisations fournis par la communauté.

En fin de compte, je vous recommanderais d'essayer un petit projet avec les deux technologies et de voir ce que vous préférez.

9
alanning