-
Notifications
You must be signed in to change notification settings - Fork 39
/
01-introduction.md.erb
109 lines (60 loc) · 14.1 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
---
title: Введение
slug: introduction
date: 0001/01/01
number: 1
contents: Узнаете что делает Meteor особенным.|Узнаете историю этой книги.|Узнаете как эта книга структурирована.
paragraphs: 35
---
Давайте проведем небольшой мысленный эксперимент. Представьте, что вы открыли одну и ту же папку, в двух разных окнах на вашем компьютере.
Теперь удалите файл в одном из этих окон. Файл исчез и из другого окна, ведь так?
Вам вовсе не нужно проделывать эти шаги в реальности, чтобы понять, что он также исчез. Когда мы меняем что-либо в нашей локальной файловой системе, изменения применяются везде без необходимости перезагружать окно. Это просто происходит.
Теперь давайте подумаем о том, как тот же сценарий будет развиваться в Интернете. Представим, что вы открыли панель администратора WordPress сайта в двух окнах браузера, а затем добавили пост в одном из них. В отличие от похожей ситуации на вашем компьютере, другое окно не будет отображать изменения, пока вы его не обновите, независимо от того, сколько времени вы прождете.
На протяжении многих лет мы мирились с тем, что общаться с веб-сайтом можно лишь средствами отдельных, коротких запросов.
Но Meteor является представителем новой волны веб-фреймворков, которые бросают вызов устоявшемуся несовершенному порядку, внедряя современные концепции real-time web* и reactive programming*.
### Что представляет из себя Meteor?
Meteor - это платформа для создания так называемых real-time web apps - современных веб-приложений. По сути, Meteor - это слой между интерфейсом вашего приложения и его базой данных, который следит за их синхронизацией.
Поскольку фреймворк построен на основе Node.js, то JavaScript используется как на клиенте, так и на сервере. И более того, Meteor позволяет использовать один и тот же код и на клиенте, и на сервере!
В результате всего этого мы получаем очень мощную, и при этом простую в использовании платформу, так как большинство стандартных рутин и трудностей создания веб-приложений уже реализованы из коробки.
### Почему именно Meteor?
Итак, зачем же вам тратить свое время на изучение Meteor, а не выбрать какой-нибудь другой фреймворк? Даже если мы сейчас оставим в стороне все остальные преимущества этой платформы, то главным останется то, что Meteor удивительно прост в освоении!
В отличие от других фреймворков, он позволяет вам создать собственное real-time веб-приложение и выложить его в Интернете в течение всего лишь нескольких часов. И плюс, если вы когда-нибудь занимались front-end разработкой, то вы уже знакомы с JavaScript и не нужно изучать новый язык.
Meteor может идеально подходить для ваших нужд, а может и не совсем. Но так как на то, чтобы изучить этот фреймворк вам потребуется всего несколько вечеров или уик-энд, то почему бы не попробовать и не выяснить самому?
### Почему именно эта книга?
Последние пару лет мы работали над множеством Meteor-приложений, от веб-приложений до мобильных, коммерческих проектов и проектов с открытым кодом.
Мы усвоили тонны полезной информации, разрабатывая эти приложения, и часто было очень непросто находить ответы на возникающие по ходу вопросы. Нам приходилось искать эти ответы по кускам в разных источниках, а во многих случаях даже придумывать свои решения. Цель написания данной книги - создание простой пошаговой инструкции на основе всего, что мы усвоили, которая постепенно проведет вас через все этапы создания полноценного Meteor-приложения с нуля!
Приложение, которое мы с вами будем создавать - это слегка упрощенная версия сайтов социальных новостей как [Hacker News](http://news.ycombinator.com) или [Reddit](http://reddit.com), и назовем его Microscope (по аналогии с его старшим братом, Meteor-приложения с открытым исходным кодом [Telescope](http://telesc.pe)). Шаг за шагом, в процессе его создания, мы затронем все основные темы, касающиеся разработки приложений на основе Meteor, таких как работа с учетными записями пользователя, коллекции данных, маршрутизация и многое другое.
### Для кого эта книга?
Одна из задач при написании этой книги состояла в том чтобы сделать ее доступной и легкой для понимания. Так, что даже не имея опыта работы с Meteor, Node.js, MVC фреймворками и серверной разработки, вы должны без проблем следовать материалу книги.
С другой стороны, мы ожидаем что вы знакомы с основными концепциями и синтаксисом JavaScript. Если вы хотя бы писали код на jQuery или игрались с консолью разработчика браузера, то вы скорее всего справитесь.
Если вы сомневаетесь в своих познаниях JavaScript, то мы рекомендуем ознакомиться с [JavaScript минимум для Meteor](https://www.discovermeteor.com/blog/javascript-for-meteor/) перед прочтением этой книги.
### Немного об авторах
На случай, если вам интересно, кто же мы такие и почему вы должны нам доверять, то вот немного информации о нас обоих:
<%= image "tom-photo.jpg", "portrait" %>
**Tom Coleman** - сотрудник [Percolate Studio](http://percolatestudio.com/), агентства веб-разработки с особым вниманием к качеству и удобству своих продуктов. Он является одним из разработчиков [Atmosphere](http://atmosphere.meteor.com), а также участник многих других Meteor-проектов с открытым исходным кодом (таких как [Iron Router](https://github.com/EventedMind/iron-router)).
<%= image "sacha-photo.jpg", "portrait" %>
**Sasha Greif** сотрудничал с такими стартапами как [Hipmunk](http://hipmunk.com) и [RubyMotion](http://rubymotion.com) в качестве веб-дизайнера. Он создатель проектов [Telescope](http://telesc.pe) и [Sidebar](http://sidebar.io) (основанном на Telescope), а также основатель [Folyo](http://folyo.me).
### Главы и дополнения
Мы старались, чтобы эта книга была полезной как тех, кто только познакомился с Meteor, так и для опытных программистов, поэтому мы разделили ее главы на 2 категории: обычные (с номерами от 1 до 14) и дополнительные (номера оканчиваются на .5).
В обычных главах мы будем объяснять вам самые важные, базовые вещи процесса создания приложения, не углубляясь слишком глубоко в детали. Так вы быстрее войдете в курс дела и сможете начать применять свои навыки.
В дополнительных же главах мы наоборот будем уводить вас глубже в тонкости фреймворка, и поможем лучше понять, что же происходит за кулисами процессов.
Так что, если вы только начинаете знакомство с Meteor, то лучше просто пропускайте дополнительные главы при первом прочтении. Вы всегда сможете к ним вернуться после изучения основ.
### Коммиты и рабочие версии приложения
Нет ничего хуже чем изучать книгу по программированию, и вдруг понять, что код, который вы пишите отличается от примеров и не работает так, как нужно.
Для этого мы создали [репозиторий на GitHub](https://github.com/DiscoverMeteor/Microscope). Также после изменений кода в книге мы добавляем прямую ссылку на коммиты в этом репозитории. Плюс ко всему, с каждым коммитом сопряжена своя рабочая копия приложения на текущем этапе разработки, так что вы всегда можете ее сравнить со своей локальной версией. Вот пример того, как это выглядит:
<%= commit "11-2", "Display notifications in the header." %>
Но это не значит, что вы должны банально прыгать от одного `git checkout` к другому. Процесс обучения пройдет в несколько раз эффективнее, если вы будете вручную набирать код приложения и по-настоящему вникать в него.
### Другие ресурсы
Если вы захотите глубже изучить какой-нибудь отдельный аспект Meteor, то лучшим местом, чтобы начать будет [официальная документация](http://docs.meteor.com/).
Также мы рекомендуем [официальный Stack Overflow](http://stackoverflow.com/questions/tagged/meteor) и #meteor [IRC канал](https://webchat.freenode.net/), если вам нужна помощь в режиме реального времени.
<% note do %>
### Нужен ли мне Git?
Хотя знакомство с системой контроля версий Git некритично для изучения этой книги, мы все же настоятельно рекомендуем ознакомиться с данным инструментом.
Чтобы быстро разобраться с Git, можете приобрести книгу Nick Farina [Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler).
Также, если вы новичок Git и пользователь системы Mac, то мы рекомендуем приложение [GitHub for Mac](http://mac.github.com/), которое позволяет вам управлять репозиториями без использования командной строки.
<% end %>
### Отзывы и пожелания
- Если вы хотите с нами связаться, то пишите нам на [hello@discovermeteor.com](mailto:hello@discovermeteor.com).
- Если вы найдете ошибку в переводе, то дайте нам знать, [сообщив о баге](https://github.com/DiscoverMeteor/book/issues).
- Если вы обнаружили проблему в коде самого Microscope, то можете сообщить о баге [здесь](https://github.com/DiscoverMeteor/Microscope/issues).
- Наконец, задать любой другой вопрос вы можете прямо в боковой панели этого приложения.