SlideShare una empresa de Scribd logo
1 de 28
非同期処理をちょっとはラクに。

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

Más contenido relacionado

La actualidad más candente

_HTML5で組んでみた_
_HTML5で組んでみた__HTML5で組んでみた_
_HTML5で組んでみた_
Kelly Holonic
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
y_uuki
 
次世代Web業務アプリケーション
次世代Web業務アプリケーション次世代Web業務アプリケーション
次世代Web業務アプリケーション
Fumio SAGAWA
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
 
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
Masakazu Muraoka
 
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
Fumio SAGAWA
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
 
オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門
Fumio SAGAWA
 

La actualidad más candente (20)

_HTML5で組んでみた_
_HTML5で組んでみた__HTML5で組んでみた_
_HTML5で組んでみた_
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
 
次世代Web業務アプリケーション
次世代Web業務アプリケーション次世代Web業務アプリケーション
次世代Web業務アプリケーション
 
Platform.html5
Platform.html5Platform.html5
Platform.html5
 
AMD basic and practice
AMD basic and practiceAMD basic and practice
AMD basic and practice
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
react-jsonschema-formについて
react-jsonschema-formについてreact-jsonschema-formについて
react-jsonschema-formについて
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
 
HTML5最前線
HTML5最前線HTML5最前線
HTML5最前線
 
Kerasで可視化いろいろ
Kerasで可視化いろいろKerasで可視化いろいろ
Kerasで可視化いろいろ
 
ngJapan報告会
ngJapan報告会ngJapan報告会
ngJapan報告会
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
 
HTML5 開発環境の紹介
HTML5 開発環境の紹介HTML5 開発環境の紹介
HTML5 開発環境の紹介
 
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
 
Fetch apiについて
Fetch apiについてFetch apiについて
Fetch apiについて
 
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
 
BACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発についてBACKBONE.JSによるWebアプリケーション開発について
BACKBONE.JSによるWebアプリケーション開発について
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門
 

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

Html5から考える webの将来、みんなの未来
Html5から考える webの将来、みんなの未来Html5から考える webの将来、みんなの未来
Html5から考える webの将来、みんなの未来
Masakazu Muraoka
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 
最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策
Kensaku Komatsu
 
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
Masakazu Muraoka
 
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
Masakazu Muraoka
 
Html5でOpen Dataをやってみる
Html5でOpen DataをやってみるHtml5でOpen Dataをやってみる
Html5でOpen Dataをやってみる
Masakazu Muraoka
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
Masakazu Muraoka
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
Masakazu Muraoka
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
Masakazu Muraoka
 
Web制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたWeb制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみた
Masakazu Muraoka
 

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

Attractive HTML5
Attractive HTML5Attractive HTML5
Attractive HTML5
 
Html5から考える webの将来、みんなの未来
Html5から考える webの将来、みんなの未来Html5から考える webの将来、みんなの未来
Html5から考える webの将来、みんなの未来
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策最新Webプロトコル傾向と対策
最新Webプロトコル傾向と対策
 
Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
 
今からハジメるHTML5プログラミング
今からハジメるHTML5プログラミング今からハジメるHTML5プログラミング
今からハジメるHTML5プログラミング
 
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
 
Html5でOpen Dataをやってみる
Html5でOpen DataをやってみるHtml5でOpen Dataをやってみる
Html5でOpen Dataをやってみる
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
 
HTML5の前のJavaScript入門
HTML5の前のJavaScript入門HTML5の前のJavaScript入門
HTML5の前のJavaScript入門
 
Web Speech API でおっさんの声を美少女化してみた
Web Speech API でおっさんの声を美少女化してみたWeb Speech API でおっさんの声を美少女化してみた
Web Speech API でおっさんの声を美少女化してみた
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
 
Web制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたWeb制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみた
 
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like databaseオフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
HTML5 and Graphics
HTML5 and GraphicsHTML5 and Graphics
HTML5 and Graphics
 
Dreamweaver CS6で作るレスポンシブWebデザイン
Dreamweaver CS6で作るレスポンシブWebデザインDreamweaver CS6で作るレスポンシブWebデザイン
Dreamweaver CS6で作るレスポンシブWebデザイン
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
WebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみるWebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみる
 

Más de Masakazu Muraoka

FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
Masakazu Muraoka
 
実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する
Masakazu Muraoka
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
Masakazu Muraoka
 
Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発
Masakazu Muraoka
 
Async flow controll basic and practice
Async flow controll basic and practiceAsync flow controll basic and practice
Async flow controll basic and practice
Masakazu Muraoka
 
JAWS-UGにゴマをすろうと思ってAWSでHTML5してみた
JAWS-UGにゴマをすろうと思ってAWSでHTML5してみたJAWS-UGにゴマをすろうと思ってAWSでHTML5してみた
JAWS-UGにゴマをすろうと思ってAWSでHTML5してみた
Masakazu Muraoka
 
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
Masakazu Muraoka
 
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考えるボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
Masakazu Muraoka
 
Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門
Masakazu Muraoka
 
Webセキュリティ 3つの視点から考えるサイバー攻撃と自分
Webセキュリティ 3つの視点から考えるサイバー攻撃と自分Webセキュリティ 3つの視点から考えるサイバー攻撃と自分
Webセキュリティ 3つの視点から考えるサイバー攻撃と自分
Masakazu Muraoka
 

Más de Masakazu Muraoka (14)

Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 
Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
 
実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する実はとれました。System xhrでcsv形式のopen dataを取得する
実はとれました。System xhrでcsv形式のopen dataを取得する
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
 
Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発
 
Async flow controll basic and practice
Async flow controll basic and practiceAsync flow controll basic and practice
Async flow controll basic and practice
 
JAWS-UGにゴマをすろうと思ってAWSでHTML5してみた
JAWS-UGにゴマをすろうと思ってAWSでHTML5してみたJAWS-UGにゴマをすろうと思ってAWSでHTML5してみた
JAWS-UGにゴマをすろうと思ってAWSでHTML5してみた
 
MarkupCafe - html5j Markup group
MarkupCafe - html5j Markup groupMarkupCafe - html5j Markup group
MarkupCafe - html5j Markup group
 
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
 
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考えるボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
 
つかってみよう!Yeoman 〜HTML5 Webアプリ開発を効率化するツールの紹介〜
つかってみよう!Yeoman 〜HTML5 Webアプリ開発を効率化するツールの紹介〜つかってみよう!Yeoman 〜HTML5 Webアプリ開発を効率化するツールの紹介〜
つかってみよう!Yeoman 〜HTML5 Webアプリ開発を効率化するツールの紹介〜
 
Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門
 
Webセキュリティ 3つの視点から考えるサイバー攻撃と自分
Webセキュリティ 3つの視点から考えるサイバー攻撃と自分Webセキュリティ 3つの視点から考えるサイバー攻撃と自分
Webセキュリティ 3つの視点から考えるサイバー攻撃と自分
 

Último

Último (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

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

Notas del editor

  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