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.

6. december 2005

Konferenca "Izzivi razvoja sodobnih spletnih aplikacij"

Običajno grem v Kolosej v kino, saj je temu namenjen - danes pa se je tam odvijala kratka konferenca ali kot so jo poimenovali organizatorji Oracle Software družabno srečanje.

Kolikor vem v Sloveniji še ni bilo takega naslova na kakem predavanju ali pa sem hodil po svetu gluh in slep. Pričakovanja so bila mešana, saj na take vrste predavanjih lahko pričakujemo bolj pristranska mnenja in poglede. Popolne objektivnosti ni, obstajajo pa razpoznavni nivoji in merila.

Kupite si knjigo Art of Java Web Development: Struts, Tapestry, Commons, Velocity, JUnit, Axis, Cocoon, InternetBeans, WebWork in vedeli boste o čem govorim.

Veliko število poslušalcev potrjuje aktualnost tematike in to navdušenje nad številom je z nami delil tudi organizator.

Imam to srečo, da sem se že na začetku leta 2000 spoznal z enterprise spletnimi aplikacijami in orodji, ki so omogočale stvari, ki še danes jemljejo sapo. Naravnost neverjetne koncepte pri programiranju spletnih aplikacij ni še danes uspelo doseči nobenemu meni znanemu skupku spletnih o(g)rodij. Glodajte.

Veliko svojega časa porabim za raziskovanje tehnologij sloneč na Java jeziku z namenom lajšanja dela vsem vpletenim v proces razvoja in vzdrževanja spletnih aplikacij.

Predavanji Uroša Mesojedca in Petra Brajaka sta bili dobri, a mestoma pri slednjem neobjektivni. Pohvalil bi pomirjujoč in razumen ton pri odločitvah glede izbora pravega orodja za specifičen problem. Všeč sta mi bili tudi dve ideji, ki se v podjetju g.Brajaka uporabljata v praksi: skupno lastništvo kode in nočni integracijski testi.

Ko dobim povezavo na vsebino predavanj, bom lahko bolj natančno razložil kaj sem mislil z grajo, če bo to koga zanimalo...