Model-view-controller (MVC) -arkkitehtuuri
Monesti WWW-sovelluksissa sotketaan keskenään ohjelmakoodi ja selaimessa näkyvä HTML-koodi. Hiemankaan suuremmissa ohjelmissa tämä aiheuttaa suuria vaikeuksia pitää ohjelmakoodia selkeänä ja tekee ohjelmasta hyvin virhealttiin. Tätä toimintatapaa näkee erityisesti PHP- ja muissa samantyyppisissä kehitysympäristöissä joissa HTML-koodia generoidaan palvelimelta selaimella sitä mukaa kun ohjelman suoritus etenee. Ohjelmassa tulostetaan sopivaa HTML-koodia aina tarpeen mukaan ja näin muodostetaan lopullinen selaimelle annettava HTML-dokumentti. Monesti näissä ratkaisuissa on hankala muuttaa HTML-dokumentin eri osia eri aikaan ja tuloksena on entistäkin sekavampaa ohjelmakoodia.
Parempi ratkaisu olisi pyrkiä pitämään erillään vähintäänkin ohjelmakoodi ja HTML-koodi. HTML-koodia tuotetaan ja muokataan vain tarpeen mukaan DOM- tai muun rajapinnan kautta. Täm ratkaisu vaatii enemmän muistia mutta helpottaa ja selkeyttää monia asioita. Erillisen rajapinnan käyttäminen HTML-koodin tuottamisessa vähentää myös huomattavasti virheitä. Ohjelman rakenne selkiytyy ja yksinkertaistuu aivan samaan tapaan kuin HTML:n ja CSS:n eriyttämisessä.
Edelleenkin voi sovellusta selkiyttää erottamalla toisistaan ne ohjelman osat, jotka käsittelevät tietokantaa/tietovarastoa ja se osa, joka tuottaa lopullisen HTML-koodin. Sovelluksen päälogiikka voisi tuottaa sopivasti käsiteltyä ja järjesteltyä tietoa, joka annettaisiin toiselle ohjelmapalaselle. Tämä toinen ohjelmapuolisko tuottaisi datan pohjalta HTML-dokumentin tai sitten ihan jotain muuta. Käyttöliittymän/näkymän vaihtaminen olisi helppoa.
Monesti Web-sovelluksissa pyritään toteuttamaan MVC-arkkitehtuuria. Se miten hyvin ja selkeästi tämä onnistuu riippuu hyvin paljon käytetystä kehitysalustasta. Paljon on myös tulkinnanvaraa siinä mikä tehtävä kuuluu minkäkin osan toteutettavaksi.
- Malli (model) kuvaa järjestelmän tiedon tallentamisen, ylläpidon ja käsittelyn eli on usein lähes sama asia kuin sovelluksen käyttämän tietokannan tai muun tallennusjärjestelmän rakenne.
- Käsittelijä (Controller) / Ohjain eli kontrolleri vastaanottaa käyttäjältä tulevat käskyt sekä muuttaa mallia ja näkymää vastauksena niihin. Käytännössä käsittelijä sisältää pääosan ohjelman logiikasta
- Näkymä (View) määrittää käyttöliittymän ulkoasun ja tietojen näytön esityksen käyttöliittymässä. Yksinkertaisimmillaan näkymä on pelkkä HTML-dokumentti. Monimutkaisemmissa tapauksissa se voi sisältää vielä paljon Javascriptillä tehtyä toiminnallisuutta. Palvelimella suoritettava ohjelmakoodi voidaan hyvin jakaa useampaan osaan joista yksi on varsinainen kontrolleri, joka ei ymmärrä HTML-koodista mitään ja näkymä on se osuus ohjelmasta, joka muodostaa kontrollerin antaman datan perusteella lopullisen HTML-koodin.
MVC-arkkitehtuurin kohdalla ei kannata liikaa jumiutua ajattelemaan mikä on mikäkin osa missäkin sovelluksess vaan kannattaa miettiä mikä on järkevä tehtävänjako sovelluksen eri osien välillä ja miten saa pidettyä ohjelmansa selkeänä ja hyvin ylläpidettävänä. Monet sovelluskehykset ohjaajat automaattisesti oikeaan suuntaan.

Käyttäjien kommentit