OZ_2018_1-2

M 29 ORGANIZACIJA ZNANJA 2018, LETN. 23, ZV. 1 - 2 Janko Žigart Institut informacijskih znanosti, Maribor Kontaktni naslov: janko.zigart @ izum.si UVOD Obstaja veliko (tudi slabih ali modnih) razlag in definicij izraza reaktivno programiranje (angl . reactive programming ). PoWikipedii, ki podaja morda preveč splošno in teoretično razlago, je reaktivno programiranje deklarativna programska paradigma, ki se ukvarja s podatkovnimi tokovi in širjenjem sprememb (Wikipedia, 2018). The Reactive Manifesto ( Reaktivni manifest) zveni kot dokument, ki ga pokažemo vodji projekta ali poslovnežem v podjetju. Microsoftova Rx-terminologija je po večini zelo kompleksna in težko razumljiva, kar povzroča zmedo. Izraz reaktivno (angl. reactive ) ne označuje ničesar posebej drugačnega, kar že ne bi bilo značilno za tipičen priljubljen programski jezik (npr. asinhroni dogodki). Zato bi lahko izraz reaktivno programiranje v računalništvu še najbolje opredelili kot "asinhroni programski pristop, ki v jedru uporablja podatkovne tokove (angl. data streams )" (Staltz, 2014). Tokovi so lahko kar koli – tako podatkovni vhodi kot podatkovne strukture, lastnosti, trgovine, skladišča ipd. To pomeni, da ne gre za novo arhitekturo, ampak za nov oziroma drugačen pristop k programiranju ali REAKTIVNO PROGRAMIRANJE REACTIVE PROGRAMMING Izvle~ek Zaradi velikega števila naprav, povezanih v splet, in mnogih končnih uporabnikov, ki želijo nenehno razpoložljivost in hitro odzivnost aplikacij, so potrebni novi pristopi pri programiranju. V članku predstavljamo koncept reaktivnega programiranja, njegove temeljne lastnosti ter reaktivne rešitve in mikrostoritve, ki temeljijo predvsem na asinhronem pristopu. Članek poskuša odgovoriti na vprašanje Zakaj uporabiti reaktivni pristop? ter opisuje tudi rešitve in orodja, ki bodo že v osnovi pomagali pristopiti k reaktivnemu razvoju. Klju~ne besede reaktivno programiranje, reaktivne rešitve, mikrostoritve, podatkovni tokovi Abstract Due to a large number of web devices and many end users, who want constant availability and quick responsiveness of applications, new approaches to computer programming are required. The concept of reactive programming, its basic characteristics, reactive solutions and microservices based on asynchronous operation are presented. The answer to the question Why use the reactive approach? is searched for. Solutions and tools that will help take an approach to reactive development are described. Keywords reactive programming, reactive systems, microservices, data streams drugače: za miselni preskok, ki bolje izkorišča sodobne programske arhitekture. To bi lahko opisali s primerom seštevka dveh števil, ki seveda vplivata na rezultat v času izvedbe programskega stavka. Pri tem se pri klasičnem programiranju ob kasnejših spremembah seštevancev vsota ne spremeni več, pri reaktivnem programiranju pa se ob vsaki spremembi katere koli spremenljivke (seštevanca) spremeni tudi vsota ( Wikipedia, 2018 ). Podoben primer je Excelova preglednica, kjer so v celicah formule in se ob spremembi vrednosti v eni celici spremeni celotna vsebina. Ta primer lahko prikažemo kot graf, ki prikazuje te spremembe po času. Seveda lahko to opravimo tudi s klasičnim programskim pristopom. UPORABA REAKTIVNEGA PRISTOPA Danes ima dostop do spleta že prek 3,5 milijarde uporabnikov in ti uporabljajo različne naprave (računalnike, telefone, tablice …), ki podpirajo spletne rešitve. Pri tem uporabniki pričakujejo, da bodo sistemi in rešitve vsaj delujoči, če že ne hitro odzivni. Nekako se napoveduje, da bo do leta 2020 v splet povezanih prek 20 milijard naprav. In vsi uporabniki pričakujejo, da bodo storitve 100-odstotno https://doi.org/10.3359/oz1812029 1.04: STROKOVNI ČLANEK

RkJQdWJsaXNoZXIy MTAxMzI5