Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What is reactive programming?

7,354 views

Published on

2016/02/17開催の
Sendai.swift 第一回 Reactive Programming in Swiftの資料です。

Published in: Technology
  • DOWNLOAD FULL MOVIE, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... ,DOWNLOAD FULL. MOVIE 4K,FHD,HD,480P here { https://tinyurl.com/yybdfxwh }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

What is reactive programming?

  1. 1. What is
 Reactive Programming? 2016/02/17 Sendai.swift 第一回 Reactive Programming in Swift 田中賢治
  2. 2. • 田中賢治(22) • Swift/Objective-C • iOS開発もうちょっとで4年目 • Qiita/GitHub/Twitter/etc…
 (@ktanaka117) • ブログ「田中、仙台に生きる」 自己紹介
  3. 3. 最近ハマってるもの ハッカーとかエンジェル投資家とか、サイバー犯罪とか。
 技術的に深くて楽しい。坂井さんが人間味あって味わい深い。萌え。
  4. 4. What’s “Reactive”? • 最近話題のReactive Programming • Functional Reactive Programming(FRP)とかもあ るけれど、定義としては別物かな? • いろいろ読んだところ、考え方は交錯している 印象。要素はそれぞれ取り入れられている
  5. 5. What’s “Reactive”? “Reactive”とは?
  6. 6. What’s “Reactive”? reactive / riˈæktɪv / 【noun】反応性 【adjective】反応的な
  7. 7. What’s “Reactive”? reactive / riˈæktɪv / 【noun】反応性 【adjective】反応的な
  8. 8. What’s “Reactive”? “反応”
  9. 9. Reactive Manifesto • Responsive • Resilient • Elastic • Message Driven リアクティブなアプリケーションに関する重要な4つの要素
  10. 10. Reactive Manifesto • Responsive • Resilient • Elastic • Message Driven
  11. 11. Responsive: 即応性 • リアルタイムな更新処理 • Web Socketなどによって実現 • モバイルだとUIの描画処理など • エンドユーザーに素早くレスポンスを与える
  12. 12. • 「ふぁぼ」 • 「Google Docs」 • 検索条件の絞り込みなど Responsive: 即応性
  13. 13. Responsive: 即応性 Twitterのふぁぼ クライアントのUI描画はまず先に
 行われる。 その後サーバーと通信し、
 リクエストが失敗したらふぁぼは
 取り消される。
  14. 14. Responsive: 即応性 Google Docs 複数人でのテキストの同時編集。
 各クライアントでテキスト入力は
 スムーズに行われ、他のクライアント
 とは都度同期が取られていく。
  15. 15. 良いUXが求められる世の中 Responsive: 即応性
  16. 16. Reactive Manifesto • Responsive • Resilient • Elastic • Message Driven
  17. 17. Resilient: 耐障害性 • 障害に直面しても即応性を失わない • コンポーネントの切り分け
 クライアントとサーバーの境目など • サーバーにおいては冗長化なども含む
  18. 18. Resilient: 耐障害性 ServerClient UserAction, Request Response
  19. 19. Resilient: 耐障害性 Server _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ Client Response UserAction, Request
  20. 20. Resilient: 耐障害性 Server _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ Client UserAction Response ・クライアントのみでも正しく動くように見せる
 ・行なわれた処理はクライアントに保持し、障害
  回復時に同期処理する、など コンポーネントがクライアントとサーバーで
 切り分けられた状態
  21. 21. Resilient: 耐障害性 良いUXが求められる世の中
  22. 22. Reactive Manifesto • Responsive • Resilient • Elastic • Message Driven
  23. 23. Elastic: 弾力性 • ワークロードが変化しても即応性を保つ • サーバーのオートスケール
  24. 24. Reactive Manifesto • Responsive • Resilient • Elastic • Message Driven
  25. 25. Message Driven: メッセージ駆動 • Observerパターン
 (KVOとか) • 送信者と受信者がそれぞれ独立したライフサイク ルを持つ。非同期にやりとりを行う
 =リソースの有効活用
  26. 26. 即応性
  27. 27. 即応性 これを根底に置く考えがReactiveの哲学であり、
 様々な実装方法、手法、アプローチが行われる。
 
 Functional Reactive Programmingとは、
 これを関数型プログラミング的に実装していく
 Reactive Programmingの一つのアプローチである。

×