-
Notifications
You must be signed in to change notification settings - Fork 6
/
01-introduction.md.erb
executable file
·110 lines (60 loc) · 13.7 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
---
title: Вступ
slug: introduction
date: 0001/01/01
number: 1
contents: Дізнаєтесь, що саме робить Meteor особливим.|Прочитаєте історію цієї книги.|Дізнаєтесь структуру цієї книги.
paragraphs: 37
---
Давайте проведемо невеличкий експеримент. Уявімо, що ми відкрили одну й ту саму папку у двох різних вікнах на комп'ютері.
Тепер видалимо файл в одному з двох вікон. Наш файл зникає так само як і з вашого вікна?
Насправді вам не потрібні всі ці кроки, щоб знати, що він і так зник. Коли ми змінюємо щось у нашій локальній файловій системі, зміни відбуваються цілісно по всій системі без необхідності оновлення або зворотних викликів. Це просто відбувається.
Однак, давайте подумаємо про те, яким чином це б відбувалось в мережі інтернет. Наприклад, припустимо, що ви відкрили один і той самий сайт WordPress за адміна у двох вікнах браузера, а потім створили новий пост в одному з них. На відміну від того як це відбувалось на вашому комп’ютері, інше вікно відобразить зміни, лише після того, як ви поновите сторінку, як довго б ви не чекали.
Протягом багатьох років ми звиклися з тим, що ми спілкуємося з веб-сайтами лише шляхом коротких окремих запитів.
Але Meteor є частиною нової хвилі фреймворків і технологій, які кидають виклик статусу-кво веб-сайтів, помістивши їх у реальний час і надавши їм реактивності.
### Що таке Meteor?
Meteor - це платформа, побудована на основі Node.js для створення веб-додатків у режимі реального часу. Це прошарок між вашою базою даних та інтерфейсом програм, що стежить за їхньою синхронізацією.
Оскільки він побудований на основі Node.js, то JavaScript використовується як на клієнті, так і на сервері. Більше того, Meteor також дозволяє використовувати один код як та клієнті, так і на сервері.
В результаті всього цього, абстрагуючись від багатьох звичних неприємностей і підводних каменів розробки веб-додатків, ми маємо дуже потужну і водночас дуже просту у використанні платформу.
### Чому саме Meteor?
Тож, чому ви повинні витрачати свій час на вивчення саме Meteor, а не якогось іншого фрейворку? Не беручи навіть до уваги всі можливості Meteor, все зводиться до одного: Meteor дуже легкий у вивченні.
На відміну від усіх інших фреймворків, Meteor дає вам можливість створити власний веб-додаток реального часу (real-time web app) і викласти його в мережу за лічені години. І якщо ви коли-небудь до цього займались front-end розробкою, то ви вже знайомі з JavaScript і вам навіть не потрібно вчити нову мову.
Meteor може бути ідеальним фреймворком для Ваших потреб, або знову ж таки є імовірність, що ні. Але, оскільки ви можете оволодіти цією платформою за кілька вечорів або за вихідні, то чому б і не спробувати і самому не з'ясувати?
### Чому саме ця книга?
Останні 6 місяців ми працюємо на [Telescope](http://telesc.pe), Meteor-додатком з відкритим вихідним кодом, який дозволяє кожному створити свій власний сайт соціальних новин (на зразок [Reddit](http://reddit.com) або [Hacker news](http://news.ycombinator.com)), де можна постити лінки та голосувати за них.
Ми дізналися масу нової інформації у процесі розробки цього додатку, але нам не завжди було легко знайти відповіді на наші запитання. Нам доводилось знаходити відповіді на них уривками з різних джерел і в багатьох випадках навіть винаходити свої власні рішення. Цією книгою ми хотіли б поділитися всіма опанованими уроками і створити просту покрокову інструкцію, яке допоможе вам створити повноцінний Meteor-додаток з нуля.
Програма, яку ми побудуємо є трохи спрощеною версією Telescope, який ми називаємо Microscope. При її створенні, ми розглянемо всі елементи стосовно розробки Meteor-додатка, а саме облікові записи користувача, колекція даних, маршрутизації тощо.
І якщо після прочитання книги ви захочете піти далі, ви зможете легко розібратися в коді Telescope, оскільки він має той самий принцип.
### Для кого написана ця книга?
Одна з наших цілей при написанні цієї книги полягала у легкодоступності для розуміння. Щоб ви могли розуміти навіть якщо у вас немає досвіду роботи з Meteor, Node, MVC-фреймфорком або навіть у серверському кодуванні взагалі.
З іншого боку, ми вважаємо за потрібне бути знайомим з основним синтаксисом та концепціями JavaScript. Але якщо ви коли-небудь нашвидку написали кілька jQuery кодів або пробували браузерну консоль розробника, то все з вами добре.
### Про авторів
У випадку, якщо вам цікаво, хто ми є і чому ви повинні довіряти нам, тут трохи більше інформації про нас обох.
<%= image "tom-photo.jpg", "portrait" %>
**Tom Coleman** – співробітник [Percolate Studio](http://percolatestudio.com/), магазину веб-розробки з орієнтацією на якість і досвід користувачів. Він – один із співзасновників [Meteorite](https://github.com/oortcloud/meteorite) та [Atmosphere](http://atmosphere.meteor.com), а також учасник багатьох інших Meteor open source проектів (таких як [Iron Router](https://github.com/EventedMind/iron-router)).
<%= image "sacha-photo.jpg", "portrait" %>
**Sacha Greif** працював із такими стартапами як [Hipmunk](http://hipmunk.com) and [RubyMotion](http://rubymotion.com) в якості веб-дизайнера. Він засновник [Telescope](http://telesc.pe) і [Sidebar](http://sidebar.io) (який базується на Telescope), а також засновник [Folyo](http://folyo.me).
### Структура книги
Ми хотіли, щоб ця книга була корисною як для користувача, який лише ознайомлюється з Meteor, так і досвідченого програміста. Тому ми розділили її розділи на дві категорії: звичайні розділи (пронумеровані від 1 до 14) і додаткові розділи (числа, що закінчуються на 5).
В звичайних розділах ви ознайомитеся з процесом створення додатка, ми пояснимо вам найбільш важливі базові кроки, не вдаючись занадто у подробиці та допоможемо вам якомога скоріше застосувати ваші навички.
Натомість у додаткових розділах ми будемо заглиблювати вас у тонкощі Meteor, і вони допоможуть вам краще зрозуміти те, що насправді відбувається за лаштунками.
Тож, якщо ви початківець, радимо вам пропустити додаткові розділи при першому прочитанні і повернутися до них пізніше після ознайомлення з Meteor.
### Комміти і робочі версії додатку
Немає нічого гіршого ніж вивчати книгу по програмуванню і раптом зрозуміти, що код, який ви пишете, не співпадає з прикладами і що нічого не працює як має.
Щоб запобігти цьому, ми створили [репозиторій на GitHub для Microscope](https://github.com/DiscoverMeteor/Microscope), і також ми додамо пряме посилання на коміти у цьому репозиторії після зміни коду. Крім того, кожен коміт також має посилання на робочу версію програми, так що ви можете порівняти її з вашою локальною копією. Ось приклад, як це буде виглядати:
<%= commit "11-2", "Display notifications in the header." %>
Але зверніть увагу, що тільки тому, що ми надаємо ці комміти зовсім не означає, що ви повинні просто стрибати від одного `git checkout` до іншого. Ви навчитеся набагато краще, якщо ви виділите час на введення коду вашої програми вручну!
### Кілька інших ресурсів
Якщо ви хочете більше дізнатися про певний аспект Meteor, то найкращим місцем для початку буде [офіційна документація Meteor](http://docs.meteor.com/).
Для вирішення проблем в режиму нагальної допомоги ми також рекомендуємо офіційний [Stack Overflow](http://stackoverflow.com/questions/tagged/meteor) і #meteor [IRC channel](https://webchat.freenode.net/) якщо вам потрібна поміч наживо.
<% note do %>
### Чи треба мені Git?
Хоча знайомство з системою контроля версій Git у цій книзі не є суворо необхідним, ми наполегливо рекомендуємо це зробити.
Якщо ви хочете швидко розібратись у цій програмі, ми рекомендуємо придбати книгу Nick Farina [Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler).
Якщо ви початківець у Git, ми також рекомендуємо програму [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).
- Нарешті, якщо у вас виникнуть інші питання, ви також можете просто залишити нам коментар на бічній панелі додатку.