我的前端规范——开篇

相关文章

博客原文
我的前端规范——开篇
我的前端规范——HTML篇
我的前端规范——CSS篇
我的前端规范——JavaScript篇

大纲

前言
1、规范的重要性
2、关于注释
3、关于文件夹/文件

前言

规范对于一个项目来说是很重要的,统一的规范对代码的一致性、项目的质量、工作的协调都有很大的帮助,而且有时候可以规避很多意料不到的错误。
当然,规范是死的,人是活的。我总结的前端规范是我认为对我来说比较适合的,我又认可的,所以我能比较好的接受和使用。但是,不同的团队,不同的项目需要遵守的规范也许就是不一样的。规范的作用是让项目的代码看起来更有统一性,让团队的协作更方便,因此,根据具体的情况制定统一的规范才是最合理的,而这里我给出的也只是我认为比较符合我风格和习惯的,至于具体的规范还是要依据具体的情况来总结制定。
单独写成一篇的话篇幅很大,因此我会将我的总结写成:开篇、css、html、js四篇,让有需要的读者能够更方便的查找到想要的知识。

1、规范的重要性

说了那么多,也许有些读者还是不以为意的认为规范也只是一些如不是很重要的东西,那么以下一个例子来告诉你,规范有时候起到的作用不仅仅是约束你代码的作用,他还能帮助你规避一些意想不到的bug。

<!--
    这段代码对<p>的首字符样式定义在IE6上看是没有效果的,
    而在p:first-letter和{font-size:300%}加上空格,
    也就是p:first-letter {font-size:300%}后,显示就正常了。 

    这个问题主要是出现在IE6浏览器中,而且这位朋友也说明了一些必要的触发条件: 
        1、IE6浏览器 
        2、选择符是带有伪类的 
        3、伪类中必须是有连接符“-”的,例如:first-letter 
        4、是否有空格的存在
    来源: http://www.cnblogs.com/hustskyking/articles/css-bug-in-IE6.html
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="//www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <style type="text/css"> 
    p{font-size:12px;} 
    p:first-letter{font-size:300%}
    </style> 
</head> 

<body> 
    <p>
      对于世界而言,你是一个人;但是对于某个人,你是他的整个世界。纵然伤心,
      也不要愁眉不展,因为你不知是谁会爱上你的笑容。
    </p> 
</body> 
</html>
2、关于注释

2.1、文件注释

1、文件注释要标明作者、文件版本、创建/修改时间、重大版本修改记录
2、函数描述
3、文件版本、创建或者修改时间、功能、作者
//例子
/**
 * @file Image.js
 * @description 功能详细描述
*/
4、函数或者类等都要添加头描述
//实例
/**
 * 简述
 *
 * 功能详细描述
 *
 * @param <String> arg1 参数1
 * @param <Number> arg2 参数2,默认为0
 * @return <Boolean> 看xxx是否成功
 */
function fooFunction (arg1, arg2) {
}

2.2、操作注释

1、单行注释,写在代码上面
2、多行注释
//例
/*
* 注释操作说明
*/
for( var i = 0; i < obj.lenght; i++) {
}
3、注释标签参考
标签                  描述
@addon              把一个函数标记为另一个函数的扩张,另一个函数的定义不在源文件中。
@argument           用大括号中的自变量类型描述一个自变量。
@author             函数/类作者的姓名。
@base               如果类是继承得来,定义提供的类名称。
@class              用来给一个类提供描述,不能用于构造器的文档中。
@constructor        描述一个类的构造器。
@deprecated         表示函数/类已被忽略。
@exception          描述函数/类产生的一个错误。
@extends            表示派生出当前类的另一个类。
@fileoverview       表示文档块将用于描述当前文件。这个标签应该放在其它任何标签之前。
@final              指出函数/类。
@ignore             让jsdoc忽视随后的代码。
@link               类似于@link标签,用于连接许多其它页面。
@member             定义随后的函数为提供的类名称的一个成员。
@param              用大括号中的参数类型描述一个参数。
@private            表示函数/类为私有,不应包含在生成的文档中。
@requires           表示需要另一个函数/类。
@return             描述一个函数的返回值。
@returns            描述一个函数的返回值。
@see                连接到另一个函数/类。
@throws             描述函数/类可能产生的错误。
@type               指定函数/成员的返回类型。
@version            函数/类的版本号。
来源: http://www.jianshu.com/p/8d291d823cc0
3、关于文件夹/文件

3.1、命名规范

1、文件夹命名:
    英文单词的驼峰法命名
    
2、文件命名:
    全部用小写的英文单词,单词之间用“-”连接。尽量规避数字、拼音以及可能被拦截的单词
命名,如: ad、ads、adv、banner、sponsor、gg、guangg、guanggao。(很多浏览器会将
含有这些词的作为广告拦截: ad、ads、adv、banner、sponsor、gg、guangg、guanggao等
页面中尽量避免采用以上词汇来命名。)

3.2、文件分层

1、文件的分层依据:
           是以业务逻辑为划分基础,在此基础上进行文件的划分
           
    2、这里的分层不一定适用于所有项目,比如有些项目采用了框架(如angular\vue),那么
这样的项目就不是很适合于这样的分层结构了。
    
root
    -----js(JavaScript脚本

    -----css(样式表

    -----img(图片

    -----swf(flash

    -----src(源文件目录

    -----dep(引入的第三方依赖包目录

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,066评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • “这个世界像变形的机器,多少人面目全非心口不一” 漆黑寂静的夜晚里,一首《伊萨贝拉》循环往复的听了一整晚。 渐渐的...
    蓝岸阅读 158评论 0 0
  • 回答 我有很多选择 但我只选择一个 他人赠我许多名号 说这是你 容不得丝毫怀疑和辩驳 我说,不 你们说这就是你 虽...
    卫玠呢阅读 294评论 0 2
  • (上) “夕颜,可否问你一个问题?”“自然”。缘起无果,缘灭却也无因。那年仲夏,江南渡口,一袭白衣胜雪的他负手...
    陌槿年阅读 326评论 0 0