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

Like this? Share it with your network

Share

Introduksjon til funksjonell reaktiv programmering

on

  • 168 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
168
Views on SlideShare
167
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 Presentation Transcript

  • 1. Introduksjon til Funksjonell Reaktiv Programmering (FRP) Av @mikaelbrevik for første Bart.JS Meetup 4. februar.
  • 2. 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.
  • 3. Agenda 1. Teoretisk perspektiv 2. Bacon.js 3. Livekoding og magi
  • 4. Hva er Functional Reactive Programming? Kombinasjonen mellom to paradigmer: 1. Funksjonell programmering 2. Reaktiv programmering
  • 5. Funksjonell programmering
  • 6. En deklarativ programmeringsparadigme med funksjoner i fokus. Unngår tilstander og mutable objekter.
  • 7. Deklarativ programmering forklarer hva som skjer. Imperativ programmering forklarer hvordan det skal skje!
  • 8. Unngår uønskede bieffekter med bruk av rene funksjoner
  • 9. Vanlig med bruk av blant annet m pr d c og a, eue fle. itr
  • 10. [,2 3.a(ucin(){ 1 , ]mpfnto i rtr i*2 eun ; }; ) /=[,4 6 / 2 , ]
  • 11. [,2 3.itrfnto (){ 1 , ]fle(ucin i rtr i%2==0 eun = ; }; ) /=[] / 2
  • 12. [,2 3.euefnto (c,i { 1 , ]rdc(ucin ac ) rtr ac+i eun c ; }; ) /=6 /
  • 13. Reaktiv programmering
  • 14. Kan beskrives som en metode for å holde systemet kontinuerlig oppdatert med omgivelsene.
  • 15. En måte for data å reagere på endringer og oppdatere for å reflektere disse endringene.
  • 16. Et eksempel på reaktiv data kan være et regneark og summen av to tall.
  • 17. 3 ADD 2 5
  • 18. Funksjonell Reaktiv Programmering
  • 19. To generelle konsepter 1. Behaviours (Adferd) 2. Events (Hendelse)
  • 20. Adferder En kontinuerlig verdi. Eksemeplvis klokken, høyde eller vektorgrafikk.
  • 21. Hendelser En diskret verdi. Eksempelvis muse-klikk eller en mengde.
  • 22. I FRP blir adferder og hendelser behandlet som sekvenser og kan bli håndtert på en funksjonell måte.
  • 23. Gevinst av FRP Reaktive datatyper for representasjon av tilstand. Sammensettbar data / komposisjoner GUI uten bi-effekter.
  • 24. Praktisk FRP Enter Bacon.js
  • 25. I Bacon.js har adferd og hendelser andre navn. En adferd kalles en Property og hendelse en EventStream.
  • 26. I Bacon.js innkapsler vi datakilder som reaktive datatyper. foEetagt rmvnTre foPoie rmrms foClbc rmalak ...med flere
  • 27. 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 }; )
  • 28. Alt i Bacon.js er ren javascript.
  • 29. Live-koding Flerbrukers chatte-system
  • 30. Vi skal lage en enkel chat-klient basert på WebSockets