"Hi, Amigo!"

"Hi, Bilaabo!"

"Solid programmer ka na. So, may lesson tayo ngayon sa MVC."

"Ang MVC ay nangangahulugang ModelViewController . Ito ay isang pattern ng disenyo ng arkitektura para sa malalaking application, kung saan ang application ay nahahati sa tatlong bahagi."

"Ang unang bahagi ay naglalaman ng lahat ng lohika ng negosyo ng application . Ang bahaging ito ay tinatawag na modelo . Naglalaman ito ng code na gumagawa ng lahat ng bagay na ginawa ng application upang gawin. Ang bahaging ito ay ang pinakamaliit na umaasa sa iba."

"Ang ikalawang bahagi ay naglalaman ng lahat ng bagay na nauukol sa pagpapakita ng data sa user . Ang bahaging ito ay tinatawag na view . Naglalaman ito ng code na kumokontrol sa pagpapakita ng mga window, mga pahina, mga mensahe, atbp."

"Ang ikatlong bahagi ay naglalaman ng code na nagpoproseso ng mga aksyon ng user . Anumang mga aksyon ng user na nilayon upang baguhin ang modelo ay dapat pangasiwaan dito. Ang bahaging ito ay tinatawag na   Controller ."

"Ang diskarte na ito ay nagpapahintulot sa iyo na lumikha ng tatlong bagay nang nakapag-iisa:  ang lohika ng programa (ang modelo) , ang mekanismo para sa pagpapakita ng data ng program sa user (ang view) , at isang handler para sa input/aksyon ng user (ang controller) ."

"Ang mga application ay madalas na may ilang mga view . Ito ay normal. Maaari mong tingnan ang eksaktong parehong data sa Excel bilang parehong mga numero at diagram. Sa mga laro, maaari mong tingnan ang mga kaganapan mula sa isang first-person, third-person, o map view, at marami pang iba. . Ang lahat ng ito ay magkakaibang pananaw para sa isang Modelo ."

"Lahat ng code na nagpapasya kung ano ang babaguhin sa modelo bilang tugon sa mga aksyon ng user ay nakukuha sa Controller . Halimbawa, kung nagpasya ang user na isara ang program, kailangan mong i-save ang data ng modelo sa isang file sa disk. O kung magpasok ang user ng bagong data, kailangan mong idagdag ito sa modelo. Aabisuhan ng modelo ang lahat ng view tungkol sa mga pagbabago sa data, kaya ipapakita lang nila ang kasalukuyang estado ng data."

"Sabihin mo ulit yan."

"Mula sa pananaw ng isang developer ng Java, masasabi nating ang modelo, view, at controller ay tatlong grupo ng mga klase kung saan:"

" a)  bawat bahagi ay may sariling layunin;"

" b)  ang mga ugnayan sa pagitan ng mga klase ng isang grupo ay napakalakas;"

" c)  ang mga relasyon sa pagitan ng mga grupo ay napakahina;"

" d)  ang mga paraan ng pakikipag-ugnayan ng mga bahagi sa isa't isa ay lubos na kinokontrol."

"At narito ang isa pang paraan upang mailarawan ito:

MVC - 1

"Ang modelo ay ang pinaka-independiyenteng bahagi ng system . Hindi ito nakadepende sa view o sa controller. Hindi maaaring gumamit ang modelo ng mga klase mula sa view o controller group(!)."

"Ang pangunahing limitasyon ng view ay hindi nito mababago ang modelo . Maaaring ma-access ng mga klase sa view ang modelo para sa data o mag-subscribe sa mga kaganapan, ngunit hindi maaaring baguhin ng mga klase sa view ang modelo."

"Ang pangunahing limitasyon ng controller ay hindi ito nagpapakita ng data . Pinoproseso ng controller ang mga aksyon ng user at binago ang modelo nang naaayon."

"Ngunit bakit kailangan ko ito?"

"Ang katotohanan na hindi mo ito ginagamit ngayon, ay hindi nangangahulugan na hindi mo ito gagamitin sa malapit na hinaharap. Nandito ka nag-aaral upang makakuha ng trabaho. At kahit na ang kaalamang ito ay hindi mapatunayang kapaki-pakinabang habang pag-aaral, tiyak na magiging kapaki-pakinabang ito habang nagtatrabaho."

"Kung tutuusin, naghihintay pa rin sa iyo ang mga totoong proyekto at panayam..."

"We're here talking together now, but probably in a month magtatrabaho ka na."

"Tama ka talaga, Bilaabo. Pakikinggan kitang mabuti."

"Ang pattern ng MVC ay napaka-pangkaraniwan sa arkitektura ng application. Kailangan mong malaman ito, para hindi ka biglang magsimulang magdagdag ng mga klase ng view sa modelo dahil mas maginhawa ang iyong paraan."

"Ang pinakamahalagang bagay sa anumang proyekto ay ang arkitektura nito.  Ang iyong gawain sa yugtong ito ay hindi gaanong makalikha ng isang mahusay na arkitektura, kundi ang matutong umunawa sa iba. Kakailanganin mo pa ring umunlad para sa isang ilang taon bago ka gumawa ng sarili mo. Pero kailangan mong maunawaan kung ano ang ginawa ng ibang tao. Agad-agad."

"Kapag ang isang application ay gumagamit ng isang karaniwang arkitektura, ang lahat ay nagiging mas malinaw. Sa pamamagitan ng pag-alam sa arkitektura, alam mo kung nasaan ang mga bagay, kung paano nakikipag-ugnayan ang lahat, halos kung paano gumagana ang programa, kung saan magdagdag ng isang kinakailangang klase, at kung saan hahanapin ang dahilan ng isang bug."

"Ngunit, kung hindi ka pamilyar sa mga karaniwang diskarte sa arkitektura, kung gayon kahit na ang pinakamahusay na arkitektura ay hindi magsasabi sa iyo ng anuman. Magiging tulad ka ng isang magsasaka mula sa gitnang edad na tumitingin sa isang bagong kotse. Isang karaniwang kotse."

"I see. Salamat sa nakawiwiling aral, Bilaabo."

"Sa wakas, narito ang isang magandang link na dapat mong tingnan:"

Link sa karagdagang materyal