logo

Introducere MVC Framework

În ultimii câțiva ani, site-urile web au trecut de la simple pagini HTML cu puțin CSS la aplicații incredibil de complexe, cu mii de dezvoltatori care lucrează la ele în același timp. Pentru a lucra cu aceste aplicații web complexe, dezvoltatorii folosesc diferite modele de design pentru a-și prezenta proiectele, pentru a face codul mai puțin complex și mai ușor de lucrat. Cel mai popular dintre aceste modele este MVC de asemenea cunoscut ca si Model View Controller.

Ce este MVC?

The Model-View-Controller (MVC) framework-ul este un model arhitectural/design care separă o aplicație în trei componente logice principale Model , Vedere , și Controlor . Fiecare componentă arhitecturală este construită pentru a gestiona aspecte specifice de dezvoltare ale unei aplicații. Izolează logica de afaceri și stratul de prezentare unul de celălalt. A fost folosit în mod tradițional pentru desktop interfețe grafice cu utilizatorul (GUI) . În zilele noastre, MVC este unul dintre cele mai frecvent utilizate cadre de dezvoltare web standard din industrie pentru a crea proiecte scalabile și extensibile. De asemenea, este folosit pentru proiectarea aplicațiilor mobile.



MVC a fost creat de Trygve Reenskaug . Scopul principal al acestui model de design a fost acela de a rezolva problema utilizatorilor care controlează un set mare și complex de date prin împărțirea unei aplicații mari în secțiuni specifice, care au toate propriul scop.

Caracteristicile MVC:

  • Oferă o separare clară a logica de afaceri, logica UI și logica de intrare.
  • Oferă control deplin asupra HTML și URL-uri, ceea ce facilitează proiectarea arhitecturii aplicațiilor web.
  • Este o componentă puternică de mapare a adreselor URL, cu ajutorul căreia putem construi aplicații care au adrese URL ușor de înțeles și de căutare.
  • Susține Dezvoltare bazată pe teste (TDD).

Pentru a afla mai multe despre beneficiile utilizării cadrului MVC, consultați articolul – Beneficiile utilizării cadrului MVC

Componentele MVC:

Cadrul MVC include următoarele 3 componente:



  • Controlor
  • Model
  • Vedere

Proiectare arhitectură MVC

Controlor:

Controlerul este componenta care permite interconectarea dintre vederi și model, așa că acționează ca un intermediar. Controlerul nu trebuie să-și facă griji în legătură cu gestionarea logicii datelor, ci doar îi spune modelului ce trebuie să facă. Procesează toată logica de afaceri și solicitările primite, manipulează datele folosind Model componentă și interacționează cu Vedere pentru a reda rezultatul final.

șir jsonobject

Vedere:

The Vedere componenta este utilizată pentru toată logica UI a aplicației. Acesta generează o interfață de utilizator pentru utilizator. Vizualizările sunt create de datele care sunt colectate de componenta modelului, dar aceste date nu sunt preluate direct, ci prin intermediul controlorului. Interacționează doar cu controlerul.



Model:

The Model componenta corespunde tuturor logicii legate de date cu care lucrează utilizatorul. Aceasta poate reprezenta fie datele care sunt transferate între componentele View și Controller, fie orice alte date legate de logica de afaceri. Poate adăuga sau prelua date din baza de date. Răspunde la cererea controlorului, deoarece controlorul nu poate interacționa singur cu baza de date. Modelul interacționează cu baza de date și oferă datele necesare înapoi controlorului.

Funcționarea cadrului MVC cu un exemplu:

Să ne imaginăm că un utilizator final trimite o solicitare către un server pentru a obține o listă cu studenții care studiază într-o clasă. Serverul ar trimite apoi acea cerere către acel controler special care se ocupă de studenți. Controlerul ar cere apoi modelului care se ocupă de studenți să returneze o listă cu toți studenții care studiază într-o clasă.

diferența dintre firmă și companie

Fluxul de date în componentele MVC

Modelul ar interoga baza de date pentru lista tuturor studenților și apoi va returna acea listă înapoi controlorului. Dacă răspunsul din partea modelului a avut succes, atunci controlorul va cere vizualizarii asociate studenților să returneze o prezentare a listei de studenți. Această vizualizare ar prelua lista de studenți din controler și ar reda lista în HTML care poate fi utilizat de browser.

Controlorul va lua apoi acea prezentare și o va returna utilizatorului. Încheind astfel cererea. Dacă mai devreme modelul a returnat o eroare, controlerul ar gestiona acea eroare solicitând vizualizarii care gestionează erorile să facă o prezentare pentru eroarea respectivă. Acea prezentare de eroare va fi apoi returnată utilizatorului în loc de prezentarea listei de studenți.

După cum putem vedea din exemplul de mai sus, modelul gestionează toate datele. Vederea se ocupă de toate prezentările, iar controlerul spune doar modelului și vizualizarii ce trebuie să facă. Aceasta este arhitectura de bază și funcționarea cadrului MVC.

Modelul arhitectural MVC ne permite să aderăm la următoarele principii de proiectare:
1. Diviza și cuceri. Cele trei componente pot fi proiectate oarecum independent.
2. Creșteți coeziunea. Componentele au o coeziune mai puternică a stratului decât dacă vizualizarea și controlerul ar fi împreună într-un singur strat UI.
3. Reduceți cuplarea. Canalele de comunicare dintre cele trei componente sunt minime și ușor de găsit.
4. Creșteți reutilizarea. Vizualizarea și controlerul folosesc în mod normal componentele reutilizabile pentru diferite tipuri de controale UI. Cu toate acestea, interfața de utilizare va deveni specifică aplicației, prin urmare nu va fi ușor reutilizabilă.
5. Design pentru flexibilitate. De obicei, este destul de ușor să schimbați interfața de utilizare schimbând vizualizarea, controlerul sau ambele.

Avantajele MVC:

  • Codurile sunt ușor de întreținut și pot fi extinse cu ușurință.
  • MVC model componenta poate fi testată separat.
  • Componentele MVC pot fi dezvoltate simultan.
  • Reduce complexitatea prin împărțirea unei aplicații în trei unități. Model, vizualizare și controler.
  • Susține Dezvoltare bazată pe teste (TDD).
  • Funcționează bine pentru aplicațiile web care sunt susținute de echipe mari de designeri și dezvoltatori web.
  • Această arhitectură ajută la testarea componentelor în mod independent, deoarece toate clasele și obiectele sunt independente unele de altele
  • Optimizare pentru motoarele de căutare (SEO) Prietenos.

Dezavantajele MVC:

  • Este dificil să citiți, să schimbați, să testați și să reutilizați acest model
  • Nu este potrivit pentru construirea de aplicații mici.
  • Ineficiența accesului la date în vedere.
  • Navigarea în cadru poate fi complexă, deoarece introduce noi straturi de abstractizare care necesită adaptarea utilizatorilor la criteriile de descompunere ale MVC.
  • Complexitate crescută și ineficiență a datelor

Cadre MVC populare:

Unele dintre cele mai populare și utilizate pe scară largă cadre MVC sunt enumerate mai jos.

  • Ruby pe șine
  • Django
  • CherryPy
  • Spring MVC
  • Catalizator
  • Șine
  • Cadrul Zend
  • Combustibil PHP
  • Laravel
  • Simfonie

MVC este utilizat în general pe aplicațiile care rulează pe o singură stație de lucru grafică. Împărțirea componentelor logice permite lizibilitatea și modularitatea, precum și o face mai confortabilă pentru partea de testare.