Reaktiivinen ohjelmointi selainpohjaisissa web-sovelluksissa
Lindh, Jaakko (2017)
Lindh, Jaakko
Metropolia Ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201705117742
https://urn.fi/URN:NBN:fi:amk-201705117742
Tiivistelmä
Yhä suurempi osa graafisista käyttöliittymäsovelluksista on nykyään selainpohjaisia JavaScriptillä toteutettuja web-sovelluksia. Teknologian kehittyessä ja suorituskyvyn kasvaessa ne ovat monimutkaistuneet, ja nykyään esimerkiksi toimistotyökaluja, pilvipalveluna toimivaa musiikkisoitinta tai ohjelmistokehitysympäristöä voidaan suorittaa selaimessa.
Web-sovellusten monimutkaistuminen on kuitenkin aiheuttanut haasteita niiden selainpuolen ohjelmointiin. Tapahtumapohjaisen käyttöliittymän täytyy reagoida paitsi käyttäjän syötteisiin, myös palvelimelta saapuvaan dataan. Tämän kokonaisuuden hallitseminen perinteisemmillä tapahtumankäsittelymenetelmillä on osoittautunut hankalaksi.
Erääksi ratkaisuksi on ehdotettu reaktiivista ohjelmointia, joka on asynkronisiin tietovirtoihin ja niiden käsittelyyn perustuva ohjelmointiparadigma. Abstraktoimalla sovelluksen toiminnan tapahtumavirroiksi web-sovelluksia pyritään saamaan yksinkertaisemmiksi kehittää, muuttaa, debugata ja ymmärtää.
Tässä opinnäytetyössä esitellään reaktiivisen ohjelmoinnin periaatteet web-ohjelmoinnin yhteydessä sekä korkeammalla tasolla että konkreettisin esimerkein keskittyen RxJs-kirjastoon. Työssä pyritään selventämään, miksi se on lyönyt läpi juuri sillä alalla.
Käymällä läpi selain ohjelmointiympäristönä lukijalle perustellaan, miksi vanhemmat käyttöliittymäohjelmoinnin mallit on todettu siinä joissain tapauksissa vajavaisiksi. Lisäksi esitellään käytännön reaktiivista ohjelmointia siinä määrin, että ohjelmointitaitoinen lukija pystyy ottamaan sen periaatteet omissa projekteissaan käyttöön.
Web-sovellusten monimutkaistuminen on kuitenkin aiheuttanut haasteita niiden selainpuolen ohjelmointiin. Tapahtumapohjaisen käyttöliittymän täytyy reagoida paitsi käyttäjän syötteisiin, myös palvelimelta saapuvaan dataan. Tämän kokonaisuuden hallitseminen perinteisemmillä tapahtumankäsittelymenetelmillä on osoittautunut hankalaksi.
Erääksi ratkaisuksi on ehdotettu reaktiivista ohjelmointia, joka on asynkronisiin tietovirtoihin ja niiden käsittelyyn perustuva ohjelmointiparadigma. Abstraktoimalla sovelluksen toiminnan tapahtumavirroiksi web-sovelluksia pyritään saamaan yksinkertaisemmiksi kehittää, muuttaa, debugata ja ymmärtää.
Tässä opinnäytetyössä esitellään reaktiivisen ohjelmoinnin periaatteet web-ohjelmoinnin yhteydessä sekä korkeammalla tasolla että konkreettisin esimerkein keskittyen RxJs-kirjastoon. Työssä pyritään selventämään, miksi se on lyönyt läpi juuri sillä alalla.
Käymällä läpi selain ohjelmointiympäristönä lukijalle perustellaan, miksi vanhemmat käyttöliittymäohjelmoinnin mallit on todettu siinä joissain tapauksissa vajavaisiksi. Lisäksi esitellään käytännön reaktiivista ohjelmointia siinä määrin, että ohjelmointitaitoinen lukija pystyy ottamaan sen periaatteet omissa projekteissaan käyttöön.