Skip to content

Instantly share code, notes, and snippets.

View data-ux's full-sized avatar

Jan Wolski data-ux

View GitHub Profile
@data-ux
data-ux / kirjasto.md
Created November 20, 2018 06:53
RPC apukirjasto

Motivaatio

Modernit JS-näkymäframeworkit (React, Angular, Vue, jne.) perustuvat näkymän tilan automaattiseen renderöintiin. Muutos tilassa johtaa muutokseen sivun DOM-rakenteessa siten että vain muuttuneet osat päivitetään.

Oskari-rpc taas perustuu metodikutsun omaisiin requesteihin sekä eventien seuraamiseen. Nämä kaksi mallia on hankalaa sovittaa yhteen ja jokainen sovellus joutuu toteuttamaan liimakerroksen itse.

RPC-sovellusten kehittämistä helpottaisi suuresti, jos olisi olemassa sovituskirjasto, joka auttaisi mäppäämään halutun sovelluskohtaisen kartan tilan ja oskari-rpc-kartan tilan. Ts. "one-way data-binding" oskari-rpc:lle.

oskari-rpc-mediator

Ajatuksen ydin olisi siinä että apuolio oskari-rpc-mediator hallinnoisi RPC-channelia ja pitäisi huolen siitä että jaetun Oskari-kartan sisäinen tila vastaisi sovelluksessa haluttua tilaa. Aina kun sovelluskohtainen kartan tila on muuttunut, sovellus kutsuisi mediatorin setState()-metodia tilan määrittelevällä objektilla.