前端结构 の 调整新建议

根据 前端开发 の 一致性和复用性,前些日子做了部分调整;根据调整过程中的实际使用效果,结合当前新的认知,今天提出调整新建议。

wph 工程建议

├── global/
│  └── XLS-eXpanded-standard-Leaf-Structure/
├── m/src/ 手机站点
└── www/src/ PC 站点
  ├── about/
  │  ├── css/
  │  │  └── index.inc.css
  │  ├── html/
  │  │  ├── about-us-t.html
  │  │  └── contact-us-t.html
  │  └── js/
  │    └── index.inc.js
  ├── choose-guide/
  │  └── XLS-eXpanded-standard-Leaf-Structure/
  ├── common/
  │  └── XLS-eXpanded-standard-Leaf-Structure/
  ├── customer/
  ├── font/
  ├── hour24/
  ├── maintenance/
  ├── manager/
  ├── supplier/
  │  ├── second-level-module/
  │  │  └── XLS-eXpanded-standard-Leaf-Structure/
  │  └── XLS-eXpanded-standard-Leaf-Structure/
  └── XLS-eXpanded-standard-Leaf-Structure/

模块和子模块说明
  1. about,choose-guide, customer,这些都是模块;
  2. 子模块建议最多3级;
  3. 每个目录下的文件目录数建议不超过5-11个;
标准目录(XLS-eXpanded-standard-Leaf-Structure)

├── css/
├── html/
│  └── index.html
├── img/
├── js/
└── tpl/

目录说明
  • global/ (全局)
  • common/ (公共)
    common 只在站点目录下出现,不在模块和子模块中出现,避免命名干扰;
  • font/ (字体)
    font 目录仅在站点根目录下有;
  • css | sass/ (样式)
  • html (页面)
    在发布时,html 目录不会在实际的 URL 中出现;
  • img/ (图片)
  • js/ (JavaScript)
  • tpl/ (模板:包括 .html,.ejs.html,.mus.html)
    命名规则有约定比较好;
    这个目录下只有和用户交互的那些文件才可能需要对外发布,否则一般仅在构建时使用;
  • XLS-eXpanded-standard-Leaf-Structure/
    对于展开的标准叶子结构,若目录下没有文件,自然该目录就不会存在;
  • 文件命名问题
    1. 对外发布的:.css,.js,.html,.ejs.html,.mus.html
    2. 用于被 include 的:
    .inc.css,.inc.js,.inc.html,.inc.ejs.html,.inc.mus.html
    这几类文件仅在构建时使用;
  • URL PATH 路径 和 @@include 引用的文件目录存在简单变换映射关系,并不一致;
css 和 js 直接嵌入式(about 示例)

即:将 css 和 js 直接嵌入 html 页面。
目前 about 模块只有 2 个页面,各有一个简单的 css 和 js 文件。
├── css
│  └── index.inc.css
├── html
│  ├── about-us-t.html
│  └── contact-us-t.html
└── js
  └── index.inc.js

// 在 /html/*.html 页面内:
<style>@@include('../about/css/index.inc.css')</style>
...
<script>@@include('../about/js/index.inc.js')</script>

上述代码示例在 .html 中使用 css 和 js 的方式,就是嵌入式;两个页面都分别嵌入了,请注意相对路径;

路径设置 和 过渡问题
  1. 未来一般以 /src/ 为 gulp-file-include 的基准目录(basepath);
  2. 在 @@ include 中,请使用文件目录的相对路径;
  3. 在链接中,请使用相对于当前站点根目录的绝对路径;
    当前站点链接以 "/" 开始,外链则使用完整 URL;主要是为了防止爬虫或者 Web Link Validator 检查时出错;
    注:属于标准目录的哪些关键字在发布时会调整;
  4. 当前的目录结构 和 gulp-file-include 相关的 basepath:
    - 处理 html 页面的 include basepath:/src/partials/;
    - 处理 css 的 include basepath:/src/css/partials/;
    - 处理 js 的 include basepath:在 datajs 工程下处理;
  5. /src/partials 目录下的 .html 文件
    这些文件是被 include 的文件,一般都是 HTML 片段,不会发布出去;
    将逐步剥离到各个 common 和 各个模块下的 tpl 目录下;
css 和 js 合并引入方式
  • css;
    前期可继续全部合并发布在 global.css 中,没有单独发布的其他 css 文件,原来 /css/partials 下的文件要调整到各个模块的 css 目录下;
    在 global.css 中,请这样 include css 文件:@@include('../../about/css/index.inc.css')
  • js 类同 css;
/html/*.html 的 include 方法

在 /html/ 各目录下的 *.html 文件中,请这样 include tpl 下的 HTML 片段文件:@@include('../about/tpl/index.html')

img 的处理
  • /$module/$submodule/img/example.png;
    发布和引用:/img/$module/$submodule/example.png;
  • 目前图片格式为:(.(png|jpg|gif));
    绝大部分文件 png 格式;很少部分 jpg 和 gif,比如大文件 jpg,而 gif 小动画;
  • 图片约定
    文件名:全小写字母,中划线分隔,少用数字
    看起来有含义、有意义 的图片名称有利于排查问题、促进复用。
    red-bubble.png,supplier-avatar.png, down-arrow.png;
    看起来有含义、有意义的图片名称有利于促进复用;使用 icon1/icon2/icon3来命名就很难有美感;

提出建议所参考的几个方面


业务设计
  • 用户:客户、供应商(工程商)、管理员;
  • 我们产品属于垂直电商领域,提供在线服务;
  • 页面内容和版块设计的变化是渐进的,根据市场反馈逐步快速调整;
  • 用户数量并不很大,除了在推广期间,要考虑潜在客户的超常流量外,大部分时间,不需要过度关注网站压力。
部署
  • 按版本部署
    在 Nginx 上设置规则;目的:为了解决大版本缓存;
  • 按分支开发
    每个模块一个分支;即:可支持模块上下线;
代码
  • 可理解、可复用;
  • 持续测试、持续集成、持续部署;
  • 结构良好、代码整洁、风格一致;
过程
  • 开发基本理念:敏捷开发;
  • 主要按照功能模块进行分工;
  • 切页面和数据JS两个主要阶段;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 前端集成解决方案要求: 模块化开发。最好能像写nodejs一样写js,很舒服。css最好也能来个模块化管理! 性能...
    Www刘阅读 3,011评论 1 20
  • 前端要有一个合理的目录结构。 源码(source code)和部署(distribution)分开; 使用构建工具...
    michael_jia阅读 985评论 0 2
  • 回首页 第一部分 Drupal简介 Drupal overview A tour of Drupal fundam...
    王乂阅读 2,025评论 0 9
  • 2016年11月的第6天;2016年第45周的第7天;2016年的倒数第56天; 0:体重:54.5kg; 0:天...
    舒羊阅读 319评论 0 0
  • 南方姑娘去北方上学是什么感觉? 累,彷徨,无奈,还有一种故乡的思念。吴侬软语下长大的姑娘,自身就被熏陶出了那种软萌...
    微酒阅读 249评论 3 1