-
Notifications
You must be signed in to change notification settings - Fork 9
/
01-introduction.md.erb
110 lines (62 loc) · 8.97 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: Pengantar
slug: introduction
date: 0001/01/01
number: 1
points: 1
photoUrl: http://www.flickr.com/photos/62303607@N00/7779436538/
photoAuthor: Richard
contents: Mempelajari apa yang membuat Meteor spesial.|Membaca kisah tentang buku ini.|Mempelajari bagaimana buku ini disusun.
paragraphs: 35
---
Mari kita coba sebuah eksperimen mental sederhana. Bayangkan Anda membuka folder yang sama di dua buah jendela yang berbeda di komputer Anda.
Sekarang coba klik salah satu jendela dan hapus sebuah *file*. Apakah *file* tersebut hilang pula dari jendela yang lain?
Anda tidak perlu benar-benar mencoba melakukan langkah demi langkah tersebut untuk tahu bahwa hasilnya memang iya. Ketika kita mengganti sesuatu di *filesystem* lokal kita, perubahan tersebut akan diterapkan di semua tempat tanpa perlu me-*refresh* ataupun menunggu *callbacks*. Semua akan terjadi begitu saja.
Akan tetapi, mari kita sekarang pikirkan bagaimana hasilnya jika skenario yang sama terjadi di web. Misalnya, katakanlah Anda membuka situs admin WordPress yang sama di dua jendela *browser* dan kemudian membuat sebuah *post* baru di salah satunya. Tidak seperti di desktop, tak peduli berapa lama Anda menunggu, jendela *browser* yang lain tidak akan merefleksikan perubahan tersebut kecuali Anda me-*refresh* jendela yang bersangkutan.
Dari tahun ke tahun, kita telah terbiasa dengan gagasan bahwa komunikasi dengan sebuah *website* berlangsung secara singkat dan terputus-putus.
Meteor merupakan sebuah bagian dari era *framework* dan teknologi baru yang berusaha mengubah status quo dengan membuat web menjadi *real-time* dan reaktif.
### Apa itu Meteor?
Meteor adalah sebuah platform yang dibangun di atas Node.js untuk membuat aplikasi web *real-time*. Meteor bekerja di antara *database* aplikasi Anda dan antarmuka penggunanya dan memastikan bahwa keduanya senantiasa selaras.
Karena dibangun di atas Node.js, Meteor menggunakan JavaScript baik pada sisi *client* maupun *server*. Terlebih lagi, Meteor juga dapat men-*share* kode antar-*environment*.
Hasil dari semua ini adalah sebuah *platform* yang sangat sederhana namun kapabel, yang menangani secara otomatis kerumitan-kerumitan dan kesulitan umum pengembangan aplikasi web.
### Mengapa Meteor?
Jadi mengapa Anda harus meluangkan waktu untuk belajar tentang Meteor daripada *framework* web lainnya? Tanpa mempedulikan berbagai macam fitur yang disajikan Meteor, kami percaya jawabannya terpusat pada satu hal: Meteor mudah dipelajari.
Lebih dari *framework* lainnya, Meteor memungkinkan untuk menyiapkan sebuah aplikasi web *real-time* dalam hitungan jam. Dan apabila Anda sudah pernah melakukan *front-end development* sebelumnya, Anda telah terbiasa dengan JavaScript dan tidak perlu belajar bahasa baru apapun.
Meteor mungkin merupakan *framework* ideal untuk kebutuhan Anda, tapi mungkin juga tidak. Tapi karena Anda dapat mulai mencoba hanya dalam beberapa malam atau akhir pekan, mengapa tidak mencoba dan menemukan kesimpulannya sendiri?
### Mengapa Buku Ini?
Selama 2 tahun terakhir, kami telah mengerjakan beberapa proyek Meteor, yang mencakup dari aplikasi web sampai ke mobile, dan dari proyek komersil sampai ke open-source.
Kami belajar banyak sewaktu membuat aplikasi tersebut, tetapi tidak selalu mudah menemukan jawaban atas pertanyaan-pertanyaan yang kami temui. Kami harus menggabungkan berbagai kepingan dari banyak sumber yang berbeda, dan dalam beberapa kasus bahkan menciptakan solusi sendiri. Dengan buku ini, kami ingin membagi pengalaman-pengalaman kami tersebut, dan membuat sebuah panduan langkah-demi-langkah yang akan memandu Anda membuat sebuah aplikasi Meteor yang lengkap dari nol.
Aplikasi yang akan kita buat merupakan versi serderhana dari website berita sosial seperti [Hacker News](http://news.ycombinator.com) atau [Reddit](http://reddit.com), yang akan kita panggil Microscope (dengan menganalogikan dari aplikasi Meteor open-source [Telescope](http://telesc.pe)). Sewaktu membangunnya, kita akan membahas berbagai elemen yang berbeda yang berkaitan dengan pengembangan aplikasi Meteor, seperti akun pengguna, Meteor *collections*, *routing*, dan lain sebagainya.
### Untuk Siapa Buku Ini?
Salah satu target kami ketika menulis buku ini yaitu membuatnya mudah dipahami. Jadi, kamu bisa mengikuti materi buku ini walaupun kamu tidak memiliki pengalaman dengan Meteor, Node.js, framework MVC, atau bahkan koding/pemrograman server side pada umumnya.
Di sisi lain, kami mengganggap pembaca sudah familiar dengan sintaks dan konsep dasar Javascript. Tapi kalau kamu pernah mencoba jQuery atau mengutak atil dengan konsole developer pada browser, kamu seharusnya sudah bisa mengikuti (OK).
### Tentang Pengarang
Seandainya Anda bertanya-tanya tentang siapa kami dan mengapa Anda bisa mempercayai kami, berikut ini sedikit latar belakang tentang kami berdua.
<%= image "tom-photo.jpg", "portrait" %>
**Tom Coleman** adalah bagian dari [Percolate Studio](http://percolatestudio.com/), sebuah perusahaan web *development* dengan fokus pada kualitas dan *user experience*. Dia salah satu pengelola dari *package repository* [Atmosphere](http://atmosphere.meteor.com), dan juga berada di balik banyak proyek *open-source* Meteor lainnya (seperti misalnya [Iron Router](https://github.com/EventedMind/iron-router)).
<%= image "sacha-photo.jpg", "portrait" %>
**Sacha Greif** telah bekerja dengan perusahaan *startup* seperti [Hipmunk](http://hipmunk.com) dan [RubyMotion](http://rubymotion.com) sebagai disainer web dan produk. Ia adalah kreator dari [Telescope](http://telesc.pe) dan [Sidebar](http://sidebar.io) (yang dibuat berdasarkan Telescope), dan juga merupakan pendiri dari [Folyo](http://folyo.me).
### Bab & Sidebar
Kami ingin buku ini berguna baik bagi pengguna Meteor pemula maupun programer ahli sehingga kami membagi bab-bab buku ini menjadi dua kategori: bab reguler (nomor 1 sampai 14) dan *sidebar* (nomor-nomor .5).
Bab-bab reguler akan menuntun Anda dalam membangun aplikasi dan akan mencoba untuk membuat Anda dapat beroperasi dalam waktu yang sesingkat-singkatnya dengan menyelaskan langkah-langkah terpenting tanpa membebani Anda dengan detail yang terlalu banyak.
Di sisi lain, bab *sidebar* akan membawa Anda lebih dalam ke hal-hal rinci tentang Meteor dan akan membantu Anda untuk lebih paham tentang apa yang sebenarnya terjadi di balik layar.
Jadi, apabila Anda masih pemula, silakan abaikan bab-bab *sidebar* ketika Anda membaca pertama kali, dan bacalah bab-bab tersebut belakangan setelah Anda bermain-main dengan Meteor.
### Commits & Live Instances
Tak ada hal yang lebih buruk dibandingkan mengikuti langkah-langkah di sebuah buku pemrograman dan tiba-tiba menyadari bahwa kode Anda tidak sinkron lagi dengan contoh yang diberikan dan semua tidak bekerja sesuai yang seharusnya.
Untuk mencegah hal ini, kami telah menyiapkan [sebuah repository GitHub untuk Microscope](https://github.com/DiscoverMeteor/Microscope), dan akan menyediakan *direct link* ke git *commits* setiap beberapa perubahan kode. Lebih lanjut, tiap *commit* juga terhubung ke sebuah *live instance* dari aplikasi pada *commit* tersebut, sehingga Anda dapat membandingkannya dengan *local copy* Anda. Berikut ini adalah contoh bagaimana hal itu akan ditampilkan:
<%= commit "11-2", "Tampilkan notifikasi di header." %>
Akan tetapi harap diingat bahwa meski kami menyediakan *commits* tersebut, bukan berarti Anda tinggal pergi dari satu `git checkout` ke yang berikutnya. Anda akan belajar jauh lebih baik jika Anda meluangkan waktu untuk mengetikkan kode aplikasi Anda secara manual!
### Beberapa Sumber Lainnya
Apabila Anda ingin belajar lebih tentang aspek tertentu dari Meteor, [dokumentasi resmi Meteor](http://docs.meteor.com/) merupakan tempat terbaik untuk memulai.
Kami juga merekomendasikan [Stack Overflow](http://stackoverflow.com/questions/tagged/meteor) untuk penanganan masalah dan pertanyaan, dan [IRC channel](https://webchat.freenode.net/) #meteor jika Anda membutuhkan bantuan langsung.
<% note do %>
### Apakah Saya Butuh Git?
Meski Anda tidak harus terbiasa dengan *version control* Git, kami sangat menganjurkannya.
Jika Anda ingin mempelajarinya, kami merekomendasikan [Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler) oleh Nick Farina.
Jika Anda baru mengenal Git, kami juga merekomendasikan aplikasi [GitHub for Mac](http://mac.github.com/), yang memungkinkan Anda meng-*clone* dan me-*manage repos* tanpa menggunakan *command line*.
<% end %>
### Menghubungi Kami
- Jika Anda ingin menghubungi kami, Anda dapat mengirim *email* ke [[email protected]](mailto:[email protected]).
- Lebih lanjut, jika Anda menemukan salah ketik atau kesalahan lainnya pada isi buku, Anda dapat menyampaikannya dengan [men-*submit bug* di *repo* GitHub ini](https://github.com/DiscoverMeteor/book/issues).
- Jika Anda memiliki masalah dengan kode Microscope, Anda dapat [men-*submit bug* di *repository* Microscope](https://github.com/DiscoverMeteor/Microscope/issues).
- Yang terakhir, untuk pertanyaan-pertanyaan lainnya Anda dapat juga meninggalkan komentar di panel samping aplikasi ini.