Model-View-Controller (MVC) magyarázata italok rendelésével a bárban

Ha már jártál bárban, akkor az MVC nem olyan nehéz.

A modell-nézet-vezérlő (MVC) keretrendszerek döntő részét képezik a modern webalkalmazások felépítésének. Sétáljon be egy webfejlesztők szobájába, és valószínűleg a Ruby on Rails, az Angular vagy a Django említésével bombázzák meg.

Általánosabban elmondható, hogy az MVC logikával szinte minden olyan webfejlesztési folyamat leírható, amely olyan nyelvet használ, mint a PHP, a Ruby, a Python vagy a JavaScript.

Mindazonáltal…

Számos webfejlesztő úgy navigál ebben a titokzatos világban, hogy mosollyal az arcán csapkodja a gyomokat. Amikor egy idősebb fejlesztőnek vagy csapattársnak meg kell néznie az egyik fejlesztő kódját, azonnali segítséget ad, majd gyors előadás következik a közös kódolási gyakorlatokról.

Ez nem járható keresztül az életen! Valójában a modern webfejlesztés MVC-mintája könnyen megmagyarázható azzal, ha italt rendel egy csapostól. És igen, ez azt jelenti, hogy ha már járt egy bárban, akkor megértheti az összes webalkalmazás által megosztott fő strukturális mintát.

Bátran csapkodja az akadályokat, amíg a valóság el nem éri

Mi az MVC minta?

  • Modell : Megbízható formában strukturálja adatait, és a vezérlő utasításai alapján készíti elő
  • Nézet : Az adatokat a felhasználó számára könnyen érthető formátumban jeleníti meg, a felhasználó műveletei alapján
  • Vezérlő : Felhasználói parancsokat fogad, parancsokat küld a modellnek adatfrissítés céljából, utasításokat küld az interfész frissítéséhez.

Vagy diagram formájában:

Ez unalmas volt. A bárba.

Egy kezdő webfejlesztő belép egy bárba…

Péntek este belép egy bárba, és megközelíti a csaposot. Mivel a bár már zsúfolt, átnyom egy tömeget, míg végül magára vonja a csapos figyelmét, és elárasztja: - Egy Manhattan, kérem!

Te vagy a felhasználó , és az ital megrendelésed a felhasználói kérés . Számodra a Manhattan csak a kedvenc italod, és elég megbízhatóan tudod, hogy ez édes és finom ital lesz.

A csapos gyorsan bólint. A csapos számára a manhattani nem ízletes ital, csupán néhány lépés:

  1. Fogj poharat
  2. Add whiskyt
  3. Adjunk hozzá vermutot
  4. Add hozzá a keserűeket
  5. Keverje meg az italt
  6. Add meggy
  7. Kérjen hitelkártyát és számoljon fel.

A csapos agya a vezérlő . Amint kimondja a „Manhattan” szót egy általuk értett nyelven, a munka megkezdődik. Ez a munka hasonló jellegű, mint egy margarita vagy eperdaiquiri, de különálló összetevőket használ, amelyek soha nem fognak összetéveszteni. A csapos csak azokat az eszközöket és erőforrásokat használhatja, amelyek a rúd mögött vannak. Ez a korlátozott eszközkészlet a modell, és a következőket tartalmazza:

  • Csapos kezei
  • Rázógépek / keverő berendezések
  • Likőrök
  • Keverékek
  • Szemüveg
  • Köretek

Talán egy rajongói bárban lehet robotasszisztensük! Vagy egy automatikus italkeverő. Nem számít az adott csaposnak, aki csak a rendelkezésre álló erőforrásokat tudja felhasználni.

Végül a kész ital, amelyet láthat és elfogyaszthat, a kilátás. A nézet a modell korlátozott lehetőségeiből épül fel, és a vezérlőn (vagyis a csapos agyán) keresztül van elrendezve és továbbítva.

Tanulságok

  • Szeretne még egy italt? Az üres pohár, a kilátás felkiáltása abból semmi jót nem fog tenni. Beszélnie kell a csaposral.
  • A kérés meghallgatása és az ital elkészítése között eltelt időnek minimálisnak kell lennie. Ezt néha „sovány vezérlőnek” nevezik - más szóval, a vezérlőnek minimális mennyiségű logikát kell tartalmaznia, és amennyire csak lehetséges, a modellre kell delegálnia. Egy nagyszerű csaposnak nemcsak recepteket kell megjegyeznie, hanem minden nap megbízható módon elkészíti az alapanyagokat és az eszközöket, így minimális mennyiségű keresésre és elrendezésre van szükség, amint az ügyfelek megrendelni kezdenek.
  • Öntheti-e a csapos az összes hozzávalót közvetlenül az ügyfelek szájába, és elvárhatja-e, hogy az ügyfél körbevegye és összekeverje az italt? Igen, valószínűleg feltételezem. A logika lehető legnagyobb részét a modellen belül szeretné tartani, szemben a nézettel. Más szavakkal, az ital készítése a bár mögött jobb, mint az ügyfél szájában való keverés.
  • Ha sört rendel, akkor a csaposnak aligha kell tennie valamit. Talán egyszerűen leveszik a kupakot, és átadják az italt. Ennek ellenére még mindig fel kell kérnie a csaposot. A sör nem fog varázsütésre megjelenni előtted.

Összekötés a webfejlesztéssel

A modern webalkalmazásban ugyanez a folyamat játszódik le:

  • A felhasználó egy útvonal mentén kérést tesz , mondjuk / home.
  • A vezérlő megkapja ezt a kérést, és adott utasításkészletet ad meg, amely az adott útvonalhoz kapcsolódik. Ezek az utasítások lehetnek a nézet frissítésére vagy egy adott oldal kiszolgálására, vagy a modell konkrét logika végrehajtására. Tegyük fel, hogy ehhez a kéréshez kapcsolódik valamilyen logika.
  • A modell végrehajtja a logikát, kihúz egy adatbázist és következetes választ küld vissza a vezérlő utasításai alapján.
  • A vezérlő ezt követően továbbítja ezeket az adatokat a nézetbe a felhasználói felület frissítéséhez.

Amikor egy kérés bejön, először meg kell mennie a vezérlőhöz, mielőtt a nézet vagy a modell utasításaiba konvertálható. A Ruby on Rails wikipédia cikk további áttekintést tartalmaz, ha többet szeretne keresni.

Bármikor, amikor új webfejlesztési keretrendszert kell megtanulnia, találkoznia kell ezzel a következetes MVC mintával. És ha egy adott keretrendszer ettől eltér, akkor biztos lehet benne, hogy a szerzők az MVC-re való hivatkozásokkal magyarázzák az új mintázatukat.

Ennek sokkal könnyebbé kell tennie a tanulást - ha egyszer fejleszt az MVC-vel, minden új keretrendszer belefér a kényelmi zónába.

Élvezte ezt az útmutatót? Tudassa velem a kommentekben!