Recommended
PPT
PDF
PDF
PDF
PDF
ちょっと詳しくJavaScript 特別編【悪霊の神々】
PDF
PDF
PPTX
PDF
Reactive Extensionsで非同期処理を簡単に
PDF
PDF
PDF
Chrome Developer Toolsを使いこなそう!
PDF
PDF
大規模なギョームシステムにHaxeを採用してみた話
PDF
PDF
Functional JavaScript with Lo-Dash.js
PDF
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
PDF
JavaScript (ECMAScript) 2013
PDF
PDF
Webサイト・フロントエンドの高速化とgrunt.jsについて
PDF
PPTX
Javascriptのデザインパターン【勉強会資料】
PDF
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
More Related Content
PPT
PDF
PDF
PDF
PDF
ちょっと詳しくJavaScript 特別編【悪霊の神々】
PDF
PDF
PPTX
Similar to Bitter Sweet Javascript
PDF
Reactive Extensionsで非同期処理を簡単に
PDF
PDF
PDF
Chrome Developer Toolsを使いこなそう!
PDF
PDF
大規模なギョームシステムにHaxeを採用してみた話
PDF
PDF
Functional JavaScript with Lo-Dash.js
PDF
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
PDF
JavaScript (ECMAScript) 2013
PDF
PDF
Webサイト・フロントエンドの高速化とgrunt.jsについて
PDF
PPTX
Javascriptのデザインパターン【勉強会資料】
PDF
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
Bitter Sweet Javascript 1. 2. 3. what i am not talking
about:
mobile webkit特有の話はしません。
html5の話もしません。
jQuery/prototypeの話もしません。
ソーシャルな話もしません。
coffee scriptの話もしません。
13年12月3日火曜日
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. brook.widget
Markup Resource
widget A
- meta data
- meta data
widget A
- meta data
- meta data
namespace N1
namespace A
namespace N2
namespace N3
widget B
- meta data
- meta data
namespace B
widget C
- meta data
- meta data
namespace C
namespace N5
namespace D
namespace N6
13年12月3日火曜日
namespace N4
27. brook.widget
Markup Resource
widget A
- meta data
- meta data
widget A
- meta data
- meta data
namespace N1
namespace A
namespace N2
namespace N3
widget B
- meta data
- meta data
namespace B
widget C
- meta data
- meta data
namespace C
namespace N5
namespace D
namespace N6
13年12月3日火曜日
namespace N4
28. 29. 30. 31. 32. 33. 34. 35. 36. callbackで継続
function (callback) {
get(anchor.href, callback);
},
function (callback, html) {
var m = html.match(PATTERN);
if (m) {
callback(m[0]);
}
},
function (callback, uri) {
get(uri, callback);
},
function (callback, js) {
var images = eval(js);
images.forEach(function (image) {
li.appendChild(createImage(image));
});
}
13年12月3日火曜日
37. callbackで継続
function (callback) {
get(anchor.href, callback);
},
function (callback, html) {
var m = html.match(PATTERN);
if (m) {
callback(m[0]);
}
},
function (callback, uri) {
get(uri, callback);
},
function (callback, js) {
var images = eval(js);
images.forEach(function (image) {
li.appendChild(createImage(image));
});
}
13年12月3日火曜日
38. callbackで継続
function (callback) {
get(anchor.href, callback);
},
function (callback, html) {
var m = html.match(PATTERN);
if (m) {
callback(m[0]);
}
},
function (callback, uri) {
get(uri, callback);
},
function (callback, js) {
var images = eval(js);
images.forEach(function (image) {
li.appendChild(createImage(image));
});
}
13年12月3日火曜日
39. callbackで継続
function (callback) {
get(anchor.href, callback);
},
function (callback, html) {
var m = html.match(PATTERN);
if (m) {
callback(m[0]);
}
},
function (callback, uri) {
get(uri, callback);
},
function (callback, js) {
var images = eval(js);
images.forEach(function (image) {
li.appendChild(createImage(image));
});
}
13年12月3日火曜日
40. 41. 42. 43. 44. 45. MVC is ..
Model
View
Controller
// mvc as a stream of callbacks
userAction
.bind( viewToController )
.bind( controller )
.bind( model )
.bind( viewFromModel )
userAction.subscribe();
単純なデータフローとして考え
るとこのようにモデル化でき
る。
13年12月3日火曜日
46. 47. brook.channel
•
promiseの流れをforkする
// mvc as a stream of callbacks
var channel = ns.channel();
channel.observe( action1.bind( fin ) );
channel.observe( action2.bind( fin ) );
before.bind( channel.send() );
13年12月3日火曜日
48. 49. flip flop
var flip = new Tab(flipElement);
var flop = new Tab(flopElement);
Flip
Flip Content
Flop
Flop Content
flip.select
.observe( flop.toHide() );
flop.select
.observe( flip.toHide() );
flip.select
.observe(
! displayLoading
.bind( flipContent ) );
flop.select
.observe(
! displayLoading
.bind( flopContent ) );
13年12月3日火曜日
50. 51. brook.model
var model = ns.createModel();
Model
create
delete
notify(“create”)
model.addMethod('create',
requestFilter
.bind( jsonrpc.createRPCPromise('create.entry') )
.bind( responseFilter ) );
model.addMethod('delete',
requestFilter
.bind( jsonrpc.createRPCPromise('delete.entry') )
.bind( responseFilter ) )
userAction.observe(
eventToRequest.bind( model.notify("create"));
model.method('create').observe( actionA );
model.method('create').observe( actionB );
13年12月3日火曜日
52. MVC is just a event
network
Model
View
Model
View
Controller
13年12月3日火曜日
53. MVC is just a event
network
Model
View
// in controller
Model
var model = ns.model;
var view = ns.view;
View
Controller
observeEvent( element, 'click',
! viaEvent.bind(
model.notify('update') );
model.observe( 'update',
view
!
.bind( updateHTML(element) )
!
.bind( ns.bindAllWidget )
);
13年12月3日火曜日
54. todo brook / namespace
•
ふふふふ。
•
ドキュメントが。。が。
•
ほんとはモテる感出したい
•
13年12月3日火曜日
55. 56.