概述 • 杂牌军(排名不分先后)
o 岳云,张挺,承玉,遇春,向阳,文河,云谦
• 时间 o 2011.2 – 2011.6(一期),2011.6 – 2011.8(统一下单)
• 内容 o 20+ 虚拟下单 JavaScript 重构 o 购物车确认下单和立即购买合并
分层模型 • tc/cart/
o 页面初始化
• tc/core/ o 模块工厂 o 表单验证 o Log工具 o 营销规则引擎 o DOM缓存
• tc/form/ o 表单验证子集
• tc/mods/ o 各具体业务模块 o ui/logic 拆分
事件中心和工厂 • 全局消息分发和接收
o var EventCenter = KISSY.merge({}, KISSY.EventTarget) o 局部消息分组(fire(‘group1:event1’)) o http://trade.ued.taobao.net/tc/docs/symbols/MIXED.html
• 模块“原型”——Loader的加载扩展 o 事件方法(EventTarget) o 事件中心(EventCenter)
可维护性(统⼀一下单) • 设计的痛
o 单例改多例,大量重构和回归 o 直接导致虚拟和统一下单分道扬镳 o 商城独自fork一份代码维护
• 性能优化(1天从30s优化到2s的故事) o 规则的延迟计算 o DOM缓存 o 仔细调整事件绑定触发和各个核心业务点的加载顺序 o 只对最明显的部位做改进
• 关注业务数据的变更
设计点滴 • 框架选型
o 选型的意义(花多点时间思考和讨论,实现是最简单的一环) o 利用现有模块,框架和实现去调整,利于快速实现 o 设计以减少系统熵增加为导向
• MVC or 简单分层
• 持续重构和快速迭代(快速淘汰) o 把变更当成常态来设计 o 在适当的时候果断重写
• 规则引擎:DSL or not?
• 文档的投入 o 接口文档:http://trade.ued.taobao.net/tc/docs/index.html o 文档的投入也要随着业务而变更
• 测试的投入
Recommended