Reagent on ClojureScript -kirjasto, jonka avulla voi tehdä luotettavasti toimivia dynaamisia verkkosivuja selaimeen. Koodi kirjoitetaan ClojureScript ohjelmointikielellä. ClojureScriptin funktionaalisten piirteiden avulla koodista saadaan huomattavasti luotettavampaa ja lähtökohtaisesti virheettömämpää kuin vastaavasta JavaScript -koodista. Edut näkyvät erityisesti laajoissa verkkosovelluksissa. 

Siinä missä JavaScript on suunniteltu 90-luvulla verkkoselaimen pieniä lisätoiminnallisuuksia varten ovat Clojure ja ClojureScript suunniteltu monimutkaisten verkkosovellusten tarpeisiin. ClojureScript opiskelusta voi olla paljon iloa, sillä yhä useampi toteuttaa myös palvelimen Clojurella, joka on syntaksiltaan kuin ClojureScript, mutta sitä ajetaan Java-virtuaalikoneessa. Kaupan päälle ClojureScriptiä kirjoittaessa oppii myös vaivihkaa funktionaalista ohjelmointia, mikä on tuskin haitaksi sekään.  

Re-frame on apukirjasto, jonka avulla laajemman sovelluksen tietomallissa tapahtuvat muutokset saadaan vähällä vaivalla päivitettyä verkkosivulle tai käyttöliittymäkomponenttien aiheuttamat tapahtumat saadaan osaksi applikaation uutta tilaa.  

Tavoite

  • Oppia käyttämään hiccup-syntaksia komponenttien esittelyyn
  • Oppia käyttämään Figwheeliä ja Leiningeniä ohjelmien laatimisen yhteydessä 
  • Ymmärtää miksi käyttöliittymäkomponentit ovat funktioita
  • Oppia laatimaan yksinkertaisten lomakkeita reagentin avulla
  • Oppia päivittämään sovelluksen tilaa ja hallita tilamuutoksia ratomien avulla
  • Oppia käyttämään JavaScript kirjastojen valmiskomponentteja ClojureScript koodista käsin
  • Ymmärtää ratomien rajallisuus ja oppia päättelemään missä kohtaa tilapäivitys on parempi hoitaa re-frame kehyksen avulla
  • Oppia re-framen käyttö applikaation tilan säilyttämisessä

Kohderyhmä

  • Henkilöt jotka tuntevat HTML- ja JavaScript -ohjelmoinnin perusteet ja haluavat saada luotettavuutta verkkosovellusten selainpään toiminnallisuuteen
  • Henkilöt, jotka haluavat tutustua nykyaikaiseen ja luotettavaan tapaan laatia selainohjelmia

Kurssin sisältö

  • Leiningen perustoiminnot
  • Figwheel kehitys kehittämisen tapana
  • Eri tavat luoda erilaisia reagent komponentteja
    • hiccup-vektori
    • Funktiot
    • let-with
    • Class

  • Monimutkaisemman komponentin renderöinnin räätälöinti vaihe vaiheelta ja React-luokan elinkaari
    • Mounting
    • Unmounting
    • Updating

  • Re-frame
    • Skeeman määritteleminen (Schema design)
    • Tapahtumien luominen tapahtumajonoon (Event dispatching)
    • Tapahtumankäsittelijöiden rekisteröinti (Event handlers and registration)
    • Vaikutukset ja kanssavaikutukset (effects, coeffects)
    • Vaikutustenkäsittelijät (Effect handlers)
    • Tilaustenkäsittelijät (Subscription handlers)
    • Näkymäfunktiot (View functions)
    • Tilaaminen (Subscribing)

Kurssin kesto
1 päivä

Kurssin luonne
30% luentoja ja 70% harjoituksia

Esitiedot
HTML- ja JavaScript perusteet, Clojure-ohjelmoinnin perusteet

Ajankohta ja hinta
Tampere 7.2.2018 klo 9-16, 395 euroa + ALV 24%