Per pastaruosius kelerius metus svetainės perėjo nuo paprastų HTML puslapių su šiek tiek CSS prie neįtikėtinai sudėtingų programų, kuriose vienu metu dirbo tūkstančiai kūrėjų. Norėdami dirbti su šiomis sudėtingomis žiniatinklio programomis, kūrėjai naudoja skirtingus dizaino modelius, kad išdėstytų savo projektus, kad kodas būtų ne toks sudėtingas ir būtų lengviau juo dirbti. Populiariausias iš šių modelių yra MVC taip pat žinomas kaip Modelio peržiūros valdiklis.
Kas yra MVC?
The Modelio peržiūros valdiklis (MVC) karkasas yra architektūrinis/dizaino modelis, atskiriantis programą į tris pagrindinius loginius komponentus Modelis , Žiūrėti , ir Valdiklis . Kiekvienas architektūrinis komponentas yra sukurtas taip, kad atitiktų konkrečius programos kūrimo aspektus. Tai izoliuoja verslo logiką ir pateikimo sluoksnį vienas nuo kito. Tradiciškai jis buvo naudojamas darbalaukyje grafinės vartotojo sąsajos (GUI) . Šiuo metu MVC yra viena iš dažniausiai naudojamų pramonės standartų žiniatinklio kūrimo sistemų, kuriant keičiamo dydžio ir išplečiamus projektus. Jis taip pat naudojamas kuriant mobiliąsias programas.
MVC sukūrė Trygve Reenskaug . Pagrindinis šio dizaino modelio tikslas buvo išspręsti problemą, kai vartotojai valdo didelį ir sudėtingą duomenų rinkinį, padalydami didelę programą į konkrečias dalis, kurios visos turi savo paskirtį.
MVC savybės:
- Tai suteikia aiškų atskyrimą verslo logika, vartotojo sąsajos logika ir įvesties logika.
- Tai leidžia visiškai valdyti jūsų HTML ir URL, todėl lengva kurti žiniatinklio programų architektūrą.
- Tai galingas URL susiejimo komponentas, kurį naudodami galime kurti programas, turinčias suprantamus ir ieškomus URL adresus.
- Tai palaiko Bandomoji plėtra (TDD).
Norėdami sužinoti daugiau apie MVC Framework naudojimo pranašumus, skaitykite straipsnį - MVC sistemos naudojimo pranašumai
MVC komponentai:
MVC sistemą sudaro šie 3 komponentai:
- Valdiklis
- Modelis
- Žiūrėti

MVC architektūros projektavimas
Valdiklis:
Valdiklis yra komponentas, įgalinantis rodinių ir modelio ryšį, todėl jis veikia kaip tarpininkas. Valdikliui nereikia jaudintis dėl duomenų logikos tvarkymo, jis tiesiog nurodo modeliui, ką daryti. Jis apdoroja visą verslo logiką ir gaunamas užklausas, manipuliuoja duomenimis naudodamas Modelis komponentą ir sąveikauti su Žiūrėti kad būtų pateikta galutinė produkcija.
masono formulė
Žiūrėti:
The Žiūrėti komponentas naudojamas visai programos vartotojo sąsajos logikai. Jis sukuria vartotojo sąsają vartotojui. Rodiniai sukuriami naudojant duomenis, kuriuos renka modelio komponentas, tačiau šie duomenys paimami ne tiesiogiai, o per valdiklį. Jis sąveikauja tik su valdikliu.
Modelis:
The Modelis komponentas atitinka visą su duomenimis susijusią logiką, su kuria dirba vartotojas. Tai gali būti duomenys, kurie yra perduodami tarp peržiūros ir valdiklio komponentų, arba bet kokie kiti su verslo logika susiję duomenys. Jis gali pridėti arba gauti duomenis iš duomenų bazės. Jis atsako į valdytojo užklausą, nes jis pats negali sąveikauti su duomenų baze. Modelis sąveikauja su duomenų baze ir grąžina reikiamus duomenis valdikliui.
MVC sistemos darbas su pavyzdžiu:
Įsivaizduokime, kad galutinis vartotojas siunčia serveriui užklausą, kad gautų klasėje besimokančių mokinių sąrašą. Tada serveris nusiųs tą užklausą tam konkrečiam valdikliui, kuris tvarko studentus. Tada valdiklis paprašys modelio, kuris apdoroja studentus, grąžinti visų klasėje besimokančių mokinių sąrašą.

Duomenų srautas MVC komponentuose
Modelis užklausų duomenų bazėje visų studentų sąrašo ir grąžintų tą sąrašą atgal į valdiklį. Jei atsakymas iš modelio buvo sėkmingas, valdiklis paprašys su studentais susieto rodinio grąžinti mokinių sąrašo pristatymą. Šis rodinys paimtų mokinių sąrašą iš valdiklio ir pateiktų sąrašą į HTML, kurį gali naudoti naršyklė.
pavasario mvc
Tada valdiklis paims tą pristatymą ir grąžins jį vartotojui. Taip prašymas baigiasi. Jei anksčiau modelis grąžino klaidą, valdiklis tą klaidą ištaisys prašydamas klaidas apdorojančio rodinio pateikti tos konkrečios klaidos pristatymą. Tada klaidos pateikimas būtų grąžintas vartotojui, o ne studentų sąrašo pristatymas.
Kaip matome iš aukščiau pateikto pavyzdžio, modelis tvarko visus duomenis. Rodinys tvarko visus pristatymus, o valdiklis tiesiog nurodo modelį ir vaizdą, ką daryti. Tai yra pagrindinė MVC sistemos architektūra ir veikimas.
MVC architektūrinis modelis leidžia mums laikytis šių projektavimo principų:
1. Skaldyk ir valdyk. Trys komponentai gali būti suprojektuoti atskirai.
2. Padidinti sanglaudą. Komponentai turi stipresnę sluoksnio sanglaudą nei tuo atveju, jei vaizdas ir valdiklis būtų kartu viename vartotojo sąsajos sluoksnyje.
3. Sumažinti sujungimą. Ryšio kanalai tarp trijų komponentų yra minimalūs ir lengvai randami.
4. Padidinkite pakartotinį naudojimą. Rodinys ir valdiklis paprastai plačiai naudoja daugkartinio naudojimo komponentus įvairiems vartotojo sąsajos valdikliams. Tačiau vartotojo sąsaja taps pritaikyta konkrečiai programai, todėl ją nebus lengva naudoti pakartotinai.
5. Lankstumo dizainas. Paprastai gana lengva pakeisti vartotojo sąsają keičiant rodinį, valdiklį arba abu.
MVC pranašumai:
- Kodus lengva prižiūrėti ir juos galima lengvai išplėsti.
- MVC modelis komponentas gali būti išbandytas atskirai.
- MVC komponentai gali būti kuriami vienu metu.
- Tai sumažina sudėtingumą, padalijus programą į tris vienetus. Modelis, vaizdas ir valdiklis.
- Tai palaiko Bandomoji plėtra (TDD).
- Jis puikiai tinka žiniatinklio programoms, kurias palaiko didelės žiniatinklio dizainerių ir kūrėjų komandos.
- Ši architektūra padeda patikrinti komponentus nepriklausomai, nes visos klasės ir objektai yra nepriklausomi vienas nuo kito
- Optimizavimas paieškos sistemoms (SEO) Draugiškas.
MVC trūkumai:
- Šį modelį sunku perskaityti, keisti, išbandyti ir pakartotinai naudoti
- Jis netinka statyti mažoms programoms.
- Atsižvelgiant į duomenų prieigos neefektyvumą.
- Sistemos naršymas gali būti sudėtingas, nes sukuria naujus abstrakcijos sluoksnius, todėl naudotojai turi prisitaikyti prie MVC skaidymo kriterijų.
- Padidėjęs duomenų sudėtingumas ir neefektyvumas
Populiarūs MVC karkasai:
Kai kurios populiariausios ir plačiausiai naudojamos MVC sistemos yra išvardytos žemiau.
- Ruby on Rails
- Django
- CherryPy
- Pavasario MVC
- Katalizatorius
- Bėgiai
- Zend Framework
- Kuro PHP
- Laravel
- Simfonija
MVC paprastai naudojamas programose, kurios veikia vienoje grafinėje darbo vietoje. Loginių komponentų padalijimas įgalina skaitomumą ir moduliškumą bei patogesnį testavimo daliai.