Hujs 总结
-
date post
12-Sep-2014 -
Category
Technology
-
view
763 -
download
0
description
Transcript of Hujs 总结
![Page 1: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/1.jpg)
hujs 总结淘宝观光团
![Page 2: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/2.jpg)
hujs
![Page 3: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/3.jpg)
主题
• javascript
• nodejs
• cloud service
• win8
![Page 4: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/4.jpg)
• javascript
![Page 5: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/5.jpg)
• knockout.js
![Page 6: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/6.jpg)
knockout.js
![Page 7: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/7.jpg)
knockout.js
![Page 8: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/8.jpg)
![Page 9: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/9.jpg)
knockout.js
![Page 10: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/10.jpg)
knockout.js• MVVM
• view model
• data and behavior
• view
• DOM binding
• DOM as template
• just change view model to sync with
view
![Page 11: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/11.jpg)
knockout.js
• my option
• DOM oriented
• hard to work with javascript newed
component (KISSY)
• behavior and view are not separated
![Page 12: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/12.jpg)
• ECMAScript 5
![Page 13: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/13.jpg)
Object
• Object.create
• Object.defineProperty
• Object.getPrototype
• Object.keys
• Object.getOwnPropertyDescriptor
• Object.getOwnPropertyName
• Object.seal/preventExtension/freeze ...
![Page 14: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/14.jpg)
Array• every
• some
• map
• filter
• forEach
• reduce
• indexOf ...
![Page 15: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/15.jpg)
JSON
• stringify(value,[ [replacer],space])
• parser(text,[reviver])
• subset of javascript
• double quote
• not support \x \t \n
![Page 16: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/16.jpg)
‘use strict’;
• 禁止不声明的变量
• 禁止 with
• 全局 eval
• arguments 不同步参数
• 禁止 caller callee
• 禁止对象重复属性名
![Page 17: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/17.jpg)
• wind.js 调试
![Page 18: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/18.jpg)
wind.js
$wait(readFile);alert('read complete');
readFile(function(){alert(‘read complete’);
});
compile
![Page 19: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/19.jpg)
souce map
• Generated by closure compiler. Intro
• native support in chrome
• 调试压缩/翻译代码
• used at KISSY XTemplate
//@ sourceMappingURL=/path/to/file.js.maporX-SourceMap: /path/to/file.js.map
![Page 20: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/20.jpg)
KISSY XTemplate
var tpl = 'this is {{title}}!';
var data = {title: 'o'
};
var render = new XTemplate(tpl, {name: 'tpl-variable'
}).render(data);
![Page 21: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/21.jpg)
• Modularization( Seajs, KISSY Loader )
![Page 22: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/22.jpg)
• Modularization
• 可维护性
• 性能
• 组件(模块)共享
• 调试
![Page 24: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/24.jpg)
Promise• cleaner method signature
• nested call changed to chained call
io.get("url1",function(){io.get('url2',function(){
io.get('url3',function(){});
});})
io.get("url1").then(function(){
return io.get("url2")
}).then(function(){
return io.get("url3");
}).then(function(data3){
});
![Page 25: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/25.jpg)
Promise
• easy combination
• easy parallel
S.Promise.all( io.get('url1'),io.get('url2'),function( data1, data2 ){
});
![Page 26: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/26.jpg)
Promise
• exception-bullet
io.get('url').then(function(){throw "2";
}).fail(function(w){
alert(w);
});
![Page 27: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/27.jpg)
Promise
• error bubble
io.get("url1").then(function(){
return io.get("url2")
}).then(function(){
return io.get("url3");
}).then(function(data3){
},function(err){
alert(error);
});
![Page 28: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/28.jpg)
Promise
• error recovery
io.get("url1").then(function () {
return io.get("url2");
}, function (e) {
// error recoveryS.log(e);return io.get("url2");
}).then(function (data2) {
});
![Page 29: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/29.jpg)
• nodejs
![Page 30: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/30.jpg)
• nodejs proxy for mysql
![Page 31: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/31.jpg)
优势
• 对比 c/c++
• 简化实现非阻塞异步功能
• 性能差别不大
• 编程复杂度低
![Page 32: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/32.jpg)
常用模块
• async
• 方便异步操作
• log4js
• 日志
• node-webkit-agent
• 使用 chrome dev tools 监控服务器端
![Page 33: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/33.jpg)
• nodejs for webim(长连接)
![Page 34: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/34.jpg)
优势
• 快速原型
• 学习成本低
• 出众的性能
• 团队入门快
![Page 35: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/35.jpg)
多进程架构
![Page 36: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/36.jpg)
nodejs 优化
• 子进程往父进程发送心跳保证稳定
• c++ 扩展提高性能
• cpu 绑定进程
![Page 37: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/37.jpg)
• nodejs for backend game engine
![Page 38: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/38.jpg)
game vs web
• area based vs load balance
• state vs stateless
• broadcast (area) vs request / response
• tick vs request
![Page 39: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/39.jpg)
![Page 40: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/40.jpg)
![Page 41: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/41.jpg)
• nodejs @ taobao
![Page 42: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/42.jpg)
![Page 43: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/43.jpg)
调优
• console.time / timeEnd
• benchmark.js 性能测量
• top / iotop @linux
• node-webkit-agent
• v8profile
• nodejs gc log -> jvm gc log
![Page 44: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/44.jpg)
• cloud service
![Page 45: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/45.jpg)
cloud
• appfog
• azure
• npm install azure
• git commit
• git push azure master
![Page 46: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/46.jpg)
• win8
![Page 47: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/47.jpg)
![Page 48: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/48.jpg)
![Page 49: Hujs 总结](https://reader034.fdocuments.net/reader034/viewer/2022050701/541306748d7f720f4e8b4798/html5/thumbnails/49.jpg)
thanks