SlideShare a Scribd company logo
非同期処理をちょっとはラクに。

∼ 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!

More Related Content

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

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n