Funktionaalinen ohjelmointi JavaScriptissä
Patala, Saini (2020)
Patala, Saini
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020052513485
https://urn.fi/URN:NBN:fi:amk-2020052513485
Tiivistelmä
Tämän opinnäytetyön tarkoituksena on selvittää, mitä funktionaalinen ohjelmointi on ja miten se soveltuu JavaScript-ohjelmointikielelle. Samalla tarkoituksena on syventää ymmärrystä myös itse JavaScriptiin kielenä ja oppia hyödyntämään sitä paremmin ja monipuolisemmin funktionaalisien periaatteiden avulla.
Tavoitteena on kirjoittaa kokonaisuus, jossa selvitetään, mitä funktionaalinen ohjelmointi on, miten sitä voidaan soveltaa JavaScriptiin ja mitä hyötyä siitä voi olla JavaScriptillä ohjelmoitaessa.
Opinnäytetyössä käydään läpi funktionaalisen ohjelmoinnin periaatteita. Työssä esitellään, miten dataa käsitellään funktionaalisesti JavaScriptissä, miten funktioista saadaan puhtaita ja miten niitä voidaan hyödyntää mahdollisimman monipuolisesti käyttämällä niitä ensimmäisen luokan kansalaisina. Työssä tutustutaan funktionaaliselle ohjelmoinnille tyypillisiin map-, filter- ja reduce-funktioihin sekä esitellään rekursio. Lopuksi selvitetään vielä, miten funktioita voidaan ketjuttaa ja yhdistellä luoden monimutkaisempia toimintokokonaisuuksia sekä mitä hyötyä funktori- ja monadi-suunnittelumallit tuovat funktioiden ketjutukseen.
Johtopäätöksenä todetaan, että funktionaalinen ohjelmointi perustuu pitkälti datan muuttumattomuuteen, puhtaisiin funktioihin ja sivuvaikutuksettomuuteen, funktioiden käsittelyyn ensimmäisen luokan kansalaisina ja funktioiden yhdistelyyn luoden monimutkaisempia toimintoja. Yleisesti ottaen JavaScript sopii kielenä hyvin funktionaaliseen ohjelmointiin. Datan muuttumattomuus ja puhtaat funktiot ovat toteutettavissa JavaScriptillä. Funktioita kohdellaan ensimmäisen luokan kansalaisina JavaScriptissä, mikä mahdollistaa funktioiden monipuolisen käsittelyn. Funktionaaliset periaatteet menevät myös hyvin yksi yhteen yleisesti hyvinä pidettyjen ohjelmointitapojen kanssa, joten jo pelkästään funktionaalisten periaatteiden noudattaminen voi tehdä ohjelmasta helpommin luettavaa, virheettömämpää ja uudelleenkäytettävämpää.
Tavoitteena on kirjoittaa kokonaisuus, jossa selvitetään, mitä funktionaalinen ohjelmointi on, miten sitä voidaan soveltaa JavaScriptiin ja mitä hyötyä siitä voi olla JavaScriptillä ohjelmoitaessa.
Opinnäytetyössä käydään läpi funktionaalisen ohjelmoinnin periaatteita. Työssä esitellään, miten dataa käsitellään funktionaalisesti JavaScriptissä, miten funktioista saadaan puhtaita ja miten niitä voidaan hyödyntää mahdollisimman monipuolisesti käyttämällä niitä ensimmäisen luokan kansalaisina. Työssä tutustutaan funktionaaliselle ohjelmoinnille tyypillisiin map-, filter- ja reduce-funktioihin sekä esitellään rekursio. Lopuksi selvitetään vielä, miten funktioita voidaan ketjuttaa ja yhdistellä luoden monimutkaisempia toimintokokonaisuuksia sekä mitä hyötyä funktori- ja monadi-suunnittelumallit tuovat funktioiden ketjutukseen.
Johtopäätöksenä todetaan, että funktionaalinen ohjelmointi perustuu pitkälti datan muuttumattomuuteen, puhtaisiin funktioihin ja sivuvaikutuksettomuuteen, funktioiden käsittelyyn ensimmäisen luokan kansalaisina ja funktioiden yhdistelyyn luoden monimutkaisempia toimintoja. Yleisesti ottaen JavaScript sopii kielenä hyvin funktionaaliseen ohjelmointiin. Datan muuttumattomuus ja puhtaat funktiot ovat toteutettavissa JavaScriptillä. Funktioita kohdellaan ensimmäisen luokan kansalaisina JavaScriptissä, mikä mahdollistaa funktioiden monipuolisen käsittelyn. Funktionaaliset periaatteet menevät myös hyvin yksi yhteen yleisesti hyvinä pidettyjen ohjelmointitapojen kanssa, joten jo pelkästään funktionaalisten periaatteiden noudattaminen voi tehdä ohjelmasta helpommin luettavaa, virheettömämpää ja uudelleenkäytettävämpää.