MVC-malliin perustuvien Javascript-sovelluskehysten vertailua
Kähkönen, Jouni (2014)
Kähkönen, Jouni
2014
Tietojenkäsittelyoppi - Computer Science
Informaatiotieteiden yksikkö - School of Information Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2014-05-20
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:uta-201405221448
https://urn.fi/URN:NBN:fi:uta-201405221448
Tiivistelmä
Verkkosovellusten kehittämiseen on olemassa lukuisia eri Javascript-sovelluskehyksiä. Tämän tutkielman lähtökohtana on esitellä ja vertailla varteenotettavia MVC-sovellus-kehyksiä keskenään. Tavoitteena on löytää kehysten laatuominaisuuksien pohjalta kuhunkin käyttötarkoitukseen parhaiten sopiva Javascript-sovelluskehys. Vertailussa on mukana kolme MVC-malliin pohjautuvaa sovelluskehystä: Maria, jQueryMX ja KnockoutJS.
Aluksi tarkastellaan verkkosovelluskehityksen taustaa ja käsitteitä. Tämän jälkeen esitellään sovelluskehysten keskeiset toiminnallisuudet. Esittelyn jälkeen kehysten ominaisuuksien pohjalta havaittavia arkkitehtuurivahvuuksia arvioidaan verkkosovellusten kehittämiseen liittyvien laatuominaisuuksien avulla. Arvioinnin jälkeen vertaillaan sovelluskehysten eroja sekä mahdollisia käyttötarkoituksia.
Yleisesti voidaan havaita, että sovelluskehystä käyttäen verkkosovelluksen ohjelmakoodin laatu paranee ja ohjelmakoodin osien välinen sidoksellisuus vähenee. Vaikka sovelluksen ulkonäkö voi olla yhtenevä kehyksestä riippumatta, vaikuttaa valinta sisäisen arkkitehtuurin myötä koodin ylläpidettävyyteen, laajennettavuuteen, tehokkuuteen ja luettavuuteen. Kehysten tarkastelun pohjalta havaittiin sopivan sovelluskehyksen valintaan vaikuttavan ainakin kolme keskeistä tekijää: Pidettäessä koodin löyhää sidoksellisuutta tärkeänä päädyttiin suosittelemaan Maria-kehyksen käyttöä. KnockoutJS-kehystä päädyttiin suosittelemaan tapauksissa, joissa sovelluksen nopeaa kehitystyötä pidetään tärkeänä. Toisaalta vaillinaisen MVC-mallin toteuttavaa jQueryMX-kehystä suositeltiin vain sovelluksiin, joissa MVC-mallin etujen tavoittelu projektin toteutuksen kannalta ei ole tärkeätä.
Kehyksen käyttö ei kuitenkaan yksinään takaa sovelluksen korkeaa laatua. Esimerkiksi suorat ristiinviittaukset sovelluksen näkymän ja mallin välillä voivat vähentää ohjelman uudelleenkäytettävyyttä toisessa projektissa. Pelkkä hyväksi havaittujen suunnittelumallien seuraaminen ei siis johda onnistuneeseen toteutukseen. Kehittäjällä on oltava harjaannusta modulaarisen ja geneerisen koodin tuottamisesta sekä selkeä näkemys sovelluksen käyttöliittymän epäkohtien havaitsemisessa.
Aluksi tarkastellaan verkkosovelluskehityksen taustaa ja käsitteitä. Tämän jälkeen esitellään sovelluskehysten keskeiset toiminnallisuudet. Esittelyn jälkeen kehysten ominaisuuksien pohjalta havaittavia arkkitehtuurivahvuuksia arvioidaan verkkosovellusten kehittämiseen liittyvien laatuominaisuuksien avulla. Arvioinnin jälkeen vertaillaan sovelluskehysten eroja sekä mahdollisia käyttötarkoituksia.
Yleisesti voidaan havaita, että sovelluskehystä käyttäen verkkosovelluksen ohjelmakoodin laatu paranee ja ohjelmakoodin osien välinen sidoksellisuus vähenee. Vaikka sovelluksen ulkonäkö voi olla yhtenevä kehyksestä riippumatta, vaikuttaa valinta sisäisen arkkitehtuurin myötä koodin ylläpidettävyyteen, laajennettavuuteen, tehokkuuteen ja luettavuuteen. Kehysten tarkastelun pohjalta havaittiin sopivan sovelluskehyksen valintaan vaikuttavan ainakin kolme keskeistä tekijää: Pidettäessä koodin löyhää sidoksellisuutta tärkeänä päädyttiin suosittelemaan Maria-kehyksen käyttöä. KnockoutJS-kehystä päädyttiin suosittelemaan tapauksissa, joissa sovelluksen nopeaa kehitystyötä pidetään tärkeänä. Toisaalta vaillinaisen MVC-mallin toteuttavaa jQueryMX-kehystä suositeltiin vain sovelluksiin, joissa MVC-mallin etujen tavoittelu projektin toteutuksen kannalta ei ole tärkeätä.
Kehyksen käyttö ei kuitenkaan yksinään takaa sovelluksen korkeaa laatua. Esimerkiksi suorat ristiinviittaukset sovelluksen näkymän ja mallin välillä voivat vähentää ohjelman uudelleenkäytettävyyttä toisessa projektissa. Pelkkä hyväksi havaittujen suunnittelumallien seuraaminen ei siis johda onnistuneeseen toteutukseen. Kehittäjällä on oltava harjaannusta modulaarisen ja geneerisen koodin tuottamisesta sekä selkeä näkemys sovelluksen käyttöliittymän epäkohtien havaitsemisessa.