Το μοντέλο-View-Controller (MVC) εξηγείται μέσω της παραγγελίας ποτών στο μπαρ

Εάν έχετε πάει σε ένα μπαρ, τότε το MVC δεν είναι τόσο δύσκολο.

Τα πλαίσια Model-view-controller (MVC) αποτελούν κρίσιμο μέρος της δημιουργίας σύγχρονων εφαρμογών Ιστού. Περπατήστε σε ένα δωμάτιο προγραμματιστών ιστού και πιθανότατα θα βομβαρδιστείτε με αναφορές του Ruby on Rails, του Angular ή του Django.

Γενικότερα, η λογική του MVC μπορεί να χρησιμοποιηθεί για να περιγράψει σχεδόν οποιαδήποτε διαδικασία ανάπτυξης ιστού που χρησιμοποιεί μια γλώσσα όπως PHP, Ruby, Python ή JavaScript.

Παρ 'όλα αυτά…

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

Δεν είναι τρόπος να περάσεις τη ζωή! Στην πραγματικότητα, το μοτίβο MVC στη σύγχρονη ανάπτυξη ιστού μπορεί εύκολα να εξηγηθεί με την παραγγελία ενός ποτού από έναν μπάρμαν. Και ναι, αυτό σημαίνει ότι εάν έχετε πάει σε ένα μπαρ, τότε μπορείτε να καταλάβετε το σημαντικό δομικό μοτίβο που μοιράζονται όλες οι εφαρμογές ιστού.

Θαρραλέα χάραξη των εμποδίων μέχρι να φτάσει η πραγματικότητα

Τι είναι το μοτίβο MVC;

  • Μοντέλο : Δομίζει τα δεδομένα σας σε αξιόπιστη μορφή και τα προετοιμάζει με βάση τις οδηγίες του ελεγκτή
  • Προβολή : Εμφανίζει δεδομένα στον χρήστη σε κατανοητή μορφή, με βάση τις ενέργειες του χρήστη
  • Ελεγκτής : Λαμβάνει εντολές χρήστη, στέλνει εντολές στο μοντέλο για ενημερώσεις δεδομένων, στέλνει οδηγίες για προβολή για ενημέρωση διεπαφής.

Ή, σε μορφή διαγράμματος:

Αυτό ήταν βαρετό. Στο μπαρ.

Ένας αρχάριος προγραμματιστής ιστού μπαίνει σε ένα μπαρ…

Μπαίνετε σε ένα μπαρ την Παρασκευή το βράδυ και πλησιάζετε τον μπάρμαν. Δεδομένου ότι το μπαρ είναι ήδη γεμάτο, σπρώχνετε ένα πλήθος μέχρι να τραβήξετε επιτέλους την προσοχή του μπάρμαν και φωνάζετε, "Ένα Μανχάταν, παρακαλώ!"

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

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

  1. Πιάσε ποτήρι
  2. Προσθέστε ουίσκι
  3. Προσθέστε βερμούτ
  4. Προσθέστε πικρά
  5. Ανακατέψτε το ποτό
  6. Προσθέστε κεράσι
  7. Ζητήστε πιστωτική κάρτα και χρέωση.

Ο εγκέφαλος του μπάρμαν είναι ο ελεγκτής . Μόλις πείτε τη λέξη «Μανχάταν» σε μια γλώσσα που καταλαβαίνουν, το έργο ξεκινά. Αυτή η εργασία είναι παρόμοιας φύσης με την παραγωγή μαργαρίτας ή daiquiri φράουλας, αλλά χρησιμοποιεί ξεχωριστά συστατικά που δεν θα συγχέονται ποτέ. Ο μπάρμαν μπορεί να χρησιμοποιήσει μόνο τα εργαλεία και τους πόρους που βρίσκονται πίσω από τη γραμμή. Αυτό το περιορισμένο σύνολο εργαλείων είναι το μοντέλο και περιλαμβάνει τα εξής:

  • Τα χέρια του μπάρμαν
  • Αναδευτήρας / εξοπλισμός ανάμιξης
  • Λικέρ
  • Μείγματα
  • Γυαλιά
  • Γαρνιτούρα

Ίσως σε ένα πιο φανταχτερό μπαρ, μπορεί να έχουν έναν βοηθό ρομπότ! Ή ένα αυτόματο μίξερ ποτών. Δεν έχει σημασία για τον συγκεκριμένο μπάρμαν, ο οποίος μπορεί να χρησιμοποιήσει μόνο τους διαθέσιμους πόρους.

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

Διδάγματα

  • Θέλετε άλλο ποτό; Φωνάζοντας στο άδειο ποτήρι σας, η θέα, δεν θα σας κάνει καθόλου καλό. Πρέπει να μιλήσετε με τον μπάρμαν.
  • Ο χρόνος που αφιερώνεται μεταξύ του μπάρμαν που ακούει το αίτημα και αρχίζει να δημιουργεί το ποτό πρέπει να είναι απολύτως ελάχιστος. Αυτό είναι μερικές φορές γνωστό ως "κοκαλιάρικο ελεγκτή" - με άλλα λόγια, ο ελεγκτής θα πρέπει να περιέχει μια ελάχιστη λογική και να εκχωρεί όσο το δυνατόν περισσότερο στο μοντέλο. Ένας εξαιρετικός μπάρμαν όχι μόνο θα έχει απομνημονεύσει συνταγές, αλλά θα προετοιμάσει επίσης τα συστατικά και τα εργαλεία με αξιόπιστο τρόπο κάθε βράδυ, έτσι ώστε να απαιτείται ένα ελάχιστο ποσό αναζήτησης και τακτοποίησης μόλις οι πελάτες ξεκινήσουν την παραγγελία.
  • Θα μπορούσε ο μπάρμαν να ρίξει όλα τα συστατικά απευθείας στο στόμα των πελατών και να περιμένει από τον πελάτη να το σβήσει και να αναμίξει το ποτό; Ναι, πιθανώς υποθέτω. Θέλετε να διατηρήσετε όσο το δυνατόν περισσότερο τη λογική σας στο μοντέλο σε αντίθεση με την προβολή. Με άλλα λόγια, η παρασκευή του ποτού πίσω από τη ράβδο είναι προτιμότερη από την ανάμιξή του στο στόμα του πελάτη.
  • Εάν παραγγείλετε μια μπύρα, ο μπάρμαν δεν θα χρειαστεί να κάνει τίποτα. Ίσως απλά να αφαιρέσουν το καπάκι και να σας δώσουν το ποτό. Τούτου λεχθέντος, πρέπει ακόμα να ζητήσετε από τον μπάρμαν. Η μπύρα δεν θα εμφανίζεται μαγικά μπροστά σας.

Δέσμευση πίσω στην ανάπτυξη ιστού

Δείτε πώς παίζει η ίδια διαδικασία σε μια σύγχρονη εφαρμογή ιστού:

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

Όποτε εισέρχεται ένα αίτημα, πρέπει πρώτα να πάει στον ελεγκτή για να μετατραπεί σε οδηγίες για την προβολή ή το μοντέλο. Το άρθρο της Ruby on Rails wikipedia περιέχει μια περαιτέρω επισκόπηση εάν ψάχνετε περισσότερα.

Κάθε φορά που πρέπει να μάθετε ένα νέο πλαίσιο ανάπτυξης ιστού, θα συναντήσετε αυτό το συνεπές μοτίβο MVC. Και αν ένα συγκεκριμένο πλαίσιο διαφέρει από αυτό, μπορείτε να είστε σίγουροι ότι οι συγγραφείς θα εξηγήσουν το νέο τους μοτίβο με αναφορές στο MVC.

Αυτό θα κάνει τη μάθηση πολύ πιο εύκολη - μόλις αναπτυχθεί με το MVC μία φορά, κάθε νέο πλαίσιο μπορεί να χωρέσει στη ζώνη άνεσής σας.

Σας άρεσε αυτός ο οδηγός; Επιτρέψτε μου να μάθω στα σχόλια!