Reaktiivinen ohjelmointi Scalalla
Tilli, Aleksi (2017)
Tilli, Aleksi
Haaga-Helia ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201705066653
https://urn.fi/URN:NBN:fi:amk-201705066653
Tiivistelmä
Reaktiivinen ohjelmointi on ohjelmointiparadigma, joka on tapahtumapohjaisen ja deklaratiivisen ohjelmoinnin alalaji. Opinnäytetyössä perehdyttiin reaktiiviseen ohjelmointiin ja siihen liittyviin kirjastoihin Scala-ohjelmointikielellä. Kirjastoista selvitettiin mitä reaktiivisen ohjelmoinnin piirteitä ne toteuttavat, ja mihin reaktiivisen ohjelmoinnin alalajiin ne kuuluvat. Lisäksi valittiin lähempään tarkasteluun kirjastot, joilla toteutettiin esimerkkisovellus. Esimerkkisovelluksesta toteutettiin kaksi versiota, toinen Scalan futuureilla ja toinen kirjastoilla. Toteutusten koodirivien lukumäärää verrattiin, ja näin pyrittiin saamaan selville kirjastojen vaikutus koodin luettavuuteen.
Opinnäytetyössä käsiteltyjä kirjastoja olivat Akka Streams, Apache Spark Streaming, Reactive Extensions, Reactor, Sodium, Vert.x Rx ja Vert.x Sync. Esimerkkisovellusta varten lähempään tarkasteluun valittiin näistä Reactive Extensions ja Akka Streams.
Tuloksiksi saatiin, että esimerkkisovelluksessa reaktiivisen ohjelmoinnin kirjastoilla toteutetun version koodirivien lukumäärä oli suurempi kuin futuureilla toteutetussa versiossa. Lisäksi käsitellyt kirjastot olivat pääasiassa toistaiseksi luokittelemattomaan reaktiiviseen ohjelmointiin kuuluvia.
Opinnäytetyössä käsiteltyjä kirjastoja olivat Akka Streams, Apache Spark Streaming, Reactive Extensions, Reactor, Sodium, Vert.x Rx ja Vert.x Sync. Esimerkkisovellusta varten lähempään tarkasteluun valittiin näistä Reactive Extensions ja Akka Streams.
Tuloksiksi saatiin, että esimerkkisovelluksessa reaktiivisen ohjelmoinnin kirjastoilla toteutetun version koodirivien lukumäärä oli suurempi kuin futuureilla toteutetussa versiossa. Lisäksi käsitellyt kirjastot olivat pääasiassa toistaiseksi luokittelemattomaan reaktiiviseen ohjelmointiin kuuluvia.