-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy path01-introduction.md.erb
112 lines (63 loc) · 7.29 KB
/
01-introduction.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
title: 简介
slug: introduction
date: 0001/01/01
number: 1
level: free
photoUrl: http://www.flickr.com/photos/62303607@N00/7779436538/
photoAuthor: Richard
contents: Meteor 的特别之处|本书简介|本书的内容结构
paragraphs: 35
---
先来活动一下大脑。假设你坐在电脑面前,在两个窗口中打开同一个文件夹。
在其中一个窗口中删除一个文件,另一个窗口中的这个文件会消失吗?
不用实际操作你也知道肯定会消失的。在本地文件系统中的操作,不用刷新或者回调,变动就能应用到所有地方。
我们再来看一下相同的事情在网页中会有什么结果。例如,你在两个浏览器窗口中打开同一个 WordPress 后台页面,在其中一个窗口中新建了一篇文章。和桌面系统不同的是,不管等待多长时间,另一个窗口都不会发生变化,除非你手动刷新网页。
过去这些年,我们已经习惯了,人和网站之间的通信是离散的。
但是,作为新一代框架和技术之一的 Meteor,尝试挑战这一现状,让网页能够实时和响应。
### Meteor 是什么?
Meteor 是一个构建在 Node.js 之上的平台,用来开发实时网页程序。Meteor 位于程序数据库和用户界面之间,保持二者之间的数据同步更新。
因为 Meteor 是基于 Node.js 开发的,所以在客户端和服务器端都使用 JavaScript 作为开发语言。而且,Meteor 程序的代码还能在前后两端共用。
Meteor 这个平台很强大,网页程序开发过程中的很多复杂、容易出错的功能都能抽象出来,实现起来很简单。
### 为什么使用 Meteor?
那么,你为什么要花时间学习 Meteor,而不去学其他框架呢?拨开 Meteor 的各种功能,我们认为原因只有一个:因为 Meteor 易于学习。
而且,和其他框架不同,使用 Meteor,几小时之内就能开发出一个正常运行的实时 web 应用。如果之前做过前端开发,对 JavaScript 已经有所了解,甚至都不用再学习一门新的编程语言。
Meteor 可能就是你要找的理想框架,当然,也可能不是。既然只要几晚或一个周末就能上手,为什么不试试呢?
### 为什么选择这本书?
在过去的几年中,我们一直在开发很多个 Meteor 项目,范围从 web 应用到 Mobile apps,从商业项目到开源项目。
我们学到了很多,但总是不那么容易找到问题的答案。我们不得不从不同来源将东西拼凑在一起,并且在许多情况下,我们甚至创造了我们自己的解决方案。所以通过这本书,我们想分享所有这些经验教训,并创建了一个简单的一步一步的指导,来引导你从零开始构建一个完整的 Meteor 应用。
我们即将构建的应用是一个简化版的社交新闻网站,类似 [Hacker News](http://news.ycombinator.com) 或 [Reddit](http://reddit.com),我们称之为 Microscope(借鉴 Meteor 开源应用 [Telescope](http://telesc.pe)),在开发的过程中,我们会解决构建 Meteor 应用所会遇到的各种要素,例如 user accounts、Meteor Collection、routing 等等。
### 这本书为谁编写?
我们在写这本书时,目标之一就是要让内容通俗易懂。所以,即使你没有任何 Meteor、Node.js、MVC 框架或服务器端编程经验,都能够读完这本书。
但另一方面,我们也假设你熟悉基本的 JavaScript 语法和概念。但是如果你曾经玩过一些 jQuery 代码或用过浏览器 console,你应该是没有问题的。
如果你还不太熟悉 JavaScript,我们建议你在开始阅读本书之前,先阅读一下我们的 [JavaScript primer for Meteor](https://www.discovermeteor.com/blog/javascript-for-meteor/)(英文)。
### 关于作者
如果你想知道我们是谁,为什么要相信我们,这里是两位作者的一些背景介绍。
<%= image "tom-photo.jpg", "portrait" %>
**Tom Coleman** 是 [Percolate Studio](http://percolatestudio.com/)的创始人。Percolate Studio 是一个 web 应用开发商,致力于高品质的产品和用户体验。他也是 [Atmosphere](http://atmosphere.meteor.com/) 仓库的维护人之一,同时也参与开发了多个 Meteor 开源项目。他现在全职工作在 Meteor Development Group。
<%= image "sacha-photo.jpg", "portrait" %>
**Sacha Greif** 是一名产品设计师和网页设计师,为创业项目工作,例如 [Hipmunk](http://www.hipmunk.com/) 和 [RubyMotion](http://rubymotion.com/)。他开发了 [Telescope](http://telesc.pe/) 和 [Sidebar](http://sidebar.io/) (Sidebar 基于 Telecope)
### 章节和附录
我们希望这本书对 Meteor 初学者和有经验的程序员都有所帮助,因此把内容分成了两类:常规的章节(1-14 章)和附录(带 .5 的序号)。
常规的章节会讲解如何开发程序,尽量保证你能跟着我们的步伐实际操作,只关注开发过程中最重要的步骤,不会太深入细节。
而附录则会深入 Meteor 错综复杂的细节,帮助你更好的理解背后到底发生了什么。
如果你是初学者,第一次阅读完全可以跳过附录,熟悉 Meteor 之后再回过头来阅读。
### Git Commits
阅读编程相关的书籍时最怕遇到这种事情,虽然一直跟着书中的步骤,但突然发现代码和示例不一样了,而且程序也不能正常运行。
为了避免这种情况发生,我们特意[在 GitHub 上为 Microscope 建了仓库](https://github.com/DiscoverMeteor/Microscope)。改动一些代码后,会给出指向 git 提交的链接,而且还会链接到该提交对应的线上演示,方便和你自己本地的版本对比。下面一个示例:
<%= commit "11-2", "在 header 显示 notifications" %>
我们提供的代码,并不是为了让你使用 `git checkout` 从一个提交跳到另一个提交。自己动手写代码,学习效果才能更好。
### 一些其他资源
如果想更深入地学习 Meteor 的各项功能,最好的资料就是[官方文档](http://docs.meteor.com/) 和 [Meteor Guide](http://guide.meteor.com)
遇到问题我们建议到 [Stack Overflow](http://stackoverflow.com/questions/tagged/meteor) 网站上寻找帮助。如果想获得实时帮助,可以加入 [IRC](https://webchat.freenode.net/) 的 #meteor 频道。
<% note do %>
### 需要了解 Git 吗?
阅读本书虽然不完全要求你熟悉 Git 版本控制,但我们强烈推荐你去学。
如果想快速上手,我们推荐 Nick Farina 的文章[Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler)。
对 Git 初学者,我们推荐 [GitHub](http://mac.github.com/) app(Mac OS),或 [SourceTree](http://www.sourcetreeapp.com/) (Mac OS & Windows),这两个软件都是免费的。他们可以帮你管理 git repo, 无需使用命令行。
<% end %>
### 联系方式
- 如果想和我们联系,可以发送邮件到 [[email protected]](mailto:[email protected])。
- 如果发现本书中有错别字或不当之处,请到 [提交 bug 到 DiscoverMeteor GitHub repo](https://github.com/DiscoverMeteor/book/issues)。
- 如果发现 Microscope 的代码有问题,请到 [提交 bug 到 Microscope GitHub repo](https://github.com/DiscoverMeteor/Microscope/issues)。
- 如果还有其他问题,可以直接在网页的侧栏中留言。