热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

构建meteor应用程序_使用Meteor开发下一个Web应用程序的7个理由

构建meteor应用程序当我第一次了解MeteorJavaScript框架时,我看到有人写道:“Meteor代表Node.js,Rails

构建meteor应用程序

当我第一次了解Meteor Javascript框架时,我看到有人写道:“ Meteor代表Node.js,Rails代表Ruby”,我认为这是一个很好的比较。 几年前,Rails是Web上的热门新事物 ,它在开发过程中散布了一些有用的“魔术”,使Web上的编程更加平易近人和令人愉悦。 在最近涌现的无数新框架中,没有任何一个能让我感觉到Rails像Meteor一样做的事情-您应该认真考虑将其用于未来项目的框架。 原因如下。

1.默认情况下,您的应用程序是实时的。

最近,像Twitter和Facebook这样的公司一直在朝着实时网络发展。 不可避免的是,用户会比预期的更快,期望Web应用程序立即运行。 我想象已经有用户在更改设置和注销之类的简单任务需要单独加载页面时感到畏缩。

问题是,创建实时Web应用程序很棘手。 或者至少是这样。 流星已经内置了实时功能。 更新数据库后,模板中的数据也会更新。 当用户单击按钮或提交表单时,操作将立即发生。 在绝大多数情况下,这甚至不需要任何额外的努力。 您可以像往常一样构建Web应用程序,并且开箱即用,它恰好是实时的。

不久前,流星的人们发布了一个演示这些实时功能的截屏视频 ,这非常值得一看,但是有一系列生产应用程序在展现流星差异方面做得更好:

  • 助手
  • 细任务
  • 响应地
  • 音速敏捷
  • 维索

这些也只是一个小样本。

2.您可以只使用一种语言进行开发。

成为Web开发人员的令人沮丧的部分之一是需要戴上各种帽子。 您需要考虑前端,后端和数据库,然后还有另外一百万个细节会挤出您的智力极限。 Meteor通过缩小需要考虑的范围来简化此过程,使您仅使用Javascript即可构建和管理前端,后端和数据库。

例如,这就是我们在Meteor中创建“集合”(相当于SQL表)的方式:

BlogPosts = new Meteor.collection('posts');

因此,我们可以使用熟悉的语法创建集合,也可以使用熟悉的语法操作集合。 这是我们插入数据的方式:

BlogPosts.insert({
title: 'Hello World',
content: 'This is the content.',
published: true
});

用一种语言编写整个应用程序还有另一个好处。 一行代码可以在客户端和服务器上运行,并且可以在两种环境中执行不同的操作 。 这就是为什么这样重要:

当创建集合的语句在服务器上运行时,它可以预测地创建一个集合。 但是,当同一条语句在客户端上运行时(默认情况下将执行此操作),它将在用户的浏览器中创建一个纯本地集合。 然后,用户直接与本地集合进行交互,这就是为什么他们的屏幕上的数据可以即时更改,而本地和服务器端集合在后台无缝同步的原因。

这不需要任何特殊处理。 您编写了一行代码,除了能够在整个开发周期中使用熟悉的语法外,还提供了一系列功能。

3.使用智能软件包可以节省大量时间。

假设您要在Meteor项目中创建一个用户帐户系统。 您将如何处理? 如果您首先想到的是“嗯,我将为用户的数据创建一个集合”,那么您已经在想得太辛苦了。

在Meteor中,这是我们创建帐户系统的方式:

meteor add accounts-password

我们在终端中运行此命令,Meteor将其内置的“智能软件包”之一添加到项目中。 这个特定的程序包创建一个帐户系统,该系统需要电子邮件(或用户名)和密码。 但是,如果我们想让用户注册其Twitter帐户怎么办? 然后我们可以写:

meteor add accounts-twitter

或者,使用他们的Google帐户:

meteor add accounts-google

或者,Facebook:

meteor add accounts-facebook

我们甚至可以运行所有这些命令,以便我们的用户可以选择他们想要的注册方式。

Meteor还提供了一个accounts-ui程序包,该程序包创建此帐户系统的前端,并且只需要一个其他命令即可:

meteor add accounts-ui

有了我们的帐户系统,我们就可以执行在处理Web应用程序时合理需要做的一切,例如检查当前用户是否通过我们的模板之一登录:

{{#if currentUser}}

You're logged in.


{{else}}

You're not logged in.


{{/if}}

免费学习PHP!

全面介绍PHP和MySQL,从而实现服务器端编程的飞跃。

原价$ 11.95 您的完全免费

或浏览和操作Meteor.users集合,这是Meteor创建的用于存储用户数据的集合。

不过,智能套餐不仅适用于帐户。 已经有许多可用的方法,而且大概还在进行中,它们都使您可以做一些很酷的事情,包括:

  • 用CoffeeScript编写应用程序。
  • 自动将LESS文件编译为CSS。
  • 集成D3.js和Bootstrap之类的附加功能。

但是,如果智能软件包无法满足您的需求,那么日益庞大的第三方软件包库可能会让您满意。

4.社区非常支持。

没有什么比活跃和充满活力的社区吸引我更多的新框架或新技术了。 我认为,如果社区活跃,那么:

  • 会有很多详细的文档。
  • 我会花更少的时间来熟悉基础知识。
  • 这项技术不会在不久的将来陷入僵局。

幸运的是,流星的社区已经是其最大的财富之一。 人们对框架的热爱产生了很多有用的资源,包括:

  • Crater ,一个类似Reddit的网站,用于跟踪流星世界中正在发生的事情。
  • Evented Mind ,这是一个视频培训网站,面向中级开发人员,他们希望深入了解Meteor的工作原理。
  • Kadira ,一个性能跟踪应用程序,易于使用,并且有合理的免费入门计划。

流星的YouTube官方频道提供了流星聚会的一系列演讲,并且有很多博客可以作为提示和教程供您参考:

  • 流星提示 (好的,这是我的)
  • 流星30天
  • 探索流星
  • 流星黑客
  • 温柔节点

但是,如果您仍然对可用资源不满意,Stephan Hochhaus会保留大量的流星资源清单,每个人都有一些东西。

5.针对开发人员的幸福进行了优化。

几乎每个框架都将自己作为一种更好,更有趣的工作方式。 不过,我很欣赏Meteor对细节的关注,以实现其为开发人员带来幸福的优化承诺。

以下面的代码为例:





{{> myCoolTemplate}}

这是Meteor应用程序的基本界面, body标签之间包含模板。 (对于模板,Meteor使用空格键-一种由Handlebars启发的语法。)

但请注意:

  • 我们尚未包含html标签。
  • 我们尚未包含任何CSS文件。
  • 我们尚未包含任何Javascript文件。

…那是因为流星为我们照顾了它们,所以我们不需要做这些事情。 这是世界上最重要的功能吗? 不。 但这表明流星有兴趣让每个开发人员的生活在每一步都变得更加轻松。

其他令人愉快的细节包括:

  • 内置的LiveReload功能,因此您不必手动刷新浏览器。
  • 随心所欲地自由构建项目。 有可以遵循的标准,但没有严格的规则或约定。
  • 流星的绝对模块化,允许您混合搭配不同的组件,以防流星的某一部分不符合您的喜好。

因此,尽管Meteor在设计上可以让您的生活更轻松地拥有“魔术”和惯例,但您仍然可以根据个人喜好进行选择。 这是两全其美。

6.对初学者来说很友好。

我对Meteor感到惊讶的是,我能够这么快地开始构建实际上很酷的东西。 我听说人们称该框架为“简单”,但通常其他人对该词的定义与我自己的定义不同。 在这种情况下,他们是对的:

流星是初学者最容易学习的框架之一。

它仍在编程中,您需要熟悉Javascript的语法(变量,循环,条件,JSON等),但是您无需成为Javascript忍者就可以开始。 您甚至不需要制作Web应用程序的先前经验(对于希望增强技能的前端开发人员而言,这是一个不错的选择)。 您可能不会立即掌握所有概念,但这不会阻止您享受事物的实际方面。

至于为什么Meteor非常适合初学者,主要是出于与我一般推荐Meteor相同的原因:

  1. 您只需要知道一种语言。
  2. 有大量的社区资源。
  3. 它针对开发人员的幸福进行了优化。

因此,即使您在学习Meteor时偶然遇到了一点驼峰,也只需将其稍微推开一点,我想您会发现这些驼峰很少而且相差很远。

7.它领先于技术曲线。

就像我之前说的,网络正在成为一个实时环境,但是这种转变不会仅仅基于预算大的大公司的行动而发生。 随着工具的可用,这种转变将发生,这些工具使小型团队和个体开发人员可以快速,轻松地制作实时应用程序。 Meteor是此工具的第一批浪潮之一,其“多合一”方法肯定会使其在未来几年中发挥重要作用。

流星的人们说了他们的长期任务 ,说白了,他们的任务是巨大的:

…为云应用程序构建一个新平台,该平台将与以前的平台(如Unix,HTTP和关系数据库)一样普及。

他们能做到吗? 当然,没有人可以绝对确定地说,但是他们拥有资金 ,社区和对开发人员和最终用户而言至关重要的平衡。 因此,至少,它们在正确的轨道上(这是我很高兴能随车行驶的轨道)。

结论

撰写这些文字时,Meteor的版本仍为0.8.2,但发行版本又大又快,并且一系列令人印象深刻的Meteor内置应用程序已投入使用并在网络上使用。 您的具体情况将决定某个特定的框架是否适合您和您的创作,但是每个开发人员都应归功于自己至少与Meteor玩一两天。 很长一段时间以来,我在网络编程上都没有这么开心,很可能您会感觉到相同的方式。

翻译自: https://www.sitepoint.com/7-reasons-develop-next-web-app-meteor/

构建meteor应用程序



推荐阅读
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 【MEGA DEAL】Ruby on Rails编码训练营(97%折扣)限时特惠!
    本文介绍了JCG Deals商店提供的Ruby on Rails编码训练营的超值优惠活动,现在只需29美元即可获得,原价为$1,296。Ruby on Rails是一种用于Web开发的编程语言,即使没有编程或网页设计经验,也能在几分钟内构建专业的网站。该训练营共有6门课程,包括使用Ruby on Rails进行BDD的课程,使用RSpec 3和Capybara等。限时特惠,机会难得,赶快行动吧! ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • 与.Net大师Jeffrey Richter面对面交流——TUP对话大师系列活动回顾(多图配详细文字)...
    与.Net大师JeffreyRichter面对面交流——TUP对话大师系列活动回顾(多图配文字)上周末很有幸参加了CSDN举行的TUP活动, ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
author-avatar
糖糖6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有