专栏首页博文视点BroadviewMeteor:快到飞起来的全栈JavaScript开发平台

Meteor:快到飞起来的全栈JavaScript开发平台

小编说:“meteor”这个单词的意思是“流星”,流星的特点是快,一闪而过;同样,Meteor作为一个开源的全栈JavaScript开发平台,特点就是快,目标是为开发者提供一个快速开发的平台。

本文选自《Meteor全栈开发》一书

  • Meteor是什么

Meteor是一个开源的全栈JavaScript开发平台,构建在 Node.js和 MongoDB 之上。全栈开发平台已经有不少了,Meteor有什么特色呢?

虽然Meteor是一个很年轻的项目,但因其开发速度快而闻名,受到大量开发者的喜爱,GitHub上的star数量已达惊人的33000+,与Linux之父Torvalds创建的Linux Kernel项目相当。

Meteor这个项目的来源非常有趣。 Meteor的几个创始人本来是要做一个在线旅游点评网站,并且已经进入了著名孵化器 YC,准备开干了。但在筹备过程中,和孵化器的其他伙伴聊天时,发现大家都有一个共同的问题,就是开发效率不高,常常需要做很多重复性的工作。 所以他们改变了创业想法,决定做一个开源的开发平台,提供一套完善的基础功能,减少重复劳动,提高开发速度,并希望有桌面应用一样的顺滑体验。说干就干,他们在2011 年10 月1 日推出了Meteor 预览版,仅仅在8 个月之后, Meteor 就得到了IT 大佬们的投资。

1.0 版本发布之后,在GitHub 上就进入了top 20,成为当时第11 位的流行项目。

Meteor 现在已经发展成了一个生态。因为基于Node.js,所以其本身就可以受益于Node.js 的庞大资源,而且 Meteor 自身也是社区模式,扩展包数量不断增长,内容已经极其丰富,功能覆盖面非常广。Meteor 生态在健康、快速地成长。

  • Meteor 为什么快

为什么说使用 Meteor 开发会比较快。是哪些特性成就了Meteor 的快?

1. 全栈使用 JS

整个开发过程都使用一个语言必然会降低技术复杂度,而且 JS 的普及度很高, 做Web 开发的技术人员对JS 都比较熟悉。

而传统网站开发过程中通常会用到多种语言。例如 PHP 开发,需要 JS+PHP+SQL ; 同样,如果选择Java,就需要 JS+Java+SQL。

多种语言的混合使用,学习成本和语言间的沟通成本一定大于单一语言。

2. 代码复用

即使全栈都使用 JS 开发,也不一定可以代码重用。例如在有的开发平台中,前端使用 AngularJS,后端使用 Express,虽然均使用 JS 开发,但代码完全无法复用。

Meteor 中的前后端大量代码可以同时使用。例如数据库操作对象,在客户端操作的是 miniMongo,在服务器端操作的是真实的 MongoDB,但使用的代码就是一套, 开发者也不用关心这个代码是用在客户端还是在服务器端。

3. CLI 做好了后勤工作

在之前创建项目时,使用了一个命令 meteor create,这就属于 Meteor中的 CLI 部分。CLI 是 command-line interface 命令行界面的意思,是 Meteor中非常重要的组成部分。

CLI 的具体功能如下:

-创建新应用。

-向项目中添加/删除扩展包。

-对项目中的 JS CSS 文件进行编译和压缩,例如使用 LESS 开发 CSS,CLI中的命令就可以对其进行编译。

-对应用进行管理,例如运行、重置、监控等。

-提供了 MongoDB shell终端。

-对项目进行编译打包。

Meteor把大量的烦琐和重复性的工作都封装到了 CLI 中,以命令的形式供开发者调用。在传统Web开发中很少有能提供这么全面功能的框架,如果自己开发这些功能,将耗费很多的工作量。

4. 响应式

响应式这个功能可以减少非常多的代码,例如,大大减少DOM更新操作。如果没有响应式,就需要自己操作DOM。再比如数据库中的数据变化后,如果页面中使用到了此数据,就会自动更新;如果没有响应式,就需要自己编码检查数据的变化—如果有变化,从数据库获取数据,更新页面中的相关DOM内容。

5. 前后端的数据同步采用异步方式

用户在客户端写入新数据后,不需要等待服务器端数据库的写入结果,只要数据成功保存在 miniMongo,用户就可以得到反馈,Meteor负责在后台自动向服务器端发送数据,执行同步操作。

在传统Web开发中,例如新数据通过 Ajax 发送给服务器端,服务器端真实写入数据库后返回结果信息,在Ajax 的回调方法中再反馈给用户,用户会明显感知到这个过程的延时;而在 Meteor中,由于 miniMongo 的存在,用户体验的顺畅感如同本地应用。

本文分享自微信公众号 - 博文视点Broadview(bvbooks)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-10-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Meteor的工作原理及优势与不足

    小编说:Meteor作为开源的全栈JavaScript开发平台,在工作方式上进行了较大创新,和传统Web 应用区别较大,对于任何一项技术,都有其擅长的领域,也有...

    博文视点Broadview
  • Java虚拟机对内部锁的优化

    锁消除(Lock Elision)是JIT编译器对内部锁的具体实现所做的一种优化。

    博文视点Broadview
  • 我们为什么需要SDN?

    众所周知,相比发展迅速的计算机产业,网络产业的创新十分缓慢。每一个创新都需要等待数年才能完成技术标准化。为了解决这个问题,SDN创始人Nick McKeown教...

    博文视点Broadview
  • Meteor的工作原理及优势与不足

    小编说:Meteor作为开源的全栈JavaScript开发平台,在工作方式上进行了较大创新,和传统Web 应用区别较大,对于任何一项技术,都有其擅长的领域,也有...

    博文视点Broadview
  • Meteor+React资料包大放送!

    时见疏星
  • MeteoRain#01 — 开始使用Meteor1.3

    时见疏星
  • 42款实用且堪称神器的Chrome插件推荐

    最近为了更好的利用谷歌浏览器,笔者整理了一些常用的谷歌插件,分享给大家,考虑到一些无法翻墙的童鞋,给力的笔者当然是顺便给出离线安装文件。

    华章科技
  • 常用 Chrome 插件

    相信很多人都在使用 Chrome 浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面, Chrome 最大的优势还是其支持众多强大好用的扩展程序(E...

    用户2769421
  • 42款堪称神器的 Chrome 插件

    相信很多人都在使用 Chrome 浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面, Chrome 最大的优势还是其支持众多强大好用的扩展程序(E...

    格姗知识圈
  • 当年pass到很多扒手的题

    可以看到经过了2次请求,最后在http://datamining.comratings.com/exam3中得到数据,现在注意resquesr中的hearder...

    润森

扫码关注云+社区

领取腾讯云代金券