前阶段看到一篇文章,说以往花费数周时间才能完成的网站,现在使用 Meteor 只需要几小时
很好奇Meteor是个什么技术?怎么大幅提高开发效率的?就了解并试用了一下
Meteor的中文是“流星”,了解后发现它的确如“流星”一样飞快,对于创业团队和快速原型开发真是太适合了,值得学习和使用
Meteor 是什么?
Meteor 是一个基于 nodejs 的全栈实时开发平台,目前只支持 Mac、Linux,Meteor还引入了 Cordova,支持快速封装 IOS、Android 移动应用
全栈
基础构架是 Node.JS + MongoDB,并把这个基础构架同时延伸到了浏览器端,所以你可以用js完成前端到数据库的全部工作
实时
Meteor使用分布式数据协议DDP 来处理实时通信,使用WebSockets或Ajax长轮询来支持这种协议
事实上 Meteor 提供了两个MongoDB数据库:客户端缓存数据库、服务器端MongoDB数据库
当用户更改一些数据时,在浏览器中运行的js代码会更新本地MongoDB中的数据,然后向服务器发出一个DDP请求
然后客户端代码继续运行,因为它不需要等待服务器回复,与此同时,服务器在后台更新,如果服务器操作失败,那么客户端js代码会依据从服务器新返回的数据立即进行调整,这种调整称为延迟补偿
Meteor 为何高效?
(1)Meteor是一个开发平台,而不是一个框架
例如你要使用LAMP开发一个网站,首先需要在服务器上搭建apache\php\mysql的环境,然后选择一个php开发框架进行安装,配置好数据库连接信息,启动apache和mysql,这时就可以访问页面了
使用Meteor的话,只需要一个命令来安装Meteor,然后启动,这时,web服务器、MongoDB 就已经就绪,可以直接访问了
(2)前后端统一使用 JavaScript 进行开发
例如使用LAMP开发,常见的代码流程:js ajax 调用php,php调用mysql,封装json数据返回给客户端进行处理
Meteor用js开发,MongoDB的接口是js的,并且MongoDB的文档结构就是json,所以就可以直接使用js操作数据库,得到的就是json结构数据,js直接在页面处理数据
(3)开发模式下,编辑更改代码后自动刷新浏览器,方便开发者查看运行效果
(4)自动编译(CoffeeScript、LESS、Stylus)、压缩合并、分发应用所包含的客户端 JavaScript、运行在于服务器端 Node.js 容器中的 JavaScript 以及 HTML 、CSS 和其他静态文件
(5)Meteor的核心API提供了很多及其便利的服务
例如用户系统,只需要运行一个命令加载用户系统模块,然后在页面中添加一行代码嵌入用户系统,那么你的网站就支持用户注册和登陆了,Meteor帮你自动实现了从页面到数据库的代码
之后会再介绍下体验过程