-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path01-introduction.md.erb
109 lines (60 loc) · 15.5 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: 37
---
Ας κάνουμε ένα νοητικό πείραμα. Φανταστείτε ότι ανοίγετε τον ίδιο φάκελο σε δύο διαφορετικά παράθυρα του υπολογιστή σας.
Τώρα πηγαίνετε σε ένα από τα δύο παράθυρα και σβήστε ένα αρχείο. Το αρχείο αυτό εξαφανίστηκε και από το άλλο παράθυρο;
Δεν χρειάζεται να κάνετε αυτά τα βήματα για να βεβαιωθείτε ότι έτσι είναι. Όταν αλλάζουμε κάτι στο τοπικό σύστημα αρχείων (local filesystem), η αλλαγή εφαρμόζεται παντού χωρίς να χρειάζεται ανανέωση (refresh) ή επανάκληση (callback). Απλά συμβαίνει.
Όμως, ας σκεφτούμε πώς θα εξελισσόταν το ίδιο σενάριο στο διαδίκτυο. Για παράδειγμα, ας πούμε ότι ανοίγετe την σελίδα διαχείρισης (admin page) του WordPress του ίδιου ιστοτόπου σε δύο διαφορετικά παράθυρα φιλομετρητή (browser) και στη συνέχεια δημιουργείτε ένα νέο δημοσίευμα (post) σε ένα από τα δύο παράθυρα. Αντίθετα με την επιφάνεια εργασίας, όσο και να περιμένετε το άλλο παράθυρο φιλομετρητή δε θα απεικονίσει την αλλαγή μέχρι να το ανανεώσετε.
Με τα χρόνια συνηθίσαμε την ιδέα ότι οι ιστότοποι είναι κάτι με το οποίο επικοινωνούμε σε μικρές χωριστές ρυπές.
Το Meteor όμως είναι μέρος ενός νέου κύματος προγραμματιστικών πλαισίων (frameworks) και τεχνολογιών που αμφισβητούν το status quo κάνοντας το διαδίκτυο περισσότερο ζωντανό (real-time) και αντιδραστικό (reactive).
### Τι είναι το Meteor;
Το Meteor είναι μια πλατφόρμα η οποία χτίστηκε πάνω στο Node.js για την κατασκευή εφαρμογών πραγματικού χρόνου. Είναι αυτό που κάθεται ανάμεσα στη βάση δεδομένων (database) της εφαρμογής σας και το περιβάλλον χρήσης (user interface), και φροντίζει να συγχρονίζονται μεταξύ τους.
Δεδομένου ότι χτίστηκε πάνω στο Node.js, το Meteor χρησιμοποιεί JavaScript τόσο στο περιβάλλον του πελάτη (client) όσο και στο περιβάλλον του διακομιστή (server). Επιπλέον, το Meteor έχει τη δυνατότητα να μοιράζεται κώδικα μεταξύ των δύο περιβαλλόντων.
Το αποτέλεσμα όλων αυτών είναι μια πλατφόρμα που καταφέρνει να είναι πολύ ισχυρή και πολύ απλή, αφαιρώντας πολλές από τις συνήθεις δυσκολίες και παγίδες της ανάπτυξης εφαρμογών για το διαδίκτυο.
### Γιατί το Meteor;
Γιατί να ξοδέψετε το χρόνο σας μαθαίνοντας το Meteor αντί κάποιου άλλου προγραμματιστικού πλαισίου; Αφήνοντας στην άκρη τα χαρακτηριστικά του Meteor, πιστεύουμε ότι όλα συνοψίζονται σε ένα πράγμα: το Meteor είναι εύκολο στη μάθηση.
Περισσότερο από κάθε άλλο προγραμματιστικό πλαίσιο, το Meteor παρέχει τη δυνατότητα να δημιουργήσετε και να θέσετε σε λειτουργία μια διαδικτυακή εφαρμογή ζωντανού χρόνου (real-time web app) σε λίγες ώρες. Και αν έχετε ασχοληθεί με την ανάπτυξη περιβάλλοντος χρήσης στο παρελθόν, θα έχετε ήδη κάποια εμπειρία με τη JavaScript και δε θα χρειαστεί καν να μάθετε μια νέα γλώσσα.
Το Meteor ίσως είναι το ιδανικό προγραμματιστικό πλαίσιο για τις ανάγκες σας, αλλά ίσως και όχι. Αφού όμως μπορείτε να ξεκινήσετε σε μερικά απογεύματα ή σε ένα Σαββατοκύριακο, γιατί να μην το δοκιμάσετε;
### Γιατί αυτό το βιβλίο;
Τα τελευταία χρόνια ασχοληθήκαμε με πολλές εφαρμογές με βάση το Meteor, από εφαρμογές για το διαδίκτυο μέχρι εφαρμογές για κινητά τηλέφωνα, τόσο για εμπορική χρήση όσο και λογισμικού ανοιχτού κώδικα.
Μάθαμε πολλά, αλλά δεν ήταν πάντα εύκολο να βρούμε τις απαντήσεις στις απορίες μας. Έπρεπε να μαζέψουμε πληροφορίες από διάφορες πηγές, και σε πολλές περιπτώσεις να ανακαλύψουμε τις δικές μας λύσεις. Με αυτό το βιβλίο θέλαμε να μοιραστούμε όλα αυτά τα μαθήματα και να δημιουργήσουμε έναν απλό οδηγό βήμα-βήμα που θα σας δείξει πώς να φτιάξετε μια πλήρη εφαρμογή του Meteor ξεκινώντας από το μηδέν.
Η εφαρμογή που θα κατασκευάσουμε είναι μια απλοποιημένη έκδοση ενός ιστοτόπου κοινωνικών νέων όπως το [Hacker News](http://news.ycombinator.com) ή το [Reddit](http://reddit.com), το οποίο θα ονομάσουμε Microscope (σε αναλογία με το μεγαλύτερο αδερφό του, την εφαρμογή ανοιχτού κώδικα [Telescope](http://telesc.pe)). Κατά την κατασκευή της θα ασχοληθούμε με όλα τα επιμέρους στοιχεία που συνδυάζονται για τη δημιουργία μιας Meteor εφαρμογής, όπως οι λογαριασμοί χρηστών, οι συλλογές Meteor, η δρομολόγηση (routing) και πολλά άλλα.
### Για ποιον είναι αυτό το βιβλίο;
Ένας από τους στόχους μας κατά τη συγγραφή του βιβλίου ήταν να διατηρήσουμε τα πάντα προσβάσιμα και εύκολα στην κατανόηση. Συνεπώς θα πρέπει να μπορείτε να το παρακολουθήσετε ακόμα και αν δεν έχετε κάποια εμπειρία με το Meteor, το Node.js, τα MVC frameworks, ή ακόμα με τη δημιουργία κώδικα για περιβάλλον διακομιστή γενικά.
Θεωρούμε όμως δεδομένη μια σχετική εξοικίωση με τη βασική σύνταξη και τις έννοιες της JavaScript. Αν έχετε τροποποιήσει ποτέ κώδικα jQuery ή αν έχετε πειραματιστεί με την κονσόλα προγραμματισμου του φυλομετρητή σας (browser's developer console), λογικά είστε εντάξει.
Αν δεν είστε εξοικιωμένοι με την JavaScript ακόμα, προτείνουμε να δείτε το [JavaScript primer for 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" %>
Ο **Sacha Greif** έχει εργαστεί ως σχεδιαστής προϊόντος και ιστοσελίδων για εγχειρήματα όπως το [Hipmunk](http://hipmunk.com) και το [RubyMotion](http://rubymotion.com). Είναι ο δημιουργός του [Telescope](http://telesc.pe) και του [Sidebar](http://sidebar.io) (το οποίο βασίζεται στο Telescope), καθώς και ο ιδρυτής του [Folyo](http://folyo.me).
### Κεφάλαια & Παραρτήματα
Θέλαμε αυτό το βιβλίο να είναι χρήσιμο τόσο για τον αρχάριο χρήστη του Meteor όσο και για τον προχωρημένο, γι' αυτό χωρίζουμε τα κεφάλαια σε δύο κατηγορίες: κανονικά κεφάλαια (αριθμημένα από 1 ως 24) και παραρτήματα τα οποία συνοδεύουν το αντίστοιχο κεφάλαιο και σημαίνονται με δεκαδικούς αριθμούς (.5).
Τα κανονικά κεφάλαια θα σας οδηγήσουν στη δημιουργία της εφαρμογής, και θα προσπαθήσουν να σας φέρουν σε λειτουργική κατάσταση το συντομότερο δυνατό, εξηγώντας τα πιο σημαντικά βήματα χωρίς να σας μπερδεύουν με πολλές λεπτομέρειες.
Από την άλλη πλευρά, τα παραρτήματα εμβαθύνουν σε πιο περίπλοκες πτυχές του Meteor και θα σας βοηθήσουν να καταλάβετε καλύτερα τι πραγματικά συμβαίνει στο παρασκήνιο.
Συνεπώς αν είστε αρχάριος, συστήνεται να παρακάμψετε τα παραρτήματα κατά την πρώτη ανάγνωση, και να επιστρέψετε σε αυτά αργότερα, όταν θα έχετε αποκτήσει μια αρχική εμπειρία με το Meteor.
### Commits & Live Instances
Δεν υπάρχει κάτι χειρότερο από το να ακολουθείτε ένα βιβλίο προγραμματισμού και ξαφνικά να διαπιστώνετε ότι ο κώδικάς σας δεν είναι συγχρονισμένος με τα παραδείγματα και τίποτα δεν λειτουργεί σωστά.
Για να το αποφύγουμε αυτό, έχουμε στήσει μια [αποθήκη GitHub για το Microscope](https://github.com/DiscoverMeteor/Microscope), και θα παρέχουμε άμεσες συνδέσεις σε git commits κάθε τόσο. Επιπλέον, κάθε git commit συνδέεται σε μια ζωντανή έκδοση της εφαρμογής για το συγκεκριμένο commit, έτσι ώστε να μπορείτε να το συγκρίνετε με το δικό σας. Για παράδειγμα:
<%= commit "11-2", "Εμφάνιση ειδοποιήσεων στην επικεφαλίδα." %>
Να θυμάστε όμως ότι παρέχουμε αυτά τα commits για βοήθεια, όχι για να κάνετε `git checkout` από το ένα στο άλλο. Θα μάθετε πολύ περισσότερα αν πληκτρολογήσετε τον κώδικα μόνοι σας!
### Άλλες Πηγές
Αν θέλετε να μάθετε περισσότερα για κάποια συγκεκριμένη λειτουργία του Meteor, η [επίσημη τεκμηρίωση του Meteor](http://docs.meteor.com/) είναι το καλύτερο μέρος για να ξεκινήσετε.
Συστήνουμε επίσης το [Stack Overflow](http://stackoverflow.com/questions/tagged/meteor) για ερωτήσεις και αντιμετώπιση σφαλμάτων, καθώς και το #meteor [κανάλι IRC](https://webchat.freenode.net/) αν θέλετε ζωντανή βοήθεια.
<% note do %>
### Χρειάζομαι το Git;
Παρότι η εξοικείωση με τον έλεγχο εκδόσεων του Git δεν είναι αυστηρά απαραίτητη για να ακολουθήσετε αυτό το βιβλίο, αλλά θεωρούμε ότι σας βοηθήσει σημαντικά.
Προτείνουμε να διαβάσετε το άρθρο του Nick Farina [Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler).
Όσον αφορά το λογισμικό, ειδικά αν είστε αρχάριος και δυσκολεύεστε να χρησιμοποιήσετε τη γραμμή εντολών, προτείνουμε το [GitHub for Windows](http://windows.github.com/) και το [GitHub for Mac](http://mac.github.com/), τα οποία παρέχουν πολλές λειτουργίες σε γραφικό περιβάλλον.
<% end %>
### Πώς να έρθετε σε Επαφή μαζί μας
- Αν θέλετε να έρθετε σε επαφή μαζί μας, μπορείτε να μας στείλετε email στο [[email protected]](mailto:[email protected]).
- Επιπλέον, αν βρείτε κάποιο ορθογραφικό, γραμματικό ή οποιοδήποτε άλλο λάθος στα περιεχόμενα του βιβλίου, μπορείτε να μας ενημερώσετε [στέλνοντας αναφορά σφάλματος σε αυτό το GitHub repo](https://github.com/DiscoverMeteor/book/issues).
- Αν έχετε κάποιο πρόβλημα με τον κώδικα του Microscope, μπορείτε να στείλετε [αναφορά σφάλματος στο repository του Microscope](https://github.com/DiscoverMeteor/Microscope/issues).
- Τέλος, για κάθε άλλη ερώτηση, μπορείτε να μας αφήσετε σχόλιο στο πλαϊνό πλαίσιο αυτής της εφαρμογής.