Skip to content

Instantly share code, notes, and snippets.

@nikezono
Last active December 23, 2015 21:19
Show Gist options
  • Select an option

  • Save nikezono/6695782 to your computer and use it in GitHub Desktop.

Select an option

Save nikezono/6695782 to your computer and use it in GitHub Desktop.

Reactive Programmingのススメ

@nikezono
中園 翔
慶應大学増井研究室4年

話すこと

  1. Reactive Programming

    • Reactiveなプログラム設計とは
    • Reactive Programmingに良さそうなライブラリ&API
      • Bacon.js
      • Stream API(node)
      • Socket.IO

Reactive Programmingのススメ

これらを読むと速い

http://d.hatena.ne.jp/pokarim/20101226

http://d.hatena.ne.jp/propella/20111130/p1

http://d.hatena.ne.jp/naoya/20120422/1335109615

ようするに

  • 連続的に変化するデータをストリームとして考える
  • ストリームの更新をすぐにプレゼンテーション層とGUI層に反映させるための思想
  • 各変数に対して、適用する計算式だけを記述する
    • 実データが入力される変数はデータフローの起源だけ
      • あとの変数には計算式だけを記述することによりデータの依存関係を明確にする
        • データが変更された時に依存している計算式を再計算する
      • 依存関係の明確なデータフローが生まれる

他にもFunctional Reactive Programming(FRP)というものがある。

bacon.js

bacon.js

https://github.com/baconjs/bacon.js

bacon.jsとは

  • A small functional reactive programming lib for JavaScript
  • DOMに計算式を代入できる(onValue,Assign)
  • 依存している値の変更を検知して計算しなおしてくれる
  • GUIプログラミングのData Bindingっぽくhtmlと変数を紐付けられる

まとめ

  • Reactive Programming良い
  • 変数はひとつ、あとは計算式にしよう

以上

ありがとうございます

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment