de Kevin Kononenko

Model-View-Controller (MVC) explicat prin comandarea băuturilor la bar

Model View Controller MVC explicat prin comandarea bauturilor la bar

Dacă ai fost la un bar, atunci MVC nu este atât de greu.

Cadrele model-view-controller (MVC) sunt o parte crucială a construirii aplicațiilor web moderne. Intră într-o cameră de dezvoltatori web și probabil vei fi bombardat cu mențiuni despre Ruby on Rails, Angular sau Django.

Mai general, logica MVC poate fi utilizată pentru a descrie aproape orice proces de dezvoltare web care folosește un limbaj precum PHP, Ruby, Python sau JavaScript.

Cu toate acestea…

Mulți dezvoltatori de web navighează în această lume misterioasă prin hacking printre buruieni cu zâmbetul pe buze. Atunci când un dezvoltator senior sau un coechipier trebuie să privească codul de la unul dintre acești dezvoltatori, acesta va da un sunet imediat, urmat de o prelegere rapidă despre practicile comune de codificare.

Aceasta nu este o modalitate de a trece prin viață! De fapt, modelul MVC în dezvoltarea web modernă poate fi explicat cu ușurință prin comanda unei băuturi de la un barman. Și da, asta înseamnă că dacă ați fost la un bar, atunci puteți înțelege tiparul structural major partajat de toate aplicațiile web.

1611638646 448 Model View Controller MVC explicat prin comandarea bauturilor la bar

Trăgând curajos obstacolele până când realitatea lovește

ad-banner

Ce este modelul MVC?

  • Model: Vă structurează datele într-o formă fiabilă și le pregătește pe baza instrucțiunilor operatorului
  • Vedere: Afișează datele către utilizator într-un format ușor de înțeles, pe baza acțiunilor utilizatorului
  • Controlor: Preia comenzile utilizatorului, trimite comenzi către model pentru actualizări de date, trimite instrucțiuni pentru vizualizare pentru a actualiza interfața.

Sau, sub formă de diagramă:

Model View Controller MVC explicat prin comandarea bauturilor la bar
Credită imagine: Python real

A fost plictisitor. Pe bar.

Un dezvoltator web pentru începători intră într-un bar …

Intri într-un bar vinerea seară și te apropii de barman. Întrucât bara este deja aglomerată, împingeți o mulțime până când în sfârșit atrageți atenția barmanului și scoateți un „Manhattan, vă rog!”

Tu ești utilizator, iar comanda dvs. de băutură este cererea utilizatorului. Pentru dvs., Manhattan-ul este doar băutura dvs. preferată și știți destul de sigur că aceasta va fi o băutură dulce și delicioasă.

Barmanul îți dă rapid din cap. Pentru barman, Manhattan-ul nu este o băutură gustoasă, este doar o serie de pași:

  1. Apuca paharul
  2. Adăugați whisky
  3. Se adaugă vermut
  4. Adăugați amare
  5. Se amestecă băutura
  6. Adăugați cireșe
  7. Solicitați cardul de credit și debitează.
1611638646 111 Model View Controller MVC explicat prin comandarea bauturilor la bar
Credit de imagine: Wikipedia

Creierul barmanului este controlor. De îndată ce rostiți cuvântul „Manhattan” într-un limbaj pe care îl înțeleg, lucrarea începe. Această lucrare are o natură similară cu cea de a face un daiquiri de margarită sau căpșuni, dar folosește ingrediente distincte care nu vor fi niciodată confundate. Barmanul poate folosi doar instrumentele și resursele care se află în spatele barei. Acest set limitat de instrumente este model, și include următoarele:

  • Mâinile barmanului
  • Agitatoare / echipamente de amestecare
  • Alcooluri
  • Amestecuri
  • Ochelari
  • Garnituri

Poate la un bar mai amator, ar putea avea un asistent robot! Sau un mixer automat pentru băuturi. Nu contează pentru barmanul dvs., care poate folosi doar resursele disponibile.

În cele din urmă, băutura finită pe care o puteți vedea și consuma este vedere. Vizualizarea este construită din opțiunile limitate ale modelului și aranjată și transmisă prin intermediul controlerului (adică creierul barmanului).

Lecții învățate

  • Vrei o altă băutură? Strigând la paharul tău gol, priveliștea, nu îți va face absolut nimic. Trebuie să vorbești cu barmanul.
  • Timpul petrecut între barmanul care a auzit cererea și a început să creeze băutura ar trebui să fie absolut minim. Acest lucru este uneori cunoscut sub numele de „controler slab” – cu alte cuvinte, controlerul ar trebui să conțină o cantitate minimă de logică și să delege cât mai mult modelului. Un mare barman nu numai că va reține rețetele memorate, dar va pregăti și ingredientele și instrumentele într-o manieră fiabilă în fiecare seară, astfel încât să fie nevoie de o cantitate minimă de căutare și aranjare odată ce clienții încep să comande.
  • Ar putea barmanul să toarne toate ingredientele direct în gura clienților și să se aștepte ca clientul să le învârtă și să amestece băutura? Da, probabil presupun. Vrei să păstrezi cât mai mult din logica ta în cadrul modelului, spre deosebire de vizualizare. Cu alte cuvinte, prepararea băuturii în spatele barei este preferabilă amestecării în gura clientului.
1611638647 597 Model View Controller MVC explicat prin comandarea bauturilor la bar
Credit de imagine: Xperience
  • Dacă comandați o bere, barmanul cu greu va trebui să facă ceva. Poate că vor scoate pur și simplu capacul și vă vor da băutura. Acestea fiind spuse, trebuie totuși să solicitați barmanului. Berea nu va apărea în mod magic în fața ta.

Legând-o înapoi la dezvoltarea web

Iată cum se desfășoară același proces într-o aplicație web modernă:

  • Utilizatorul face un cerere de-a lungul unui traseu, să zicem / acasă.
  • controlor primește această solicitare și dă un set specific de comenzi care sunt legate de ruta respectivă. Aceste instrucțiuni ar putea fi fie pentru vedere pentru a actualiza sau difuza o anumită pagină sau pentru model pentru a efectua o logică specifică. Să presupunem că această cerere are o logică asociată cu aceasta.
  • Modelul realizează logica, trage dintr-o bază de date și trimite înapoi un răspuns consistent bazat pe instrucțiunile controlerului.
  • Controlerul transmite apoi aceste date vizualizării pentru a actualiza interfața cu utilizatorul.

Ori de câte ori intră o cerere, aceasta trebuie să meargă mai întâi la controler înainte de a putea fi convertită în instrucțiuni pentru vizualizare sau model. Articol wikipedia Ruby on Rails conține o prezentare generală suplimentară dacă căutați mai multe.

De fiecare dată când aveți nevoie să învățați un nou cadru de dezvoltare web, veți întâlni acest model MVC consistent. Și dacă un anumit cadru diferă de acest lucru, puteți fi sigur că autorii își vor explica noul lor model cu referințe la MVC.

Acest lucru ar trebui să facă învățarea mult mai ușoară – odată ce te-ai dezvoltat cu MVC o dată, fiecare cadru nou se poate potrivi în zona ta de confort.

V-a plăcut acest ghid? Anunță-mă în comentarii!