forked from DiscoverMeteor/DiscoverMeteor_Ru
-
Notifications
You must be signed in to change notification settings - Fork 0
/
01-introduction.md.erb
103 lines (57 loc) · 13.2 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
---
title: Введение
slug: introduction
date: 0001/01/01
number: 1
contents: Узнаете что делает Meteor особенным.|Узнаете историю этой книги.|Узнаете как эта книга структурирована.
paragraphs: 35
---
Давайте проведем небольшой мысленный эксперимент. Представьте, что вы открыли одну и ту же папку, в двух разных окнах на вашем компьютере.
Теперь удалите файл в одном из этих окон. Файл исчез и из другого окна, ведь так?
Вам вовсе не нужно проделывать эти шаги в реальности, чтобы понять, что он также исчез. Когда мы меняем что-либо в нашей локальной файловой системе, изменения применяются повсеместно без необходимости перезагружать окно. Это просто происходит.
Теперь давайте подумаем о том, как тот же сценарий будет развиваться в Интернете. Представим, что вы открыли админку сайта на WordPress в двух окнах браузера , а затем добавили пост в одном из них . В отличие от похожей ситуации на вашем компьютере, другое окно не будет отображать изменения, пока вы его не обновите, независимо от того, сколько времени вы прождете.
На протяжении многих лет мы мирились с тем, что общаться с веб-сайтом можно лишь средствами отдельных, коротких запросов.
Но Meteor является представителем новой волны веб-фреймворков, которые бросают вызов устоявшемуся несовершенному порядку, внедряя современные концепции real-time web* и reactive programing*.
### Что представляет из себя Meteor?
Meteor - это платформа для создания так называемых real-time web apps - современных веб-приложений, где браузер и сервер общаются друг с другом в реальном времени без перезагрузки страницы. По сути Meteor - это слой между интерфейсом вашего приложения и его базой данных, который следит за их синхронизацией.
Поскольку фреймворк построен на основе Node.js, то JavaScript используется как на клиенте, так и на сервере. И более того, Meteor позволяет использовать один и тот же код и на клиенте и на сервере!
В результате всего этого мы получаем очень мощную, и при этом простую в использовании платформу, т.к. большинство стандартных рутин и трудностей создания веб-приложений уже реализованы из коробки.
### Почему именно Meteor?
И так, зачем же вам тратить свое время на изучение Meteor, а не выбрать какой-нибудь другой фреймворк? Даже если мы сейчас оставим в стороне все остальные преимущества данной платформы, то главным останется то, что Meteor удивительно прост в освоении!
В отличие от других фреймворков, он позволяет вам создать собственное real-time приложение и выложить его в интернете в течение всего лишь нескольких часов. И плюс, если вы когда-нибудь занимались front-end разработкой, то вы уже знакомы с JavaScript и не нужно изучать никакой новый язык.
Meteor может идеально подходить для ваших нужд, а может и не совсем. Но так как на то, чтобы изучить этот фреймворк вам потребуется всего несколько вечеров или уик-энд, то почему бы не попробовать и не выяснить самому?
### Почему именно эта книга?
Последние 6 месяцев мы работали над Meteor-приложением с открытым исходным кодом под названием Telescope, которое позволяет пользователям создать собственный сайт социальных новостей (типа Reddit или Hacker News), где люди могут постить ссылки и голосовать за них.
Мы усвоили тонны полезной информации, разрабатывая это приложение, и часто было очень непросто находить ответы на возникающие по ходу вопросы. Нам приходилось искать эти ответы по кускам в разных источниках, а во многих случаях даже придумывать свои решения. Цель написания данной книги - создание простой пошаговой инструкции на основе всего, что мы усвоили, которая постепенно проведет вас через все этапы создания полноценного Meteor-приложения с нуля!
Приложение, которое мы с вами будем создавать - это слегка упрощенная версия Telescope, которую мы назовем Microscope. Шаг за шагом, в процессе его создания, мы затронем все основные темы, касающиеся разработки приложений на основе Meteor, таких как работа с пользователями, коллекции данных, рутинг и многое другое.
При желании двигаться все дальше, прочтя эту книгу, вы без проблем сможете понять код и самого Telescope, так как он написан используя те же принципы.
### Немного об авторах
На случай если вам интересно кто же мы такие и почему вы должны нам доверять, то вот немного информации о нас обоих:
<%= image "tom-photo.jpg", "portrait" %>
**Tom Coleman** - сотрудник [Percolate Studio](http://percolatestudio.com/), агенства веб-разработки с особым вниманием к качеству и удобству своих продуктов. Он является одним из создателей [Meteorite](https://github.com/oortcloud/meteorite) и [Atmosphere](http://atmosphere.meteor.com), а также участник многих других open-source проектов, связанных с Meteor.
<%= 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/SachaG/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 channel](https://webchat.freenode.net/), если вам нужна помощь в режиме реального времени.
<% note do %>
### Нужен ли мне Git?
Хотя знакомство с системой контроля версий Git некритично для изучения данной книги, мы все же настоятельно рекомендуем ознакомиться с данным инструментом.
Чтобы быстро разобраться с Git, можете приобрести книгу [Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler) by Nick Farina.
Также, если вы новичок Git и пользователь системы Mac, то мы рекомендуем приложение [GitHub for Mac](http://mac.github.com/), которое позволяет вам управлять репозиториями без использования командной строки.
<% end %>
### Отзывы и пожелания
- Если вы хотите с нами связаться, то пишите нам на [[email protected]](mailto:[email protected]).
- Если вы найдете ошибку в переводе, то дайте нам знать, [сообщив о баге](https://github.com/DiscoverMeteor/book/issues).
- Если вы обнаружили проблему в коде самого Microscope, то можете сообщить о баге [здесь](https://github.com/DiscoverMeteor/Microscope/issues).
- Наконец, задать любой другой вопрос вы можете прямо в сайдбаре этого приложения