Model-View-Controller MVC program - što je to, značajke i opis

Program Model-View-Controller (MVC) omogućuje vam da dizajnirate, implementirate i testirate svaki dio programa bez obzira na bilo koji drugi, zadržavajući organizirani kod. Pohranjivanje organiziranog koda znači da možete brzo pronaći ono što trebate za provjeru, brzo popraviti, izmijeniti i dodati nove značajke. To također znači učinkovitiji kod i najbolji način za ponovnu upotrebu za brže aplikacije. Bez dobrog razloga koristiti novu strukturu, tehnologiju ili trend teško je mnogim programerima, a prije svega zato što ne mogu pronaći motivaciju za istraživanje nove teme. No, ne radi se samo o MVC-u, čija je arhitektura vrlo važna, ali je nužna uporaba MVC metoda za web.


Glavne vrste funkcionalnosti arhitekture

Vjerojatno je jedna od najvećih prednosti što mnogi programeri razumiju i koriste MVC strukturu za stvaranje web aplikacija. Zbog te koherentnosti, upravljanje projektima postaje lakše između nekoliko razvojnih inženjera. Većinom web aplikacija ili dio softvera slijedi MVC strukturu. Ako je struktura predstavljena s tri glavne vrste funkcionalnosti onda je jasno da je to MVC:
  • Kod modela obično predstavlja stvarne stvari. Ovaj kod može sadržavati sirove podatke ili identificirati glavne komponente programa. Na primjer, ako je korisnik kreirao Todo aplikaciju, kôd modela bi odredio što je "zadatak" i što je "popis", budući da su to glavne komponente ove aplikacije.
  • Prikaz ili podnošenje - revizija koda sastoji se od svih funkcija koje izravno komuniciraju s korisnikom. To je kod koji čini aplikaciju lijepom i na drugi način definira kako korisnik vidi i komunicira s njom.
  • Regulator djeluje kao veza između modela i prezentacije, uzimajući korisnički unos i odlučujući što će s njim. To je mozak programa i povezuje model i prezentaciju. Kontrolor razmatra srednju razinu ". U interakciji s korisnikom, prikupljanjem podataka, kontaktiranjem modela, dobivanjem potrebnih podataka i slanjem odgovora korisniku.
  • Kada korisnik izvrši neku radnju, on u početku ide u kontroler. Prihvatit će sve podatke, primjerice $ _GET, $ _POST varijable u PHP-u, i odrediti što učiniti s tim podacima. Ukratko, modeli se odnose na obradu podataka i proširenu funkcionalnost. Stoga je zadaća kontrolera u ovom trenutku odrediti koji model treba pozvati, a zatim otvoriti odgovarajuću funkciju unutar ovog modela. Nakon poziva funkcije, on će pronaći rezultat, obično u varijabli okruženja.


    Model je jednostavna ideja o tome što korisnik radi u aplikaciji. MVC model je ono što mora biti prikazano u kodu, kao što je knjiga korisnika, njegov bankovni račun ili nešto drugo. Model je odgovoran za pohranjivanje funkcija i varijabli koje su povezane s onim što on predstavlja. Logiku modela možete zamisliti kao osnovni koncept objektno orijentiranog programiranja. Ovdje su modeli jednostavno "klase". Nemojte se brkati s razredima u kontrolerima, kojiTehnički, oni su također strukturirani kao klase. Konačno, nakon što kontrolor zatraži informacije od modela, ona šalje svoju prijavu. Izgled je sličan sustavu predložaka programa i može postojati za određenu vrstu izgleda stranice, mobilni prikaz ili za određenu temu. Prikaz će prikazati sve oznake i CSS koji se tradicionalno koriste pri izradi statičke web-stranice.
    MVC je ono što korisnik vidi kada kontroler pristupa njemu. Kontroler preusmjerava korisnika na ispravan izgled, nakon što je primio podatke iz modela i preusmjerio te informacije na podnošenje. Tada podnesak odražava informacije koje su im dostavljene u formatu u kojem je strukturiran.

    Struktura organizacije koda

    Velika ideja MVC-a je da svaki dio koda ima svoj vlastiti cilj, a ti ciljevi su različiti. Neki od kodova sadrže programske podatke, neki čine aplikaciju ugodnijom, a neki od njih kontroliraju funkcionalnost. Vjeruje se da je ovo MVC, program koji je u stanju organizirati osnovne funkcije koda u svoje, uredno organizirane kutije. Struktura datoteke za korištenje MVC-a relativno je jednostavna na standardni način - jednostavno postoje mape za reprezentacije, modele i kontrolere, a sve su povezane zajedno kroz jedan direktorij. Naravno, uz bilo koju web aplikaciju, korisnik će imati i druge mape i datoteke, kao što su indeksna datoteka i direktorij za slike.
    U nastavku je jednostavna struktura MVC direktorija s nekim primjerima datoteka. Svaki programer može imati svoja imena, važno je napraviti razumni standardni sporazum o njima.Stoga su datoteke u strukturi u nastavku samo primjeri.
    ASP.NET Core MVC Struktura je jednostavno okruženje za podnošenje. Različiti open source. To je vrlo skalabilan, optimiziran za korištenje s Asp Net Core MVC.

    MVC arhitektura

    Odjeljak modela definira koji podaci trebaju sadržavati aplikaciju. Ako se stanje tih podataka promijeni, model obično prijavljuje podnošenje, a ponekad i kontrolor, ako je za kontrolu ažuriranog prikaza potrebna druga logika. Na primjer, za program košarice, model će naznačiti koji podaci trebaju sadržavati stavke na popisu - stavku, cijenu i druge, te koje su stavke već prisutne. Prezentacija određuje kako će se prikazivati ​​podaci aplikacije. U popisu Dodaci pogled podnošenja definirat će se kao popis koji je poslan korisniku i primit će podatke za prikaz iz modela. Kontroler sadrži logiku koja ažurira model kao odgovor na korisnički unos aplikacije. Na primjer, popis za kupnju može sadržavati obrasce unosa i gumbe koji vam omogućuju dodavanje ili uklanjanje stavki. Te radnje zahtijevaju ažuriranje modela, tako da se ulaz šalje kontroleru, koji zatim ispravno upravlja modelom, šalje ažurirane podatke o pregledu. Međutim, možete jednostavno ažurirati prezentaciju i prikazati podatke u drugom formatu, primjerice za promjenu redoslijeda stavki po abecednom redu ili od najniže do najviše cijene. U tom slučaju upravljač može upravljati njime izravno bez ažuriranja modela.

    Modelska analogija u suvremenom svijetu

    MVC je način da se shvati kako funkcioniraWeb je vrlo koristan u planiranju, jer korisniku daje opću ideju o tome kako bi njegove ideje trebale biti organizirane prema stvarnom kodu. Primjerice, slučaj prijave. Ovaj program će korisnicima omogućiti stvaranje zadataka i njihovo organiziranje u popise. Model u programu ToDo može odrediti što je "zadatak" i da je "popis" skup zadataka. Kôd Prikaz će vizualno odrediti izgled ToDo-a i popisa. Zadaci mogu biti veliki fontovi ili biti određene boje. Konačno, kontroler može odrediti kako korisnik dodaje zadatak ili bilješke kada je završen. Kontroler povezuje gumb "Dodaj" s "modelom" kada korisnik klikne na "Dodaj zadatke", a model dodaje novi zadatak.

    Gotovo da je predložak dizajna

    Značajke MVC programa mogu se prikazati ukratko, kao primjer adresara. Model je popis objekata osobe. Podnesak je prozor grafičkog korisničkog sučelja koji prikazuje popis osoba. Upravljač upravlja takvim radnjama kao "Izbriši adresu osobe", "Dodaj adresu osobe", "Pošalji e-poštom osobi".
    U gornjem primjeru, klasa Person ne zna ništa o podnesku. Prozor pogleda govori kontroleru o akcijama korisnika. Nepotrebna složenost inherentna je ovom načelu razvoja softvera. Složenost dovodi do toga što je skupo u službi. Najlakši način da napravite kod je jednostavan za uklanjanje nepotrebnih ovisnosti. Tada kod postaje manje beskoristan i lakši za održavanje, tako da se može ponovno koristiti bez promjena.

    Glavne ovisnosti elemenata

    Imenovanje kontrolora - uklanjanje ovisnosti o tipu modela. Na primjer, voditelj projekta zahtijeva od razvojnog programera da izradi ne samo prozor kontakta, već i onaj koji prikazuje sve kontakte samo na njihovim fotografijama. Fotografije trebaju biti u rasporedu tablice, pet komada po retku. Za MVC, ovaj zadatak je vrlo jednostavan. Trenutno postoje tri klase:
  • Osoba.
  • PersonListController.
  • PersonListView.
  • Potrebno je stvoriti dvije klase: PersonPhotoGridView i PersonPhotoGridController. Klasa osobe ostaje ista i lako se umeće u dvije različite točke gledišta. Programer mora modificirati klasu Person kako bi smjestio novu PersonPhotoGridView i na kraju komplicira model (primjer 3).
    Klasa MVC Person može biti predstavljena različitim GUI alatima bez ikakvih promjena. Jednostavno kreirajte kontroler i prezentaciju uz pomoć novih alata, kao i sa starim setom alata. Kôd može izgledati ovako.
    U setPicture, ovaj trenutak metode je u biti špageti kod. MVC Design Template unosi klasu kontrolera između prikaza i modela kako bi se uklonile ovisnosti modela. Prilikom uklanjanja zavisnosti, model i, možda, izgled mogu se ponovno upotrijebiti bez promjena. To olakšava uvođenje novih funkcija i održavanja. Korisnici brzo dobivaju stabilan softver, tvrtka štedi novac i programeri rade u normalnim uvjetima.

    Načelo rada

    Načelo MVC je podjela primjene na 3Glavni dijelovi poznati kao Model, Pogled (View) i Kontroler. Na dijagramu su vidljive izravne veze (crvene strelice) i povučene asocijacije (plave strelice). Izbrisane asocijacije su one koje mogu izgledati očigledno s gledišta korisnika, a ne na temelju stvarnog dizajna softvera. Jednostavan način ispunjavanja uvjeta:
  • Korisnik komunicira s podnošenjem - klikom na link ili slanjem obrasca.
  • Regulator obrađuje korisnički unos i prenosi podatke modelu.
  • Model prima informacije i ažurira svoj status, dodaje podatke u bazu podataka, primjerice izračunava današnji datum.
  • Preglednik provjerava status modela i odgovara na njega unosom nedavno unesenih podataka.
  • Pogled traži sljedeću interakciju s korisnikom.
  • Ovo je jednostavan koncept - poslovna logika - izračun logičkih procesa aplikacije. Na primjer, poslovna logika jednostavnog kalendara trebala bi izračunati datum, dan u tjednu i bilo koji dan u mjesecu ako želite poslati sve dane u ovom mjesecu. Ili, da biste pokrenuli web-sadržaj pomoću Spring MVC-a, koji vam omogućuje izgradnju aplikacije sa statičkom početnom stranicom, prihvaća HTTP GET zahtjeve.

    Pridržavanje principu DRY

    Mnogi MVC okviri koriste sustav predloška kako bi osigurali usklađenost s DRY principom, što ga čini vrlo prikladnim za ponovno korištenje koda bez potrebe za njegovim ponovnim upisivanjem. Postoje MVC okviri koji rade na Smarty-ju ili koriste vlastite predloške. Jednostavno upozorenje je da neki paketi predložakaimaju prilično složenu sintaksu - programer ih treba provjeriti prije početka razvijanja. Vjeruje se da je MVC još jedna vrlo dobra implementacija filozofije SUHIH (Ne ponavljati). U suštini, DRY koristi Ruby on Rails i nekoliko drugih implementacija, a ideja je da programer piše nešto jednom i jednom pomoću koda. Princip SUHO definiran je kao "svaki dio mora imati jednu, nedvosmislenu, autoritativnu reprezentaciju unutar sustava." Pravilna implementacija DRY znači da promjena jednog elementa sustava ne mijenja nepovezane elemente, što je sasvim logično.

    Konvencija o konfiguriranju

    Ovo je paradigma dizajna koja u biti pokušava ukloniti broj rješenja koja developer mora napraviti. To se postiže stvaranjem strukture s ugovorima koji obično zahtijevaju sve elemente. Programer samo treba promijeniti ono što je stvarno potrebno. To je vrlo jednostavno. Na primjer, za obrazac koji sadrži elemente koji su uvijek potrebni i imaju iste vrijednosti. Obrazac ima oznaku koja definira radnju, metodu, ime, id enctype. Na primjer, ako ne morate ništa mijenjati, lako je dobiti ime, ID i radnju iz URL-a. Također možete instalirati sve POST metode, osim ako nije drugačije naznačeno. Primjena ove ideje na sve elemente čini izradu takve vrste programa vrlo brzom, jednostavnom i razumljivom. MVC je stvarno dobar način da počnete proizvoditi čist, skalabilan, snažan i brz kod u kraćem vremenu uz minimalan napor. Neke MVC strukture ne uključuju sve ove funkcije, većina ih sadrži samojedan ili dva

    Prednosti i nedostaci metode

    MVC dizajn predložak se koristi u razvoju softvera, čije je osnovno načelo zasnovano na ideji da logiku programa treba odvojiti od njezine prezentacije. Jednostavno rečeno, ovo je samo najbolji način odvajanja logike programa od zaslona. Kao i svaka metoda programiranja, ona ima svoje prednosti i nedostatke. Prednosti MVC-a:
  • Brzi razvojni proces, podržava brz i paralelan razvoj.
  • Kod MVC-a, jedan programer može raditi u emisiji, a drugi može raditi na kontroleru kako bi stvorio poslovnu logiku.
  • Aplikacija razvijena s njezinom primjenom tri je puta brža od aplikacije razvijene s drugim razvojnim predlošcima.
  • ​​
  • Sposobnost pružanja nekoliko vrsta.
  • Možete stvoriti više prikaza u MVC.
  • Dvostruko kopiranje je vrlo ograničeno jer razdvaja podatke i logiku od prikaza.
  • Podrška asinhronoj tehnologiji koja pomaže razvojnim inženjerima da brzo razviju aplikaciju za preuzimanje.
  • Modifikacija ne utječe na cijeli model, jer dio modela ne ovisi o dijelu pogleda. Stoga, sve promjene u modelu neće utjecati na cjelokupnu arhitekturu.
  • .NET MVC predložak vraća podatke bez korištenja bilo kojeg oblikovanja, tako da se iste komponente mogu koristiti i pozivati ​​za korištenje s bilo kojim sučeljem.
  • S ovom platformom, vrlo je lako dizajnirati URL-ove optimizirane za SEO da biste dobili više posjeta od određene aplikacije.
  • MVC nedostaci:
  • Povećana složenost.
  • Neučinkovit pristup podacima.
  • Složenost korištenja MVC-a s modernim korisničkim sučeljem.
  • Zahtijeva više programera.
  • Potrebno je poznavanje nekoliko tehnologija. Programer zna kod klijenta i html kod.

    Stvaranje prve aplikacije

    ASP.NET MVC primjere možete razviti s odgovarajućom verzijom Visual Studio i .NET okruženja koristeći MVC v522017 zajednicu i .NET 4.6 platformu. Kako pokrenuti:
  • Otvorite Visual Studio 2017 i više: Datoteka - & gt; Izradi & gt; Projekt
  • Proširite Visual C # i Web čvor s lijeve strane i zatim odaberite srednji dio asp net MVC.
  • Unesite naziv vašeg projekta MyMVCApplication, možete navesti bilo koje prikladno ime za vašu prijavu.
  • Postavite mjesto projekta klikom na gumb "Pregled" i zatim "U redu".
  • Prozor "Nova web aplikacija" pronalazi asp MVC jezgru.
  • Mijenja provjeru autentičnosti klikom na odgovarajući gumb.
  • Kliknite U redu da biste omogućili MVC-u da izradi projekt pomoću predloška.
  • Prva prijava je spremna.
  • Pokrenite projekt u modu za otklanjanje pogrešaka F5 ili Ctrl + F5 bez otklanjanja pogrešaka. Projekt MVC okvira sadrži JavaScript i CSS bootstrap 3,0 datoteke po defaultu.
    Na taj način možete stvoriti web stranice koje odgovaraju vašim potrebama. Ovo osjetljivo sučelje promijenit će izgled na temelju veličine zaslona različitih uređaja. Na primjer, gornja traka izbornika bit će promijenjena na mobilnim uređajima. Dakle, lako je kreirati svoju prvu jezgrenu MVC aplikaciju s Visual Studio 2013. MVC je osnova zaProgramiranje i organiziranje programskih datoteka. Da bi odredili ideju kako bi kôd trebao biti organiziran za svoju funkciju, programeri će kreirati mape za svaki dio, što pruža polaznu točku za prevođenje ideja u kod, a također olakšava povratak kodu. Razmišljanje o tome kako kôd komunicira s drugim kodom važan je dio programiranja, a učenje kako surađivati ​​s drugim programerima važna je vještina. Trošeći vrijeme da shvati kako se aplikacija uklapa u MVC php strukturu, programer povećava svoje sposobnosti za razvojne programere.

    Povezane publikacije