目录结构规范

1,033 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,033
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

目录结构规范

  1. 1. 目录结构
  2. 2. 要OUTING了你不躁动吗?
  3. 3. 结构
  4. 4. 现状1. p/markets/2011/common_v2.js?t=201203232. apps/tradeface/trademanager/1.0/base_v2.2.js?t=20111215.js3. apps/mytaobao/3.0/mt/base/base.js?t=20120517.js4. apps/mercury/2.0/20110610/mercury.js?t=201205311045
  5. 5. 目录结构承担的责任1. 让别人理解更容易 (新人,业务调整,临时支援)2. 让自己维护更方便 (修改,扩展,打包,发布,调试,回滚)
  6. 6. 统一结构,势在必行
  7. 7. 为什么会出现1. Ant2. CDNcombo 模块化3. Ucool4. I debug5. Module-compiler
  8. 8. 目录的作用 给文件分类
  9. 9. 分类的维度1. 按“应用”cart,mytaobao,sell 横向2. 按“页面”page1,page2,page33. 按“版本”1.0,2.0,3.0 纵向4. 按“发布日期”20120323,201204235. 按“职责”source,test,build, 关联6. 按“重要程度”core,mods, 内容7. 按“复用级别”common,utils,mods
  10. 10. 目录联想 1. 这是个按版本划分的目录1.0 2. 同级可能会有2.0,3.0 3. 我应该找最新的版本目录去查看
  11. 11. 目录联想 1.0,Detail,test
  12. 12. 结论一 单一维度
  13. 13. 分类的维度1. 按“应用”cart,mytaobao,sell 横向2. 按“页面”page1,page2,page33. 按“版本”1.0,2.0,3.0 纵向4. 按“发布日期”20120323,201204235. 按“职责”source,test,build, 关联6. 按“重要程度”core,mods, 内容7. 按“复用级别”common,utils,mods
  14. 14. 维度的优先级 先按哪个维度?
  15. 15. 维度的优先级 内聚性
  16. 16. 维度的优先级 ├─src ├─detail │ ├─detail │ ├─src │ └─list │ ├─test ├─test │ └─build │ ├─detail └─list │ └─list ├─src └─build ├─test ├─detail └─build └─list
  17. 17. 维度的优先级 ├─src ├─1.0 │ ├─1.0 │ ├─src │ └─2.0 │ ├─test ├─test │ └─build │ ├─1.0 └─2.0 │ └─2.0 ├─src └─build ├─test ├─1.0 └─build └─2.0
  18. 18. 维度的优先级 ├─detail ├─1.0 │ ├─1.0 │ ├─detail │ └─2.0 │ ├─list ├─list │ └─index │ ├─1.0 └─2.0 │ └─2.0 ├─detail └─index ├─list ├─1.0 └─index └─2.0
  19. 19. 结论二 横向 > 纵向 > 关联
  20. 20. 横向分类的问题 交集(共用)部分
  21. 21. 横向分类的问题 detail list utils common utils utils index
  22. 22. 横向分类的问题 detail list index
  23. 23. 横向分类的问题 B-detail C-detail index
  24. 24. 横向分类的问题 list detail index
  25. 25. 横向分类约定 common utils page
  26. 26. 一级目录
  27. 27. 纵向分类的问题 同步生长
  28. 28. 纵向分类 ├─detail ├─1.0 │ ├─1.0 │ ├─detail │ └─2.0 │ ├─list ├─list │ └─index │ ├─1.0 └─2.0 │ └─2.0 ├─detail └─index ├─list ├─1.0 └─index └─2.0
  29. 29. 横向分类与纵向分类的界限 ├─detail ├─detail │ ├─modA │ ├─1.0 │ │ ├─1.0 │ │ ├─modA │ │ └─2.0 │ │ ├─modB │ ├─modB │ │ └─modC │ │ ├─1.0 │ └─2.0 │ │ └─2.0 │ ├─modA │ └─modC │ ├─modB │ ├─1.0 │ └─modC │ └─2.0
  30. 30. 日期目录的缘由 1. 新文件发布,简化系统发布依赖 2. 利于回滚20120304 3. 避免冗余的兼容性代码 4. 消除客户端缓存问题
  31. 31. 纵向分类的约定 1. 版本目录: • 存放模块文件的源文件 • 以1.0, 2.0, 3.0命名 2. 日期目录: • 存放打包后的线上引用文件 • 以“YYYYMMDD”命名
  32. 32. 目录约定
  33. 33. 模块载入机制 1. CDNcombo 2. 本地打包 3. 动态加载
  34. 34. 模块打包约定 1. kissy1.2 2. Common里的文件静态载入 3. Utils里的组件参与本地打包,避免动态载入 4. 每次打包到指定日期目录 5. 每次发布新的日期目录
  35. 35. 模块打包图示
  36. 36. 版本下的模块开发目录约定 1. 行为:编码,打包,测试; 2. Css和Js的共同抽象 3. 兼容kissy1.1.6
  37. 37. 版本下的模块开发目录约定 1. Core:入口脚本 2. Mods:普通业务模块 3. Test:测试用例 4. Build:打包配置信息 5. 打包工具:front-build
  38. 38. 结构
  39. 39. 3Q

×