SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
CPO 项目的前端实践分享 2010-10-16 刘松 篱笆网 前端工程师
Choose Photo Online  在线选片系统 选片 浏览 分享 相册 发起 / 看结果 帮帮选 上传相片 针对确认订单 交易 朋友 浏览 投票 / 留言 会员 其他访客 CPO 商家
增量 + 迭代的开发过程 6 月 7 月 8 月 23 5 9 月 28 启动 19 公测 26 交付 调整 交付 调整 交付 调整 选片 外围 客照 相册 相片处理与发布 相册管理 相片管理 分享相片 选片管理 帮帮选 相片对比 CPO Home CPO Admin CPO Enter Points 测试改进、公测 客照管理 测试改进、发布
团队的专业构成及与前端的协作关系 产品团队 交互设计 视觉设计 交互建议 页面、接口 交互、参数 开发团队  Bug 委托 Bug 判定 产品经理  1 人 产品运营  1 人 项目经理  1 人 基础服务  2 人 系统维护  1 人 产品设计 2 人  前端开发 3 人  测试 2 人  PHP 开发 2 人
前端 技术运用 模块化 jQuery 代码分离 代码压缩 1 2 3 4
模块化 <div   class = &quot;box&quot; > <div   class = &quot;hd&quot; > <h3></h3> <div   class = &quot;extra&quot; ></div> </div> <div   class = &quot;bd&quot; ></div> <div   class = &quot;ft&quot; ></div> </div> Box Head Body
jQuery 删除配置 配置选片 相片排序 已配置 滑动插件 数据载体 选择操作 删除操作 滑动插件 数据载体 删除操作 控制按钮
代码分离 浏览页面 Page 事件加载器 钩子元素 匹配元素 加载事件 事件函数 //// 相册列表处理事件 var   CPO . init_album_list   =   function   ( e )   { // 功能代码 } //// 编辑相册事件 var   CPO . init_album_edit   =   function   ( e )   { // 功能代码 } //// 元素  class=“j”  作为钩子, a_xxx 为事件特征 function   eventer ( root )   { var   pattern   =   / a_ ( w +)/;   // 事件特征正则格式 ///  筛选钩子元素 $ ( root ). find ( '.j' ). each ( function   ()   { var   matchs   =   pattern . exec ( this . className ); if   ( matchs )   {// 匹配事件、完成加载 var   fn   =   CPO [ 'init_'   +   matchs [ 1 ]]; if   ( $ . isFunction ( fn ))   { fn ( this ); }; } }); } <body> <div   class = “j a_album_list&quot; > <a   href = &quot;#&quot;   class = “j a_album_edit&quot; > 编辑相册 </a> </div> </body>
代码压缩 { &quot;Version&quot; :   &quot;v3&quot; , // 版本 &quot;Compress” :   &quot;1&quot; ,   // 文件输出方案 &quot;FileType&quot; :   &quot;js“ , // 文件类型 &quot;Common&quot; :   {// 全局级文件 &quot;jquery&quot; :   [ &quot;jquery/jquery.js&quot; ] }, &quot;Domain&quot; :   {// 引动的跨域文件(直接引用,不做压缩) }, &quot;Module&quot; :   {// 模块级文件 &quot;base_lib&quot; :[ &quot;jquery/jquery.cookie.js&quot; ,......] }, &quot;Page&quot; :   {// 页面级文件 &quot; list_album &quot; :   { &quot;C&quot; :   [ &quot;jquery&quot; ],...... }, //PHP 引用压缩实例 /**  相册列表  */ public   function   list_album ()   { $ this -> setFE   (   &quot; list_album &quot;   ); ...... } 浏览页面 Page PHP 标识 压缩配置 匹配配置 代码压缩 代码输出
代码压缩 浏览页面 Page PHP 标识 压缩配置 匹配配置 代码压缩 代码输出 jquery/jquery.js jquery/jTab.js jquery/json2.js jquery/…… cpo_album.js cpo_box.js cpo_tab.js cpo_form.js cpo_table.js …… list_album.c.p.js
代码压缩效果( CSS )
代码压缩效果( JS )
欢迎指正,欢迎探讨,谢谢大家! 刘松 [email_address]

Mais conteúdo relacionado

Semelhante a 刘松 Cpo项目的前端实践分享

Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3edanwade
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 reviewleneli
 
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5compassdesign
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快li qiang
 
Denver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templateDenver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templatecompassdesign
 
Creating CSS Template with Barrie North
Creating CSS Template with Barrie NorthCreating CSS Template with Barrie North
Creating CSS Template with Barrie NorthJohn Coonen
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现hua qiu
 
揭秘Html5和Css3
揭秘Html5和Css3揭秘Html5和Css3
揭秘Html5和Css3Adam Lu
 
揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍裕波 周
 
Html5css3 go.yeefe.com
Html5css3 go.yeefe.comHtml5css3 go.yeefe.com
Html5css3 go.yeefe.comtellyeefe
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当裕波 周
 
Maven – 项目管理利器
Maven – 项目管理利器Maven – 项目管理利器
Maven – 项目管理利器johnnybai
 
Xsd培训资料
Xsd培训资料Xsd培训资料
Xsd培训资料彦波 叶
 
FIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in FlashFIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in Flashqizhi20
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
Google App Engine Devfest 200810 External
Google App Engine Devfest 200810 ExternalGoogle App Engine Devfest 200810 External
Google App Engine Devfest 200810 Externaljunyu
 
Windows Mobile Widget 開發
Windows Mobile Widget 開發Windows Mobile Widget 開發
Windows Mobile Widget 開發Chui-Wen Chiu
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试Yiwei Ma
 

Semelhante a 刘松 Cpo项目的前端实践分享 (20)

Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
 
Denver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templateDenver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS template
 
Creating CSS Template with Barrie North
Creating CSS Template with Barrie NorthCreating CSS Template with Barrie North
Creating CSS Template with Barrie North
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 
揭秘Html5和Css3
揭秘Html5和Css3揭秘Html5和Css3
揭秘Html5和Css3
 
揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍
 
Html5css3 go.yeefe.com
Html5css3 go.yeefe.comHtml5css3 go.yeefe.com
Html5css3 go.yeefe.com
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当
 
Maven – 项目管理利器
Maven – 项目管理利器Maven – 项目管理利器
Maven – 项目管理利器
 
Xsd培训资料
Xsd培训资料Xsd培训资料
Xsd培训资料
 
FIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in FlashFIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in Flash
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
Google App Engine Devfest 200810 External
Google App Engine Devfest 200810 ExternalGoogle App Engine Devfest 200810 External
Google App Engine Devfest 200810 External
 
Windows Mobile Widget 開發
Windows Mobile Widget 開發Windows Mobile Widget 開發
Windows Mobile Widget 開發
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试
 
Js dom
Js domJs dom
Js dom
 

Mais de czbad

付振华 前端开发环境优化
付振华 前端开发环境优化付振华 前端开发环境优化
付振华 前端开发环境优化czbad
 
胡鑫 无线终端的重构
胡鑫 无线终端的重构胡鑫 无线终端的重构
胡鑫 无线终端的重构czbad
 
孙极 模块化的(X)html&css开发
孙极 模块化的(X)html&css开发孙极 模块化的(X)html&css开发
孙极 模块化的(X)html&css开发czbad
 
潘杰茂 网络图像优化 V21
潘杰茂 网络图像优化 V21 潘杰茂 网络图像优化 V21
潘杰茂 网络图像优化 V21 czbad
 
甄焱鲲-知识重构
甄焱鲲-知识重构甄焱鲲-知识重构
甄焱鲲-知识重构czbad
 
黄夷-移动UX漫谈
黄夷-移动UX漫谈黄夷-移动UX漫谈
黄夷-移动UX漫谈czbad
 
Html5不只是个传说
Html5不只是个传说Html5不只是个传说
Html5不只是个传说czbad
 

Mais de czbad (7)

付振华 前端开发环境优化
付振华 前端开发环境优化付振华 前端开发环境优化
付振华 前端开发环境优化
 
胡鑫 无线终端的重构
胡鑫 无线终端的重构胡鑫 无线终端的重构
胡鑫 无线终端的重构
 
孙极 模块化的(X)html&css开发
孙极 模块化的(X)html&css开发孙极 模块化的(X)html&css开发
孙极 模块化的(X)html&css开发
 
潘杰茂 网络图像优化 V21
潘杰茂 网络图像优化 V21 潘杰茂 网络图像优化 V21
潘杰茂 网络图像优化 V21
 
甄焱鲲-知识重构
甄焱鲲-知识重构甄焱鲲-知识重构
甄焱鲲-知识重构
 
黄夷-移动UX漫谈
黄夷-移动UX漫谈黄夷-移动UX漫谈
黄夷-移动UX漫谈
 
Html5不只是个传说
Html5不只是个传说Html5不只是个传说
Html5不只是个传说
 

刘松 Cpo项目的前端实践分享

  • 1. CPO 项目的前端实践分享 2010-10-16 刘松 篱笆网 前端工程师
  • 2. Choose Photo Online 在线选片系统 选片 浏览 分享 相册 发起 / 看结果 帮帮选 上传相片 针对确认订单 交易 朋友 浏览 投票 / 留言 会员 其他访客 CPO 商家
  • 3. 增量 + 迭代的开发过程 6 月 7 月 8 月 23 5 9 月 28 启动 19 公测 26 交付 调整 交付 调整 交付 调整 选片 外围 客照 相册 相片处理与发布 相册管理 相片管理 分享相片 选片管理 帮帮选 相片对比 CPO Home CPO Admin CPO Enter Points 测试改进、公测 客照管理 测试改进、发布
  • 4. 团队的专业构成及与前端的协作关系 产品团队 交互设计 视觉设计 交互建议 页面、接口 交互、参数 开发团队 Bug 委托 Bug 判定 产品经理 1 人 产品运营 1 人 项目经理 1 人 基础服务 2 人 系统维护 1 人 产品设计 2 人 前端开发 3 人 测试 2 人 PHP 开发 2 人
  • 5. 前端 技术运用 模块化 jQuery 代码分离 代码压缩 1 2 3 4
  • 6. 模块化 <div class = &quot;box&quot; > <div class = &quot;hd&quot; > <h3></h3> <div class = &quot;extra&quot; ></div> </div> <div class = &quot;bd&quot; ></div> <div class = &quot;ft&quot; ></div> </div> Box Head Body
  • 7. jQuery 删除配置 配置选片 相片排序 已配置 滑动插件 数据载体 选择操作 删除操作 滑动插件 数据载体 删除操作 控制按钮
  • 8. 代码分离 浏览页面 Page 事件加载器 钩子元素 匹配元素 加载事件 事件函数 //// 相册列表处理事件 var CPO . init_album_list = function ( e ) { // 功能代码 } //// 编辑相册事件 var CPO . init_album_edit = function ( e ) { // 功能代码 } //// 元素 class=“j” 作为钩子, a_xxx 为事件特征 function eventer ( root ) { var pattern = / a_ ( w +)/; // 事件特征正则格式 /// 筛选钩子元素 $ ( root ). find ( '.j' ). each ( function () { var matchs = pattern . exec ( this . className ); if ( matchs ) {// 匹配事件、完成加载 var fn = CPO [ 'init_' + matchs [ 1 ]]; if ( $ . isFunction ( fn )) { fn ( this ); }; } }); } <body> <div class = “j a_album_list&quot; > <a href = &quot;#&quot; class = “j a_album_edit&quot; > 编辑相册 </a> </div> </body>
  • 9. 代码压缩 { &quot;Version&quot; : &quot;v3&quot; , // 版本 &quot;Compress” : &quot;1&quot; , // 文件输出方案 &quot;FileType&quot; : &quot;js“ , // 文件类型 &quot;Common&quot; : {// 全局级文件 &quot;jquery&quot; : [ &quot;jquery/jquery.js&quot; ] }, &quot;Domain&quot; : {// 引动的跨域文件(直接引用,不做压缩) }, &quot;Module&quot; : {// 模块级文件 &quot;base_lib&quot; :[ &quot;jquery/jquery.cookie.js&quot; ,......] }, &quot;Page&quot; : {// 页面级文件 &quot; list_album &quot; : { &quot;C&quot; : [ &quot;jquery&quot; ],...... }, //PHP 引用压缩实例 /** 相册列表 */ public function list_album () { $ this -> setFE ( &quot; list_album &quot; ); ...... } 浏览页面 Page PHP 标识 压缩配置 匹配配置 代码压缩 代码输出
  • 10. 代码压缩 浏览页面 Page PHP 标识 压缩配置 匹配配置 代码压缩 代码输出 jquery/jquery.js jquery/jTab.js jquery/json2.js jquery/…… cpo_album.js cpo_box.js cpo_tab.js cpo_form.js cpo_table.js …… list_album.c.p.js