非同期処理をちょっとはラクに。

∼ Promises/A などで効率よいWebアプリ開発を ∼



         2012.7.21 HTML5など勉強会
               村岡正和
自己紹介
むらおか まさかず


村岡正和           @bathtimefish

Webアプリケーション開発 IT業務システム設計/開発
Webサービス導入/事業戦略コンサルティング

HTML5-WEST.jp代表 / 京都GTUG / CSS Nite in OSAKA / 神戸ITフェス
ティバル実行委員など

                         HTML5-WEST.jp
HTML5       JavaScript
   Python
中国拳法          主夫になりたい



  炊事 Google Apps
                          http://html5-west.jp/
直近楽しげなイベント
                          HTML5 Nado Be




• 8/18 CSS Nite in OSAKA Vol. 32
• 10/5, 6 神戸ITフェスティバル2012



                          HTML5-WEST.jp
HTML5 Webアプリケーション
は非同期処理だらけですね。
デバッグしにくい。
以前書いたソースコード
見る気失せる。
序の口
      HTML5 Nado Be




      HTML5-WEST.jp
みるみるカオスになる
             HTML5 Nado Be




             HTML5-WEST.jp
デバッグしにくい。
?
    なんとかならないの。
CommonJS Promises/A
                                  HTML5 Nado Be




           http://bit.ly/aynvtG
                                  HTML5-WEST.jp
CommonJS Promises/A
                      HTML5 Nado Be




                      HTML5-WEST.jp
jQuery Deferred
                                    HTML5 Nado Be




             http://bit.ly/fkozpR
                                    HTML5-WEST.jp
Demo:   deferred.then() deferred$.done()
                              HTML5 Nado Be




                              HTML5-WEST.jp
Demo: $.when()
                 HTML5 Nado Be




                 HTML5-WEST.jp
Demo: $.getJSON()
                    HTML5 Nado Be




                    HTML5-WEST.jp
Demo: $.getJSON()
                    HTML5 Nado Be




                    HTML5-WEST.jp
Demo: .promise()
                   HTML5 Nado Be




                   HTML5-WEST.jp
Node.js promised-io
                                    HTML5 Nado Be




             http://bit.ly/rsbi0o
                                    HTML5-WEST.jp
WinJS でも採用
                                HTML5 Nado Be




         http://bit.ly/LLQ6ht
                                HTML5-WEST.jp
WinJS でも採用
                                HTML5 Nado Be




         http://bit.ly/MpAA9B


                                HTML5-WEST.jp
promises/A のデザインパターンを覚え
ておけば、いろんなプラットフォームで
便利かも。
さらに便利そうなのがある。
async/await キーワード (VB, C#)
                                  HTML5 Nado Be




           http://bit.ly/IByimK



                                  HTML5-WEST.jp
IcedCoffeeScript
                                     HTML5 Nado Be




              http://bit.ly/NCEKLy


                                     HTML5-WEST.jp
Webアプリ開発では非同期処理が複
雑になる一方。
これらを活用して堅牢かつメンテし
やすいアプリを開発できるかも。
さらに今後もユニークなアイデアが
出てくることを期待したいですね。
参考
                                          HTML5 Nado Be

http://api.jquery.com/category/deferred-object/
https://github.com/kriszyp/promised-io
http://msdn.microsoft.com/ja-jp/library/windows/apps/
hh700330.aspx
http://msdn.microsoft.com/ja-jp/library/windows/apps/
hh700334.aspx
http://blogs.msdn.com/b/windowsappdev_ja/archive/
2012/04/30/winrt-await.aspx
http://maxtaco.github.com/coffee-script/

                                         HTML5-WEST.jp
Thanks!

非同期処理をちょっとはラクに。Promises:aほか