论文件命名的重要性
在开发项目中,良好的命名规范和规整的格式可以让代码看起来更整洁,它同样也体现了开发者良好的职业素养。对于文件的命名和代码的组织并没有绝对的形式,但是无论是什么代码,它都要遵循一个原则:在同一个项目中代码的组织结构一定要清晰,文件的命名规则必须统一并且命名要有意义
HTML命名规范以及格式规范
所有的标签名和属性都应该为小写,属性值最好使用双引号闭合
对于id和class的命名需要根据语义和DOM树的层级关系来定义合适的名称,名称中全部使用小写,id名称中的关键词使用下划线_连接,class中的关键词使用中划线-连接,从而最大限度的保证了命名的不重复。如果某个标签的class只是为了作为js调用的钩子,可以在名称中加入js-前缀
对于层级中的class类命名,可以使用连缀的形式,不过连缀最长不要超过三个。如下:
<div class="main">
<div class="main-head">
<div class="main-head-top">
<div class="main-top-one"></div>
<div class="main-top-two"></div>
</div>
</div>
<div class="main-body"></div>
<div class="main-foot"></div>
</div>
CSS命名规范以及格式规范
在CSS中设置类样式时,类名和{左括号间隔一个空格
多个css类单独放一行,如下:
.main,
.container,
body {
font-size: 16px;
...
}
类样式定义可以按照模块划分,比如头部,内容和尾注,一个css文件最好不要过大,控制在200行以内,如果是在过大,可以分模块,比如将它分成三个文件(头部,内容和尾注)
/*main head*/
.main-head {
...
}
.main-head div{
...
}
...
/*main body*/
...
/*main foot*/
...
JS命名规范以及格式规范
js局部变量命名采用首字母小写,其余单词首字母大写,形如mainHeadContainer,命名需要有意义,不用担心变量名太长而使js脚本文件变大,可以在发布阶段通过js脚本混淆压缩等手段来缩小文件
建议将js面向对象编程,原则上公有接口的命名为首字母大写,而私有接口的命名首字母小写,如下:
普通js
var info, title;
var getContent = function(){
...
};
...
使用面向对象编程的方式定义js
Reader.Content = function(){
//定义私有变量
var info, title;
var getContent = function(){
...
};
};
对于jQuery框架,其定义的jQuery变量前面应该都添加上$前缀
对于使用代码块的地方,不管代码块中的代码有多少行,都最好加上{},即使只有一行
for(var i=0; i<10; i++) {
console.log(i);
}
在JS代码中,如果注释未占有多行,优先考虑使用//而不是/**/。注释应该单独占用一行,而不是写在和代码相同一行的右边
前端代码重构概念
代码重构指的是在不改变代码外部行为的情况下进行源代码修改。重构之前最主要考虑的问题是如何才能保证外部行为不改变
重构的过程
删除无用代码以精简代码
前端代码规范化:包括前面说的html、css和js的命名规范和格式规范,还有更改标准已不推荐的标签,比如等,该为由css控制的等;统一标签的命名,以便于模块化划分;在js中集中定义局部变量,并把部分全局变量转变为局部变量,缩小变量的作用域
整理基础类库:网站初期为了加快开发进度引入了多个框架,其中有些框架可能重复的功能较多,比如ExtJS和jQuery,这是重构的内容主要是统一UI插件的使用,统一基础方法的使用
前端代码模块化:主要是将前端的js和css代码进行功能划分,以便于后期维护和更新
提高页面加载性能:将部分不影响页面展示的js文件延迟到页面加载后加载(置于body中的内容后面);页面中的部分图片进行延迟加载;给静态文件设置缓存;通过CSS Sprite技术合并页面背景图片,减少http请求次数等
参考文献
Web前端开发最佳实践一书