Meteor.js是什么?

文章发布时间:2015/5/26 8:20:33



高清大图壁纸那些逐渐消失的中国古建筑-1沈阳“开房门”事件有性贿赂嫌疑成年人简易钢琴教程^钢琴自学教程^幼儿钢琴教程插足女人八字三大特性《宽容的智慧全集》.刘宋民著

运营成本高网上超市难以取代传统大卖场中国古籍白话解读集萃【珍藏版】女人做小三也得有资格和资本物理初中3年级机械效率(二)初三物理九年级黄冈中学免费科科通点上传者名看有序全部肝硬化为什么不能直接切掉硬化部分?第二讲??理解文中重要词语的含义图解习近平总书记8·19重要讲话精神止不住思念有梦想的人都会闪闪发亮搞笑图片(全是动的)A性感尤物连连看(四)幽默搞笑笑话大全期待春天【情感美文】你真的会叠衣服吗?史上最奇葩叠衣服大法手机如何使用微信请记住,别委屈自己【动画美图】梅花宝典怎样评价蔡骏的作品?古韵美女~两双花菜谱大全《全球通史》第七版的书皮有不一样的,不懂哪个好,求介绍?清华大学对好学生的评判标准:好学(钱颖一)水若——给老公织的温暖牌简单背心清代恽寿平《扇面题画跋》 每句话都可以品半辈子 !

人生真相钩针花样技法(5)中国茶壶大全(精美组图) 每句话都可以品半辈子 !

Meteor.js是什么?Meteor的官网( Meteor )这样介绍这个框架:

Meteor is an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started.
top-quality web apps 我们放下不表,fraction of the time 的提法很新颖,看来这个框架的目标是解放程序猿,少花时间多办事。虽然具体的演化路径我不得而知,但从网络上的各种蛛丝马迹来看,Meteor吸收了google wave, asana等平台背后的开发工具的精髓,逐渐演进出了目前的版本。Meteor的幕后团队相当强悍:他们大多毕业于MIT,是成功的创业家,也是一流的工程师,其中一个开发者还是神器 etherpad 的作者。

METEOR究竟有什么NB的地方?

首先,Meteor构架与nodejs之上。这使得 One Language 成为可能,同时可依托nodejs上诸如http://socket.io这样强大的类库内置 realtimeDate on the Wire 等特性。

在一种语言的基础上,Meteor统一了服务器端和客户端的数据访问,提出 Database Everywhere,一套DB API大大减轻了开发负担,不用再做server data JSON client data的转换(想想你的django 或者rails app,在这上面花了多少功夫?)。

为了让app达到最佳的用户体验,Meteor还提供了 Latency Compensation,客户端对数据的更新即时反应到UI,如果更新被服务器reject,再rollback。大多数情况下,用户会得到极佳的类似本地数据库的体验。

Meteor最让人叫绝的是其 Full Stack Reactivity。关于reactivity programming的详细介绍,请参考Reactivity Programming,这里不展开。简言之,当数据发生改变的时候,所有依赖该数据的地方自动发生相应的改变。

用过backbone的同学都知道,当model发生改变的时候,我们需要通过注册相应的事件,显式更新对应的DOM,如果数据在页面中多处被渲染,则每处对应的DOM需挨个更新。

ember在backbone的思想上更近了一大步,通过内置的data binding API,让数据和DOM能够双向绑定,程序猿不用再花心思去考虑DOM的更新。然而,蹩脚的API调用(所有对binding的数据的访问需要通过getter和setter,你懂的)和DOM中无处不在的script垃圾让ember既不简约也不优雅。
而Meteor则另辟蹊跷,通过reactivity context和dependency巧妙地支持了reactivity(据作者说核心代码就几十行),使用者几乎感受不到代码的变化。

Meteor另一个很贴心的点是零部署。开发web app有点小头疼的点是打包和部署。比如说,把less转成css,coffee转成javascript,然后混淆,压缩,虽然有些自动化的工具可以简化这部分工作,可还免不了相应的配置和一些脚本工作。在开发环境下,meteor会自动替你加载js/css,如果你使用了coffee/less (sass),只要add了相应的smart package,meteor会自动帮你处理;开发完毕后要部署,只需要运行meteor bundle,系统自动会将相关的资源打包,只要目标系统上有相应版本的nodejs,meteor和mongodb,就能运行一个标准的production版本。

以下是meteor官网上的介绍,当你真正使用meteor后,会发现还真不是吹牛。
SEVEN PRINCIPLES OF METEOR

  1. Data on the Wire. Don't send HTML over the network. Send data and let the client decide how to render it.

  2. One Language. Write both the client and the server parts of your interface in JavaScript.

  3. Database Everywhere. Use the same transparent API to access your database from the client or the server.

  4. Latency Compensation. On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database.

  5. Full Stack Reactivity. Make realtime the default. All layers, from database to template, should make an event-driven interface available.

  6. Embrace the Ecosystem. Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks. Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Accomplish this through clean, classically beautiful APIs.

以上内容摘自我的博客文章:为什么是Meteor

[补充] 下一代的web app是什么?
我们看看几代计算机体系的发展。web/cloud时代是不是重复者mainframe/CS时代走过的路?那么,我们是不是有理由相信,meteor在此做的尝试是一个正确的方向?显示全部


答友:看这里:

Meteor 非官方中文文档

可以去看看前面的介绍部分.


就目前来看,虽然 meteor 拿到了很大数目的风投(我印象中是 1千万美金),不过并没有感觉发展的很好。

首先它的迁移性貌似不是很方便。

其次,数据安全很成问题,因为可以在前端通过 js 访问到后端的数据库。而且与后端数据库具有相同的权限。

另外,无法利用 npm 上的众多资源。它的包系统是自己做的,而且目前来看,并不多。只提供了一些仅仅是不可或缺的库而已。


答友:我最近用它开发了一个商业移动Web App,搭配上CoffeeScript、Stylus,感觉还是很爽的,但是遇到bug也是很不爽的。总之,就像一把瑞士军刀,带出去做个中小项目很爽。试试吧。


答友:稍微离题下,跟meteor相关的有还有SocketStream和Derbyjs。
之前在stackoverflow问过,node.js - SocketStream vs Derbyjs vs Meteor,有个答案解释的不错,不过好像被close了,应该看不到了吧。

我之前选择了derbyjs,原因是它是基于nodejs的,而meteor不是。


答友:Meteor is an ultra-simple environment for building modern websites. What once took weeks, even with the best tools, now takes hours with Meteor.


The web was originally designed to work in the same way that mainframes worked in the 70s. The application server rendered a screen and sent it over the network to a dumb terminal. Whenever the user did anything, that server rerendered a whole new screen. This model served the Web well for over a decade. It gave rise to LAMP, Rails, Django, PHP.
But the best teams, with the biggest budgets and the longest schedules, now build applications in JavaScript that run on the client. These apps have stellar interfaces. They don't reload pages. They are reactive: changes from any client immediately appear on everyone's screen.
They've built them the hard way. Meteor makes it an order of magnitude simpler, and a lot more fun. You can build a complete application in a weekend, or a sufficiently caffeinated hackathon. No longer do you need to provision server resources, or deploy API endpoints in the cloud, or manage a database, or wrangle an ORM layer, or swap back and forth between JavaScript and Ruby, or broadcast data invalidations to clients.
Meteor is a work in progress, but we hope it shows the direction of our thinking. We'd love to hear your feedback.

Seven Principles of Meteor

  • Data on the Wire. Don't send HTML over the network. Send data and let the client decide how to render it.
  • One Language. Write both the client and the server parts of your interface in JavaScript.
  • Database Everywhere. Use the same transparent API to access your database from the client or the server.
  • Latency Compensation. On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database.
  • Full Stack Reactivity. Make realtime the default. All layers, from database to template, should make an event-driven interface available.
  • Embrace the Ecosystem. Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks.
  • Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Accomplish this through clean, classically beautiful APIs.
显示全部


答友:鸡毛说这么多,就是基于node.js, 把前后端对数据库访问打通了。简单点说,这不是个框架,是个编译环境,啥框架都可以搁进去。js很恶心,但用coffee会舒服点




本文链接地址 http://www.ao6.org/dst-news/show-26233922461166.html 转载请注明

分享到: 更多
标签:国际合作与交流 美国奥本大学 龚元石
不存在相应的目录