49
hujs 总结 淘宝观光团

Hujs 总结

  • View
    763

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Hujs 总结

hujs 总结淘宝观光团

Page 2: Hujs 总结

hujs

Page 3: Hujs 总结

主题

• javascript

• nodejs

• cloud service

• win8

Page 4: Hujs 总结

• javascript

Page 5: Hujs 总结

• knockout.js

Page 6: Hujs 总结

knockout.js

Page 7: Hujs 总结

knockout.js

Page 8: Hujs 总结
Page 9: Hujs 总结

knockout.js

Page 10: Hujs 总结

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 总结

knockout.js

• my option

• DOM oriented

• hard to work with javascript newed

component (KISSY)

• behavior and view are not separated

Page 12: Hujs 总结

• ECMAScript 5

Page 13: Hujs 总结

Object

• Object.create

• Object.defineProperty

• Object.getPrototype

• Object.keys

• Object.getOwnPropertyDescriptor

• Object.getOwnPropertyName

• Object.seal/preventExtension/freeze ...

Page 14: Hujs 总结

Array• every

• some

• map

• filter

• forEach

• reduce

• indexOf ...

Page 15: Hujs 总结

JSON

• stringify(value,[ [replacer],space])

• parser(text,[reviver])

• subset of javascript

• double quote

• not support \x \t \n

Page 16: Hujs 总结

‘use strict’;

• 禁止不声明的变量

• 禁止 with

• 全局 eval

• arguments 不同步参数

• 禁止 caller callee

• 禁止对象重复属性名

Page 17: Hujs 总结

• wind.js 调试

Page 18: Hujs 总结

wind.js

$wait(readFile);alert('read complete');

readFile(function(){alert(‘read complete’);

});

compile

Page 19: Hujs 总结

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 总结

KISSY XTemplate

var tpl = 'this is {{title}}!';

var data = {title: 'o'

};

var render = new XTemplate(tpl, {name: 'tpl-variable'

}).render(data);

Page 21: Hujs 总结

• Modularization( Seajs, KISSY Loader )

Page 22: Hujs 总结

• Modularization

• 可维护性

• 性能

• 组件(模块)共享

• 调试

Page 23: Hujs 总结

• Promise/A (Q, KISSY)

Page 24: Hujs 总结

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 总结

Promise

• easy combination

• easy parallel

S.Promise.all( io.get('url1'),io.get('url2'),function( data1, data2 ){

});

Page 26: Hujs 总结

Promise

• exception-bullet

io.get('url').then(function(){throw "2";

}).fail(function(w){

alert(w);

});

Page 27: Hujs 总结

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 总结

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 总结

• nodejs

Page 30: Hujs 总结

• nodejs proxy for mysql

Page 31: Hujs 总结

优势

• 对比 c/c++

• 简化实现非阻塞异步功能

• 性能差别不大

• 编程复杂度低

Page 32: Hujs 总结

常用模块

• async

• 方便异步操作

• log4js

• 日志

• node-webkit-agent

• 使用 chrome dev tools 监控服务器端

Page 33: Hujs 总结

• nodejs for webim(长连接)

Page 34: Hujs 总结

优势

• 快速原型

• 学习成本低

• 出众的性能

• 团队入门快

Page 35: Hujs 总结

多进程架构

Page 36: Hujs 总结

nodejs 优化

• 子进程往父进程发送心跳保证稳定

• c++ 扩展提高性能

• cpu 绑定进程

Page 37: Hujs 总结

• nodejs for backend game engine

Page 38: Hujs 总结

game vs web

• area based vs load balance

• state vs stateless

• broadcast (area) vs request / response

• tick vs request

Page 39: Hujs 总结
Page 40: Hujs 总结
Page 41: Hujs 总结

• nodejs @ taobao

Page 42: Hujs 总结
Page 43: Hujs 总结

调优

• console.time / timeEnd

• benchmark.js 性能测量

• top / iotop @linux

• node-webkit-agent

• v8profile

• nodejs gc log -> jvm gc log

Page 44: Hujs 总结

• cloud service

Page 45: Hujs 总结

cloud

• appfog

• azure

• npm install azure

• git commit

• git push azure master

Page 46: Hujs 总结

• win8

Page 47: Hujs 总结
Page 48: Hujs 总结
Page 49: Hujs 总结

thanks