16. december 2005

Model-View-Controller paradigma

Ljudje radi rešujemo (in delamo) probleme in nič kaj fino ni, da bi morali vedno znova in znova tuhtati kako jih najbolje rešiti. Problemov je veliko in prav tako rešitev, a z leti se izoblikujejo vzorci, ki se jih lahko držimo, da probleme rešimo hitreje in elegantneje.

MVC je arhitektura programske opreme. To je vzorec, ki nadgrajuje objektno orientirano programiranje. Primarni cilj je preprečiti spreminjanje domenske logike zaradi spremembe uporabniškega vmesnika in obratno, namerno ali nenamerno.

Model - To se objekti nad katerimi izvajamo določene operacije v aplikaciji in so značilni za problem, ki ga rešujemo. Ti objekti hranijo informacije, ki jih prikazujemo uporabniku in mu jih dajemo na voljo tudi za urejanje.

View - Prezentacija modela uporabniku aplikacije, pogosto v obliki primerni za interakcijo. V spletnih aplikacijah je to HTML in vezna koda, ki priskrbi podatke za dinamične strani.

Controller - Koda odgovorna za reakcijo na uporabniški vnos ali interakcijo. Običajno to pomeni spremembo v enem ali obeh ostalih nivojih. Deluje kot lepilo med modelom (domenskimi objekti) in izgledom (prezentacijo).

Tako pravi teorija. Kaj pa praksa? Iz mojega zornega kota je za izdelavo MVC spletne aplikacije potrebno v začetku kar nekaj truda. Osvojiti je potrebno koncepte "na bojišču", torej s praktično izdelavo in analizo projektov za katere vemo, da je bil v njih uporabljen tak princip in po možnosti še "best practices" prijemi. Pogosto zaradi časovne stiske za dokončanje projekta uporabljamo "gverilsko" programiranje in jo celo odnesemo s celo kožo, pogosto upravičeno.

Kaj pa v primeru, ko pričakujemo rast aplikacije? Takrat se zagotovo izplača investirati čas in zastaviti projekt izdelave enterprise spletne aplikacije po vzorcih (MVC ni edini), ki bodo nam ali programerjem in ostalim sodelujočim v prihodnosti delo olajšali ali sploh dovoljevali.

Ni komentarjev: