Upgrade to Pro — share decks privately, control downloads, hide ads and more …

交易平台化(前端)

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 交易平台化(前端)

Avatar for Frank Xu

Frank Xu

June 01, 2011
Tweet

More Decks by Frank Xu

Other Decks in Programming

Transcript

  1. Agenda •  概述 •  分层模型 •  模块化和工厂 •  可测试性的探索 • 

    前端规则引擎 •  可维护性(统一下单) •  设计点滴
  2. 概述 •  杂牌军(排名不分先后) o  岳云,张挺,承玉,遇春,向阳,文河,云谦 •  时间 o  2011.2 –

    2011.6(一期),2011.6 – 2011.8(统一下单) •  内容 o  20+ 虚拟下单 JavaScript 重构 o  购物车确认下单和立即购买合并
  3. 分层模型 •  tc/cart/   o  页面初始化   •  tc/core/  

    o  模块工厂 o  表单验证 o  Log工具 o  营销规则引擎 o  DOM缓存 •  tc/form/   o  表单验证子集 •  tc/mods/   o  各具体业务模块 o  ui/logic  拆分
  4. 模块化和工厂 •  逻辑内聚 o  KISSY 1.2.0 Loader •  依赖解耦 o 

    事件中心(Event Center) •  模块创建 o  模块工厂(Module Factory)
  5. 事件中心和工厂 •  全局消息分发和接收   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)  
  6. 可维护性(统⼀一下单) •  设计的痛 o  单例改多例,大量重构和回归 o  直接导致虚拟和统一下单分道扬镳 o  商城独自fork一份代码维护 • 

    性能优化(1天从30s优化到2s的故事) o  规则的延迟计算 o  DOM缓存 o  仔细调整事件绑定触发和各个核心业务点的加载顺序 o  只对最明显的部位做改进 •  关注业务数据的变更
  7. 设计点滴 •  框架选型 o  选型的意义(花多点时间思考和讨论,实现是最简单的一环) o  利用现有模块,框架和实现去调整,利于快速实现 o  设计以减少系统熵增加为导向 • 

    MVC or 简单分层 •  持续重构和快速迭代(快速淘汰) o  把变更当成常态来设计 o  在适当的时候果断重写 •  规则引擎:DSL or not? •  文档的投入 o  接口文档:http://trade.ued.taobao.net/tc/docs/index.html o  文档的投入也要随着业务而变更 •  测试的投入