返回 登录
0

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

小编说:“meteor”这个单词的意思是“流星”,流星的特点是快,一闪而过;同样,Meteor作为一个开源的全栈JavaScript开发平台,特点就是快,目标是为开发者提供一个快速开发的平台。
本文选自《Meteor全栈开发》一书,将向您介绍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 的存在,用户体验的顺畅感如同本地应用。
图片描述

评论