OZ_2018_1-2

31 ORGANIZACIJA ZNANJA 2018, LETN. 23, ZV. 1 - 2 Enojna odgovornost pomeni, da storitev opravlja samo eno stvar, torej mora po principu za to storitev obstajati samo en razlog. Če obstaja več razlogov, ima storitev več odgovornosti (Bonér, et al., 2014). Lastništvo podatkov je v domeni mikrostoritev, ki so komponente s stanjem in morajo same poskrbeti za svoja stanja podatkov in shranjevanja v podatkovne baze. Asinhronost je privzeta komunikacija pri mikrostoritvah. Zaradi hitrejše in boljše odzivnosti je treba mikrostoritve razvijati na osnovi asinhronega protokola. Napačno je razmišljanje, da lahko velike monolitne rešitve enostavno razbijemo na neke logične oziroma manjše enote, ker s tem ne dobimo pravih mikroservisov z zgoraj opisanimi lastnostmi, ampak mikrolite, ki imajo še zmeraj slabe lastnosti velikih monolitov. PODATKOVNI TOKOVI Tok je zaporedje trenutnih dogodkov, ki so naročeni v nekem časovnem obdobju. Ti lahko oddajajo tri različna stanja, in sicer vrednost, napako ali uspešen konec . Ta stanja ujamemo, ker dogodki ta stanja asinhrono oddajajo, opredeljujejo pa jih določene funkcije ( se je izvršilo , napaka in končano ). Podatkovni t ok (zaporedje dogodkov po časovni komponenti) lahko uporabimo kot dodatek k drugim tokovom. Celo več, tokovi se lahko uporabljajo kot vložki v druge tokove. Lahko združimo dva tokova. Lahko filtriramo tok, da bi tako dobili še enega s samo tistimi dogodki, ki nas zanimajo. Lahko preslikamo vrednosti podatkov iz enega toka v drugi tok ipd. Primer podatkovnega toka s klikomna gumb prikazuje slika 2. Slika 2: Prikaz podatkovnega toka (Vir: Staltz, 2014) Te emitirane dogodke zajemamo le asinhrono, tako da definiramo funkcijo, ki se bo izvedla, ko se oddaja vrednost, nato drugo funkcijo, ki se bo izvedla, ko se oddaja napaka, in tretjo funkcijo, ki se bo izvedla, ko je oddajanje končano. Včasih se ti zadnji dve funkciji izpustita in se lahko osredotočimo le na določanje funkcije za vrednosti. Poslušanje toka se imenuje naročanje . Funkcije, ki jih definiramo, pa so opazovalci . Tok je predmet, ki ga opazujemo. ZAKAJ UPORABITI REAKTIVNI PRISTOP? Reaktivno programiranje dviguje raven abstrakcije v kodi, tako da se lahko osredotočimo na soodvisnost dogodkov, ki opredeljujejo poslovno logiko, namesto da se nenehno ukvarjamo z veliko količino podrobnosti glede izvedbe. Prednost je bolj očitna v sodobnih internetnih rešitvah in mobilnih aplikacijah, ki so močno interaktivno povezane z množico uporabnikov in dogodkov, le-ti pa s podatkovnimi dogodki. Pred desetimi leti je bila interakcija s spletnimi stranmi v bistvu pošiljanje dolgih obrazcev v izvajanje na strežnik, preprosta prikazovanja rezultatov pa so bila uporabniku na voljo na odjemalcu.Aplikacije so se sčasoma razvile v aplikacije v realnem času, tako da se spreminjanje polj obrazcev lahko samodejno funkcijsko kaže v ozadju, kot npr. všečkanje, in se nekatere vsebine lahko prikazujejo v realnem času pri drugih povezanih uporabnikih, ki so v omrežju (Staltz, 2014). Danes aplikacije ponujajo nepregledno množico vseh vrst dogodkov v realnem času, ki omogočajo zelo interaktivno izkušnjo za uporabnika. Zato potrebujemo orodja in paradigmo za njihovo ustrezno obravnavo, reaktivno programiranje pa je lahko odgovor na takšno zahtevo. Čeprav so nekateri koncepti za reaktivno programiranje poznani in v uporabi že nekaj časa, gre za novo paradigmo, ki jo potrebujemo za nove sodobne rešitve v sodobnih arhitekturah. Kot primer navajamo Twitterjev uporabniški vmesnik za spremljanje ljudi oziroma avtomatiziran seznampriporočenih uporabniških računov Who to follow (Staltz, 2014). Naš namen ni opisovati funkcije in kode, ki je sicer na voljo na spletnem naslovu http://jsfiddle.net/staltz/8jFJH/48/, kjer lahko delovanje tudi preizkusimo, ampak gre za opis realnega primera. Opisati želimo, kako z nekaj razmeroma preprostimi klici funkcij in na osnovi miselnosti, da je vse podatkovni tok, izvedemo funkcije osveževanja in brisanja, ki so prikazane na sliki 3. Pri temmoramo vedeti, da primer ne deluje z vmesniki proizvajalcev programske opreme (npr. TwitterjevAPI), ker so lahko le-ti iz različnih razlogov (poslovnih, ekonomskih, zakonskih ipd.) zaprti oziroma javnosti nedostopni. Slika 3: Twitterjev avtomatiziran seznam priporočenih upo r abn i šk i h r ačunov Who t o f o l l ow (slov. Komu slediti ) (Vir: Staltz, 2014) Janko Žigart: REAKTIVNO PROGRAMIRANJE

RkJQdWJsaXNoZXIy MTAxMzI5