Κατανόηση των βασικών στοιχείων του Ruby on Rails: HTTP, MVC και Routes

Αφού μάθετε την πρώτη σας γλώσσα προγραμματισμού , μπορείτε να ρωτήσετε τι μπορείτε να κάνετε με τον προγραμματισμό: AI / Machine Learning; Ανάπτυξη υλικού; Εφαρμογές για κινητά; Ή ίσως θέλετε να ξεκινήσετε την ανάπτυξη εφαρμογών ιστού! :)

Εδώ θα κατανοήσουμε τα βασικά στοιχεία του τρόπου λειτουργίας του ιστού, των διαδρομών και της αρχιτεκτονικής MVC χρησιμοποιώντας το πλαίσιο ιστού Ruby on Rails. Ας βουτήξουμε στον κόσμο του διαδικτύου.

Πριν μάθετε την ανάπτυξη ιστού με το Rails, προτείνω να μάθετε πρώτα για την Ruby .

Πώς λειτουργεί ο ιστός;

Ο ιστός έχει μια δέσμη επιπέδων (Application, TCP, Internet, Hardware layer) που είναι όλα συνδεδεμένα. Αλλά βασικά, λειτουργεί μέσω HTTP ( Hypertext Transfer Protocol ).

Το πρωτόκολλο μεταφοράς υπερκειμένου ( HTTP ) είναι ένα πρωτόκολλο εφαρμογής για κατανεμημένα, συνεργατικά, συστήματα πληροφοριών υπερμέσων. - Βικιπαίδεια

Το HTTP λειτουργεί σαν κύκλος αιτήσεων - απόκρισης στο μοντέλο πελάτη - διακομιστή .

Έχουμε ένα πρόγραμμα περιήγησης ιστού (για παράδειγμα, το Google Chrome). Γι 'αυτό πληκτρολογούμε τη www.google.comδιεύθυνση URL και ο πελάτης υποβάλλει το αίτημα HTTP (μήνυμα αίτησης) στον διακομιστή . Ο διακομιστής επιστρέφει την απόκριση HTTP (μήνυμα απόκρισης - σε αυτήν την περίπτωση, η απόκριση είναι ο HTML από τον ιστότοπο της Google).

Ο πελάτης κάνει το αίτημα και λαμβάνει την απάντηση από το διακομιστή . Ο πελάτης χειρίζεται τις αλληλεπιδράσεις χρήστη και χρήστη. Στον διακομιστή, μπορούμε να αποθηκεύσουμε και να ανακτήσουμε δεδομένα (σε βάσεις δεδομένων), να επεξεργαστούμε τη λογική στο παρασκήνιο (εργαζόμενοι / εργασίες) και πολλά άλλα πράγματα.

Αν θέλετε να το καταλάβετε βαθιά, θα προτείνω κάποιους πόρους. Είμαι μεγάλος θαυμαστής των δημοσιεύσεων του Preethi. Εδώ είναι μια σειρά από 3 μέρη :

  • Ένα κορυφαίο για τους νεοεισερχόμενους στην ανάπτυξη Ιστού
  • Μοντέλο διακομιστή-πελάτη και η δομή μιας εφαρμογής Web
  • HTTP & REST

Η αρχιτεκτονική MVC και οι διαδρομές Rails

Τώρα που καταλαβαίνουμε πώς λειτουργεί ο Ιστός, θα μελετήσουμε την αρχιτεκτονική MVC και τις διαδρομές Rails.

Το MVC σημαίνει Model, View και Controller.

Σε αυτήν την αρχιτεκτονική, έχουμε τον « διαχωρισμό των ανησυχιών » μεταξύ Μοντέλων, Προβολών και, Ελεγκτών. Κάθε μέρος έχει τη δική του ευθύνη. Ας βουτήξουμε σε κάθε μέρος.

Μοντέλο

"Διατηρεί τη σχέση μεταξύ αντικειμένου και βάσης δεδομένων και χειρίζεται την επικύρωση, τη συσχέτιση, τις συναλλαγές"

Αυτό σημαίνει ότι το μοντέλο θα διατηρήσει μια ακραία σχέση με τη βάση δεδομένων . Κάθε μοντέλο (μπορεί) αντιπροσωπεύει έναν πίνακα βάσεων δεδομένων (στην περίπτωση των βάσεων δεδομένων SQL). Αυτό το αντικείμενο μοντέλου αποκτά δυνατότητες (κληρονομείται από την κατηγορία ActiveRecord - Rails) για ανάκτηση, αποθήκευση, επεξεργασία και διαγραφή δεδομένων από τον πίνακα βάσης δεδομένων. Χρησιμοποιούμε μοντέλα αντικειμένων ως επίπεδο μεταξύ της εφαρμογής μας και της βάσης δεδομένων.

Εκτός από αυτήν τη σχέση με τη βάση δεδομένων, το μοντέλο μπορεί να δημιουργήσει επικυρώσεις και συσχετίσεις μεταξύ των μοντέλων.

Θέα

"Παρουσίαση δεδομένων σε συγκεκριμένη μορφή, η οποία πυροδοτείται από την απόφαση του ελεγκτή να παρουσιάσει τα δεδομένα."

Αυτή είναι η παρουσίαση της απάντησης του αιτήματος . Αυτή η παρουσίαση μπορεί να είναι σε μια σειρά τύπων μορφής: PDF, HTML, JSON κ.λπ. Το τελικό αποτέλεσμα μιας προβολής πιθανότατα θα είναι το περιβάλλον εργασίας χρήστη (UI) - Μέρος του "Πελάτη".

Για τις περισσότερες σελίδες στον Ιστό, οι προβολές θα είναι σε μορφή HTML με CSS και JS. Ωστόσο, μπορούμε να εφαρμόσουμε PDF συμπεριφοράς χρηστών σε ένα ψηφιακό προϊόν Travel για να δείξουμε σε όλους τους υπαλλήλους πώς χρησιμοποιούν οι χρήστες τον ιστότοπό τους.

Ελεγκτής

«Η εγκατάσταση μέσα στην εφαρμογή που κατευθύνει την κυκλοφορία, αφενός, ερωτά τα μοντέλα για συγκεκριμένα δεδομένα και, αφετέρου, οργανώνει αυτά τα δεδομένα (αναζήτηση, ταξινόμηση) σε μια μορφή που ταιριάζει στις ανάγκες μιας δεδομένης προβολής.

Ο ελεγκτής είναι το "Maestro". Φροντίζει τη ροή: χρησιμοποιεί μοντέλα για να κάνει ερωτήματα, να αναλύει δεδομένα και να λαμβάνει αποφάσεις σχετικά με το ποια μορφή θα παρουσιάσετε τα δεδομένα.

Κύκλος MVC & Routes σε εφαρμογή Rails

Φανταστείτε λοιπόν ότι εργαζόμαστε σε ένα Travel Startup. Μέρος του προϊόντος είναι να παρουσιάσει μια λίστα με υπέροχα άρθρα σχετικά με ταξιδιωτικές ιστορίες και συμβουλές σε ταξιδιώτες.

Απλώς σκεφτείτε από την προοπτική του ταξιδιώτη. Πηγαίνετε www.worldpackers.com/articlesκαι βλέπετε μια όμορφη σελίδα με πολλά σωστά άρθρα.

Όταν πληκτρολογείτε αυτήν τη διεύθυνση URL στο πρόγραμμα περιήγησης, υποβάλλει ένα αίτημα στον διακομιστή. Στον διακομιστή, έχουμε την εφαρμογή διαδικτύου Rails. Ο Rails Router επαληθεύει εάν υπάρχει καταχώριση που να αντιστοιχεί στο ζητούμενο URL.

Απλώς πρέπει να διαμορφώσουμε τις διαδρομές για αυτήν τη γραμμή:

Αυτό θα δημιουργήσει RESTful διαδρομές για άρθρα. Εάν εκτελέσουμε bundle exec rake routes, θα εμφανιστεί η λίστα των διαδρομών που δημιουργήθηκαν.

Το ρήμα HTTP μπορεί να είναι GET, POST, PATCH, PUT, ή DELETE. Και ξέρουμε πώς το Rails χαρτογραφεί κάθε ένα PATHπρος τα δεξιά controllerκαι action. Διαβάστε περισσότερα εδώ.

Στην περίπτωσή μας, ο διακομιστής θα λάβει /articlesδιαδρομή και GETως ρήμα HTTP. Θα χαρτογραφήσει ArticlesControllerκαι θα indexδράσει.

Στον ελεγκτήArticlesController χρησιμοποιούμε το μοντέλοArticle για τη λήψη όλων των άρθρων στη βάση δεδομένων και την απόδοση της προβολήςindex.html.erb ως απόκριση διακομιστή (UI).

Κατά συνθήκη, αυτός ο ελεγκτής θα αποδώσει την προβολή σε views/articles/index.html.erb. Βασικά, είναι ένα απλό αρχείο HTML που τροφοδοτείται από τον Ruby.

Ο κύκλος αιτήσεων-απόκρισης Rails είναι μια από τις πρώτες έννοιες που πρέπει να καταλάβετε όταν αρχίζετε να μαθαίνετε την ανάπτυξη ιστού.

Ο χρήστης κάνει πράγματα (αίτημα προς το διακομιστή), η εφαρμογή Rails έχει το δρομολογητή για να αντιστοιχίσει τη διαδρομή URL στο σωστό χειριστήριο. Στον ελεγκτή, μπορούμε να κάνουμε τα πάντα με ένα μοντέλο (ή περισσότερα από ένα μοντέλα) - που σημαίνει λήψη, αποθήκευση, επεξεργασία, διαγραφή δεδομένων - και απόδοση μιας προβολής στον χρήστη.

Αυτό είναι όλο!

Μάθαμε πολλά εδώ. Ελπίζω να εκτιμήσετε το περιεχόμενο και να μάθετε περισσότερα σχετικά με τον τρόπο λειτουργίας της αρχιτεκτονικής και της δρομολόγησης MVC στο Rails.

Αυτό είναι ένα ακόμη βήμα προς τα εμπρός στο ταξίδι μου στη μάθηση και τον έλεγχο των σιδηροτροχιών και της ανάπτυξης ιστού. Μπορείτε να δείτε την τεκμηρίωση του πλήρους ταξιδιού μου εδώ στην έκδοση Renaissance Developer .

Αν θέλετε ένα πλήρες μάθημα Ruby and Rails, μάθετε δεξιότητες κωδικοποίησης πραγματικού κόσμου και δημιουργήστε έργα, δοκιμάστε ένα μήνα Ruby Bootcampκαι Rails Bootcamp . Τα λέμε εκεί ☺

Διασκεδάστε και συνεχίστε να μαθαίνετε και να κωδικοποιείτε.

Το Twitter και το Github. ☺