SlideShare a Scribd company logo
淘宝网前端应用与发展

        小马
关于我



{
      Name:       “赵泽欣”,
      Nickname:   “小马”,
      Jobtitle:   “前端架构师”
      Company:    “淘宝网”
      City:       “杭州”
      Twitter:    “zhaozexin”
}
内容提要


•   淘宝前端发展史
•   每年的问题与挑战
•   实践经验与心得
•   前端发展展望
Taobao.com @ 2003
Taobao.com @ 2004
Taobao.com @ 2005
Taobao.com @ 2006
淘宝网前端 @ 2006

                   前端员工人数


50


40


30


20


10
       0
 0
     2006   2007     2008   2009   2010
Taobao.com @ 2007
淘宝网前端 @ 2007

                   前端员工人数


50


40


30


20


10             5
       0
 0
     2006   2007    2008    2009   2010
问题与挑战 @ 2007




• 团队合作成本高,编码规范缺失
• 网站应用交互更复杂
• 脚本管理混乱,复用性低
UED开发流程




                      Mock-up   Demo
  PRD     Prototype
                      [视觉设计     [前端工程
 [产品经理]   [交互设计师]
                        师]        师]
与交互/视觉的合作




• Axture

• 制定标注规范

• 淘斯基
标注示例
与开发/测试的协作




• 共用的基础脚本库

•   HTML/CSS 命名约定
选择一个脚本类库




•   Prototype
•   jQuery
•   YUI
•   Dojo
•   Ext
Prototype
jQuery
Dojo
YUI
Ext
Why YUI?



 • 适合淘宝的多人协作开发环境
 • 功能齐全,可高效开发
 • 稳定 可靠
TBra




       基于YUI的电子商务网站常用组件库
与开发/测试的协作




•   共用的脚本库


• 代码约定(HTML/CSS/JavaScript命名
  规范)
与开发/测试的协作




合作中最常遇到的问题:
1. HTML 嵌套错误
2. 分不清哪些标签不要改劢,是前端丏用
   的?
3. 分不清哪些脚本应该由开发来写,哪些由
   前端来写?
与开发/测试的协作


问题: HTML 嵌套错误

解决方法:
增加特定格式的注释
教会开发人员使用Firebug & HTML Validator
与开发/测试的协作




• 问题:分不清哪些标签不要改劢,是前端
  丏用的?
解决方法: @TODO 格式化

特殊的Hook 命名约定,开发人员保留拥有特殊id/class命名的标签

<div id=“fp:slide” class=“tb-slide”>……</div>
<span class=“ww:token”><a class=“ww-online”>…</a></div>

新版:
<div id=“J_Slide”>……</div>

其他CSS命名,统一使用连接符。

脚本: 代码统一写在一个闭包内。
小结 (2007)



• 制定UED规范
• 制定前端代码规范
• 制定与开发的协作规范
Taobao.com @ 2008
淘宝网前端 @ 2008

                   前端员工人数


50


40


30


20
                      14

10            5
       0
 0
     2006   2007    2008    2009   2010
问题与挑战 @ 2008




• 淘宝的业务拆分,应用越来越多。如何保
  持页面的一致性
• 促销活劢频繁,促销页面占用大量的前端
  工作量
• 用户抱怨淘宝页面慢
• 人才与成长
保持页面的一致性



• 统一页头页尾
• 栅格化
• TMS 系统 (同时解决第二个问题)
TMS
关注前端性能


• CSS Sprite
• 首页 JavaScript/CSS 内嵌
• 减少HTTP请求
 – 将YUI+Tbra打包成一个请求 tbra-aio.js
• 引入CDN Assets域名
 – assets.taobaocdn.com
• 脚本/CSS压缩
 – YUICompressor
小结 (2008)


2008: 工具年

• 完善规范,将标准转化为工具
 – TMS


• 开始关注前端性能,使用
  ySlow/YUICompressor 进行优化
Taobao.com @ 2009
淘宝网前端 @ 2009

                   前端员工人数


50


40
                              30
30


20
                      14

10            5
       0
 0
     2006   2007    2008    2009   2010
困难与挑战 @ 2009




• YUI+Tbra 已不能满足开发需求

• 性能成为工作重点
困难与挑战 @ 2009

问题:YUI+Tbra已不能满足开发的需求
 – YUI的组件不合国情
 – Tbra扩展性不足
 – YUI组件较为笨重
解决方法:
 – 建立开源 Kissy 框架
 – 重写常用组件:
   AutoComplete/ImageLazyLoad/RichEdito
   r
困难与挑战 @ 2009

挑战:性能要求更严格
解决方法:
 –    根据ySlow原则逐条优化
 –    Assets.taobaocdn.com
 –    Cookie 优化
 –    图片压缩
 –    图片延迟
 –    常用工具: Firebug + Fiddler + ySlow +
     PageSpeed + Webpagetest
小结 (2009)




2009年:性能年



@TODO 具体
Taobao.com @ 2010
淘宝网前端 @ 2010

                    前端员工人数


100
90
80                                    70
70
60
50
40                             30
30
20                      14
               5
10      0
 0
      2006   2007     2008   2009   2010
问题与挑战 @ 2010



• YUI + Tbra 的前端架构不再适合淘宝
• 性能要求苛刻
• 项目前端开发工作量占比不断提高,对前
  端技能要求日益提高
问题与挑战 @ 2010



挑战:新淘宝前端架构

解决方法:
 – Kissy Core 重写,不再依赖YUI
 – Kissy UI 开源组件库
 – Tbra 基于 Kissy,淘宝丏用组件库
 – 各产品线类库
淘宝2010前端架构




  App Lib   {   Mall   3C   Shop   …    }

Company Lib {   TBra            TBack   }

Common Lib {    YUI2    Kissy           }
问题与挑战 @ 2010


挑战:苛刻的性能要求

解决方法:
 – 2010 淘宝最新首页优化技术(HTML压缩与
  DOM预加载)
 – 淘宝性能指数
 – 性能自劢化测试
 – 基于Nginx 的Cdn combo 实现
 – More…
小结 (2010)




• 2010: 品质与协同年



• @TODO 具体
前端的发展

              Web开发
    应用Web化    (HTML/CSS/JavaScript/Flash/浏览器
              兼容性)


              交互设计代码实现
    用户体验经济
              (有设计基础,理解用户体验)


              业务开发
   Web应用桌面化   (Ajax异步开发,服务端编程语言基础,
              性能)


              云端管道开发
        云计算
              (API,架构,安全)
前端团队人才与成长
谢谢

More Related Content

PPTX
淘宝网前端应用与发展
PPTX
中小企業選擇雲端服務的實戰密技
PPTX
《多奇線上講堂》如何用 Outlook 和 OWA 整理聯絡人資訊
PPTX
Web 开发漫谈 —— 前端篇
PPTX
Question 7
PDF
PDF
Furniture design_LR_Green Chair in situ
PDF
JavascriptCert
淘宝网前端应用与发展
中小企業選擇雲端服務的實戰密技
《多奇線上講堂》如何用 Outlook 和 OWA 整理聯絡人資訊
Web 开发漫谈 —— 前端篇
Question 7
Furniture design_LR_Green Chair in situ
JavascriptCert

Viewers also liked (19)

PDF
marmalade
PPTX
Diapositivas
DOCX
Niceas santos
PDF
Licences Surveyor_May 8 2003-Jun 7 2004
PDF
Reconocimiento Tec Milenio
PDF
Org Change Mang Cert Grant Yarde 2014
PDF
567292326631244
PDF
El mudo, el enano y el cuarteteto en twitter
PPTX
Presentación de observación del proceos escolar.
PPTX
No more Benetton
PDF
IKT & lärande; lärarutbildningen Södertörns högskola, januari 2009
PDF
Referencje z Berlitz Poland Sp z o.o.
PDF
20150812121235773
PPT
Nadalpresentacio08
PPTX
Examen de computación
marmalade
Diapositivas
Niceas santos
Licences Surveyor_May 8 2003-Jun 7 2004
Reconocimiento Tec Milenio
Org Change Mang Cert Grant Yarde 2014
567292326631244
El mudo, el enano y el cuarteteto en twitter
Presentación de observación del proceos escolar.
No more Benetton
IKT & lärande; lärarutbildningen Södertörns högskola, januari 2009
Referencje z Berlitz Poland Sp z o.o.
20150812121235773
Nadalpresentacio08
Examen de computación
Ad

Similar to 赵泽欣 - 淘宝网前端应用与发展 (20)

PPTX
淘宝前端架构(玉伯)[懒懒交流会#38]
PDF
淘宝前端开发关键词
PPTX
淘宝开放产品前端实践
PPTX
淘宝搜索前端优化
PPTX
漫谈web前端
PPTX
前端性能优化&测试
PDF
淘宝前端技术巡礼
PPTX
Http协议介绍
KEY
天祁《交易线》
PPTX
前端性能测试
PDF
移动的前端技术架构和性能优化
PDF
前端性能优化和自动化
PDF
淘宝交易平台前端重构
PPTX
广告投放代码和创意代码持续优化
PPTX
Developer vs designer
PDF
美团前端架构简介
PPTX
广告投放代码和创意代码持续优化
PDF
淘宝彩票首页前端总结
PDF
Google analytics代码部署补充 + SEO 搜索引擎优化
PPT
一淘新首页总结
淘宝前端架构(玉伯)[懒懒交流会#38]
淘宝前端开发关键词
淘宝开放产品前端实践
淘宝搜索前端优化
漫谈web前端
前端性能优化&测试
淘宝前端技术巡礼
Http协议介绍
天祁《交易线》
前端性能测试
移动的前端技术架构和性能优化
前端性能优化和自动化
淘宝交易平台前端重构
广告投放代码和创意代码持续优化
Developer vs designer
美团前端架构简介
广告投放代码和创意代码持续优化
淘宝彩票首页前端总结
Google analytics代码部署补充 + SEO 搜索引擎优化
一淘新首页总结
Ad

More from d0nn9n (20)

PPT
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
PPT
腾讯大讲堂:55 企业法律风险防范
PPT
腾讯大讲堂:56 qzone安全之路
PPT
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
PPT
腾讯大讲堂:57 超级qq的千万之路
PDF
蔡学镛 Rebol漫谈
PPT
Yanggang wps
PDF
熊节 - 软件工厂的精益之路
PDF
谢恩伟 - 微软在云端
PPTX
去哪儿平台技术
PDF
吴磊 - Silverlight企业级RIA
PDF
Tom - Scrum
PDF
Tim - FSharp
PDF
Tiger oracle
PDF
Paulking groovy
PDF
Paulking dlp
PDF
Patrick jcp
PDF
Nick twitter
PDF
Marc facebook
PDF
Kane debt
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
腾讯大讲堂:55 企业法律风险防范
腾讯大讲堂:56 qzone安全之路
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:57 超级qq的千万之路
蔡学镛 Rebol漫谈
Yanggang wps
熊节 - 软件工厂的精益之路
谢恩伟 - 微软在云端
去哪儿平台技术
吴磊 - Silverlight企业级RIA
Tom - Scrum
Tim - FSharp
Tiger oracle
Paulking groovy
Paulking dlp
Patrick jcp
Nick twitter
Marc facebook
Kane debt

赵泽欣 - 淘宝网前端应用与发展