Introduksjon til funksjonell reaktiv programmering
Upcoming SlideShare
Loading in...5
×
 

Introduksjon til funksjonell reaktiv programmering

on

  • 117 views

Foredrag holdt på Javascript Meetup i Trondheim; Bart.js. Kode fra live-koding kan finnes på https://github.com/mikaelbr/presentations/tree/gh-pages/bartjs/frp-livecode

Foredrag holdt på Javascript Meetup i Trondheim; Bart.js. Kode fra live-koding kan finnes på https://github.com/mikaelbr/presentations/tree/gh-pages/bartjs/frp-livecode

Statistics

Views

Total Views
117
Views on SlideShare
116
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 1

http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introduksjon til funksjonell reaktiv programmering Introduksjon til funksjonell reaktiv programmering Presentation Transcript

    • Introduksjon til Funksjonell Reaktiv Programmering (FRP) Av @mikaelbrevik for første Bart.JS Meetup 4. februar.
    • Mikael Brevik Konsulent hos BEKK Bachelor fra HIST (2011), Master fra NTNU (2013). Tidvis open source utvikler og standhaftig surfer på internett. Er å finne på Github som @mikaelbr og Twitter @mikaelbrevik. Regelmessig googler og Stackoverflow-leser.
    • Agenda 1. Teoretisk perspektiv 2. Bacon.js 3. Livekoding og magi
    • Hva er Functional Reactive Programming? Kombinasjonen mellom to paradigmer: 1. Funksjonell programmering 2. Reaktiv programmering
    • Funksjonell programmering
    • En deklarativ programmeringsparadigme med funksjoner i fokus. Unngår tilstander og mutable objekter.
    • Deklarativ programmering forklarer hva som skjer. Imperativ programmering forklarer hvordan det skal skje!
    • Unngår uønskede bieffekter med bruk av rene funksjoner
    • Vanlig med bruk av blant annet m pr d c og a, eue fle. itr
    • [,2 3.a(ucin(){ 1 , ]mpfnto i rtr i*2 eun ; }; ) /=[,4 6 / 2 , ]
    • [,2 3.itrfnto (){ 1 , ]fle(ucin i rtr i%2==0 eun = ; }; ) /=[] / 2
    • [,2 3.euefnto (c,i { 1 , ]rdc(ucin ac ) rtr ac+i eun c ; }; ) /=6 /
    • Reaktiv programmering
    • Kan beskrives som en metode for å holde systemet kontinuerlig oppdatert med omgivelsene.
    • En måte for data å reagere på endringer og oppdatere for å reflektere disse endringene.
    • Et eksempel på reaktiv data kan være et regneark og summen av to tall.
    • 3 ADD 2 5
    • Funksjonell Reaktiv Programmering
    • To generelle konsepter 1. Behaviours (Adferd) 2. Events (Hendelse)
    • Adferder En kontinuerlig verdi. Eksemeplvis klokken, høyde eller vektorgrafikk.
    • Hendelser En diskret verdi. Eksempelvis muse-klikk eller en mengde.
    • I FRP blir adferder og hendelser behandlet som sekvenser og kan bli håndtert på en funksjonell måte.
    • Gevinst av FRP Reaktive datatyper for representasjon av tilstand. Sammensettbar data / komposisjoner GUI uten bi-effekter.
    • Praktisk FRP Enter Bacon.js
    • I Bacon.js har adferd og hendelser andre navn. En adferd kalles en Property og hendelse en EventStream.
    • I Bacon.js innkapsler vi datakilder som reaktive datatyper. foEetagt rmvnTre foPoie rmrms foClbc rmalak ...med flere
    • Man bruker funksjonelle funksjoner over events og properties. BcnfoEetagt$'nu','eU' ao.rmvnTre((ipt) kyp) .a(.eCd' mp'kyoe) .itrfnto (oe { fle(ucin cd) rtr cd ==6; eun oe = 6 }; )
    • Alt i Bacon.js er ren javascript.
    • Live-koding Flerbrukers chatte-system
    • Vi skal lage en enkel chat-klient basert på WebSockets