跳到主要内容
CNode

Meteor 中文文档 (PS: Reactive Programming 用中文怎么说?)

社区
DDavidXuQQ839305878发布于 14 年前最后回复 11 年前
7222690
目录 · 12 个章节

GitHub: https://github.com/aleechou/meteor-doc-cn/blob/master/document.md

(求个NAE邀请码)


Meteor 是一个建立现代网站的极简单环境. 在过去即使使用最好的工具,也需要数周的时间,使用Meteor只需要几个小时。

Web 最早在70年代专门为大型机所设计. 应用服务器渲染完整个屏幕,然后在网络上发送给哑终端. 无论用户做什么事情,服务器都会重新渲染整个屏幕. 在过去的十几年中,这个模式在 Web 上工作得很好. 它成就了 LAMP, Rails, Django, PHP 等技术。

但是现在,一些优秀的团队,他们拥护充足的预算和时间,开始在客户端使用Javascript 构建应用程序. 这些应用程序的界面是固定的. 它们不重新载入页面. 它们具有“反应性”(reactive): 改变会从某个客户端立即显示到所有人的屏幕上.

他们构建这些采取了困难的方案. Meteor 可以使之变得非常简单和有趣. 你可以选择在周末,或是弥漫着咖啡香气的黑客聚会上,来构建一个完整的应用. 你再也不需要准备服务器资源, 在云上部署API端点, 管理数据库, 争论是否使用ORM层, 在前端JavaScript和后Ruby之间反复交换, 以及当数据失效时广播给所有客户端.

Meteor 是一项正在开展的工作, 我们希望它能够展现出我们所思考的方向. 我们乐于听到你的反馈意见.

— Geoff, Nick, Matt, David, Avital, and David

快速开始!

接下来的任务,所有的支持的平台

安装 Meteor:

$ curl https://install.meteor.com | /bin/sh

新建一个项目:

$ meteor create myapp

在本地运行:

$ cd myapp
$ meteor
Running on: http://localhost:3000/

释放到 world (我们提供的免费服务器)上:

$ meteor deploy myapp.meteor.com

七项“纪律”

  • 数据上线。不要在网络上发送HTML。发送数据,然后让客户端决定如何渲染它们。
  • 统一语言。在服务器端和客户端统一使用 JavaScript 语言。
  • 数据库随处可用。在客户端或服务器使用相同的透明API来访问你的数据库。
  • 延迟补偿。在客户端使用预取和模型模拟,以使数据库连接看上去是零延时的。
  • Full Stack Reactivity。使默认是实时的。所有的层,从数据库到模板,应该是有有效的事件驱动接口。
  • 拥抱社区。Meteor 开放源代码,并且整合而不是替代已存的开源工具和框架。
  • 简单等同效率。让事情看上去简单的最好的办法,就是让它根本就很简单。通过干净、经典、优美的API来达成。

开发者资源

如果 Metero 已经引起了你的兴趣,我们希望你能参与到项目中来

STACK OVERFLOW

提出(还有解答!)技术问题最好的地方就是Stack Overflow.记得在你的问题上加个“meteor”标签。

邮件列表

我们有两个邮件列表。meteor-talk@googlegroups.com 用于常见问题,请求帮助,和新项目公告。meteor-core@googlegroups.com 用于 Meteor 内部讨论和建议调整。

IRC

irc.freenode.net 上的 #meteor 频道。开发者们挂在这里随时回答你的问题,尽其所能。

GITHUB

代码放在GitHub上。为 Metero 打个补丁最好的办法,就是在 GitHub 上发送个“求拉“”请求。记录一个bug的最好方式,就是用 GitHub 的 bug tracker。


#概念 我们靠手工写单页的 JavaScript 应用。写一个完整的应用,用同一种语言(JavaScript),同一种数据格式(JSON),是一件相当有趣的事。Meteor 就是我们写这些应用所需要的全部。

构造你的应用程序

一个 Meteor 应用程序,混合了运行在客户端浏览器中的JavaScript,运行在 Meteor 服务器 Node.js 容器内的 JavaScript,以及所有 HTML 片段,CSS 规则,以及其他的静态资源。Meteor自动打包和传输这些不同内容。并且,你可以在你的文件树中相当灵活地组织这些内容。

唯一的服务器资源就是 JavaScript 。Meteor 聚合你的所有 JavaScript 文件,除了 client 和 public 子目录下的文件,然后将他们集中在一起加载到 Node.js 服务器实例中。在 Meteor 中,你的服务器端代码针对每一个请求都运行在一个单线程中,而不是典型的Node风格的异步回调函数中。我们发现在 Metero 应用程序里,线性的执行模式更适合典型的服务器代码。

考虑到客户端有很多资源。Meteor 为客户端将你目录树里所有 server 和 public 子目录以外的 JavaScript 文件聚在一起。它会最小化捆绑并发送给新访问的客户端。你可以为你的应用程序自由选择,使用一个单文件 JavaScript ,或彼此独立的文件,或者两者之间的形式。

client、server 和 tests 以外的文件,在客户端和服务器端两边都会被加载!那是定义模型和其他函数的地方。Meteor 提供了两个变量 isClient 和 isServer,这样你的代码可以根据他们是运行在客户端还是服务器来改变行为。(名为 tests 目录内的文件不会加载到任何地方。)

任何你不希望发送给客户端的代码,例如包含了密码或认证机制的代码,都应该保持在 server 目录内。

另外 CSS 文件会被集中在一起:客户端会得到一个含有你的目录树下的所有CSS文件的“捆绑”(不包括 server 和 public 子目录)。

在开发模式下,JavaScript 和 CSS 文件会为了调试方便而单独发送。

HTML文件在 Meteor 应用程序中被处理的方式和普通服务器端框架稍有不同。Meteor 扫描你目录内所有HTML文件中的3个顶层元素:,,和

查看回复

回复 (7)

W
weiyongqing123#514 年前

reactive programming:响应式编程,现在比较热门的一个方向

W
weiyongqing123#414 年前

感谢啊,我本来想翻译,水平不行。在,https://groups.google.com/forum/?fromgroups=#!forum/cn-meteor-js meteor中文论坛上有我们工作时写的一些心得,欢迎

G
gxmari007#314 年前

这个工程量巨大啊,是边学边翻译?

M
mjerry#214 年前

等平台完善及各大云支持运行了,可以学学

G
gratuit#114 年前

赞一个!lz有计划翻译之后的API吗?

参与回复

登录后即可参与回复。登录