🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
--- title: 简介 slug: introduction date: 0001/01/01 number: 1 points: 1 contents: Meteor 的特别之处|本书简介|本书的内容结构 paragraphs: 35 --- 先来活动一下大脑。假设你坐在电脑面前,在两个窗口中打开同一个文件夹。 在其中一个窗口中删除一个文件,另一个窗口中的这个文件会消失吗? 不用实际操作你也知道肯定会消失的。在本地文件系统中的操作,不用刷新或者回调,变动就能应用到所有地方。 我们再来看一下相同的事情在网页中会有什么结果。例如,你在两个浏览器窗口中打开同一个 WordPress 后台页面,在其中一个窗口中新建了一篇文章。和桌面系统不同的是,不管等待多长时间,另一个窗口都不会发生变化,除非你手动刷新网页。 过去这些年,我们已经习惯了,人和网站之间的通信是离散的。 但是,作为新一代框架和技术之一的 Meteor,尝试挑战这一现状,让网页能够实时和响应。 ### Meteor 是什么? Meteor 是一个构建在 Node.js 之上的平台,用来开发实时网页程序。Meteor 位于程序数据库和用户界面之间,保持二者之间的数据同步更新。 因为 Meteor 是基于 Node.js 开发的,所以在客户端和服务器端都使用 JavaScript 作为开发语言。而且,Meteor 程序的代码还能在前后两端共用。 Meteor 这个平台很强大,网页程序开发过程中的很多复杂、容易出错的功能都能抽象出来,实现起来很简单。 ### 为什么使用 Meteor? 那么,你为什么要花时间学习 Meteor,而不去学其他框架呢?拨开 Meteor 的各种功能,我们认为原因只有一个:因为 Meteor 易于学习。 而且,和其他框架不同,使用 Meteor,几小时之内就能开发出一个正常运行的实时网页程序。如果之前做过前端开发,对 JavaScript 已经有所了解,甚至都不用再学习一门新的编程语言。 Meteor 可能就是你要找的理想框架,当然,也可能不是。既然只要几晚或一个周末就能上手,为什么不试试呢? ### 为什么选择这本书? 在过去的几年中,我们一直在开发很多个 Meteor 项目,范围从网站到移动应用,从商业项目到开源项目。 我们学到了很多,但总是不那么容易找到问题的答案。我们不得不从不同来源讲东西拼凑在一起,并且在许多情况下,我们甚至创造了我们自己的解决方案。所以通过这本书,我们想分享所有这些经验教训,并创建了一个简单的一步一步的指导,来引导你从零开始构建一个完整的 Meteor 应用。 我们即将构建的应用是一个简化版的社交新闻网站,类似 [Hacker News](http://news.ycombinator.com) 或 [Reddit](http://reddit.com),我们称之为 Microscope(借鉴 Meteor 开源应用 [Telescope](http://telesc.pe)),在开发的过程中,我们会解决 构建 Meteor 应用所会遇到的各种要素,例如用户账户、Meteor Collection、路由等等。 ### 这本书为谁编写? 我们在写这本书时,目标之一就是要让内容通俗易懂。所以,即使你没有任何 Meteor、Node.js、MVC 框架或服务器端编程经验,都能够读完这本书。 但另一方面,我们也假设你熟悉基本的 JavaScript 语法和概念。但是如果你曾经玩过一些 jQuery 代码或接触过浏览器开发者控制台,你应该是没有问题的。 如果你还不太熟悉 JavaScript,我们建议你在开始阅读本书之前,先阅读一下我们的 [JavaScript primer for Meteor](https://www.discovermeteor.com/blog/javascript-for-meteor/)(英文)。 ### 关于作者 如果你想知道我们是谁,为什么要相信我们,这里是两位作者的一些背景介绍。 <%= image "tom-photo.jpg", "portrait" %> **Tom Coleman** 是 [Percolate 工作室](http://percolatestudio.com/)的一员。Percolate 工作室是一个程序开发商,致力于高品质的产品和用户体验。他也是 [Atmosphere](http://atmosphere.meteor.com/) 包仓库的维护人之一,同时也参与开发了多个 Meteor 开源项目(例如 [Iron Router](https://github.com/EventedMind/iron-router))。 <%= image "sacha-photo.jpg", "portrait" %> **Sacha Greif** 是一名产品设计师和网页设计师,为创业项目工作,例如 [Hipmunk](http://www.hipmunk.com/) 和 [RubyMotion](http://rubymotion.com/)。他开发了 [Telescope](http://telesc.pe/) 和 [Sidebar](http://sidebar.io/),还是 [Folyo](http://folyo.me/) 的创始人。 ### 章节和附录 我们希望这本书对 Meteor 初学者和有经验的程序员都有所帮助,因此把内容分成了两类:常规的章节(1-14 章)和附录(带 .5 的序号)。 常规的章节会讲解如何开发程序,尽量保证你能跟着我们的步伐实际操作,只关注开发过程中最重要的步骤,不会太深入细节。 而附录则会深入 Meteor 错综复杂的细节,帮助你更好的理解背后到底发生了什么。 如果你是初学者,第一次阅读完全可以跳过附录,熟悉 Meteor 之后再回过头来阅读。 ### 代码提交和线上演示 阅读编程相关的书籍时最怕遇到这种事情,虽然一直跟着书中的步骤,但突然发现代码和示例不一样了,而且程序也不能正常运行。 为了避免这种情况发生,我们特意[在 GitHub 上为 Microscope 建了仓库](https://github.com/DiscoverMeteor/Microscope)。改动一些代码后,会给出指向 git 提交的链接,而且还会链接到该提交对应的线上演示,方便和你自己本地的版本对比。下面一个示例: <%= commit "11-2", "在头部显示提醒" %> 我们提供的代码提交链接,并不是为了让你使用 `git checkout` 从一个提交跳到另一个提交。自己动手输入程序的代码,学习效果才能更好。 ### 一些其他资源 如果想更深入地学习 Meteor 的各项功能,最好的资料就是[官方文档](http://docs.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/) (Mac OS),或 [SourceTree](http://www.sourcetreeapp.com/) (Mac OS & Windows),这两个软件都是免费的。 <% end %> ### 联系方式 - 如果想和我们联系,可以发送邮件到 [hello@discovermeteor.com](mailto:hello@discovermeteor.com)。 - 如果发现本书中有错别字或不当之处,请到 [GitHub 上的仓库](https://github.com/DiscoverMeteor/book/issues)中提交。 - 如果发现 Microscope 的代码有问题,请到 [Microscope 的仓库](https://github.com/DiscoverMeteor/Microscope/issues)中提交。 - 如果还有其他问题,可以直接在网页的侧栏中留言。