优点前端-项目
开发约定
目的:
1. 设定项目的前端的css/js/html文件,js属性命名规范和前端包
2. 为保证整个团队的项目开发和维护效率,特对开发代码做如下约定。
内容介绍:
?
对js,css,html包进行结构规定:
1. 对js包名和结构规定
Javascript包名需要全部小写,如果需要体现出层次使用“-”来隔开 例如:core-grid.js
Javascript包需要结构化,所谓结构化就是包需要有层次感,见名知意。一个模块中的js文件应当存放在同一个包中,在js包中避免出现css和图片文件
?
Javascript属性、变量、方法命名以及注释
? 命名规范
变量名称首字母必须为小写字母。
变量必须在声明初始化以后才能使用,即便是 NULL 类型。 变量不能产生歧义。
类的命名使用骆驼命名规则,例如: Account, EventHandler等
常量必须在对象(类)或者枚举变量的前部声明。枚举变量的命名必须有实际的意义,并且其成员必须使用骆驼命名规则或使用大写: Var nodeTypes = { Element:document,
NODENAME:”name” }
其他变量,常量都以首字母小写,之后单纯首字母大写的规则定义
全局变量或者静态变量统一用大写字母
? 特殊命名规范
? 术语 "get/set" 不要和一个字段相连,除非它被定义为私有变量。 ? ?前面加 "is" 的变量名应该为布尔值,同理可以为"has", "can"等 ? ?术语 "compute" 作为变量名应为已经计算完成的变量。 ? ?术语 "find" 作为变量名应为已经查找完成的变量。
? 术语 "initialize" 或者 "init" 作为变量名应为已经实例化(初始化)
完成的类或者其他类型的变量。
? 带有 "num" 或者 "count" 开头的变量名约定为数字(对象) ? 重复变量建议使用 "i", "j", "k" (依次类推)等名称的变量。
? 空白
操作符 建议 使用空格隔开(包括三元操作符)。例如:
? 代码格式化
在有层次的逻辑运算语块中,如if else、 do while、 while、for等中,代码需要使用缩进,在可以使用“空白”模式的地方需要使用空白模式
? 注释
首先说明,国际上要求注释必须是英文,但是在国内,大部分企业的注释
标准还是以中文作为标准。在这里我们也随大流,也使用中文注释风格。
大量的变量申明后 必须 跟随一段注释;
生涩的代码或者通俗易懂的代码就没有必要添加注释了; 注释需要说明的是代码段的用处,尤其是接下来的代码段; 注释 没有必要 每行都添加。
下面使用我自己开发的Dcore js库来说明下注释的使用
方法的注释:必须在注释开始说明方法的作用,并且其次列出所有参数,并且解释参数,最后说明返回值。例如:
变量的注释:这个有2中方式,第一是在变量之后立马注释,第二是在变量上一行注释,本人推荐使用第一种,
最重要的原因是在一次性初始化多
个变量的时候,在上一行注释是很自由的
行注释:不需要每行都加,但是在出现复杂逻辑或者比较重要的地方必须加注释。同样注释也是加在行的上一行,注释可以有多行。
你可以使用/*===== 和 =====*/来包起来伪代码。
? 常用语需要注意的地方(可减少内存的消耗)
? For循环
for(var I = 0; len = data.length; I < len; i++) ? 简单if else 应当使用三元运算符来代替 ? 不用的对象或属性需要即时的delete掉 ? 在dom操作时,存储常用变量,以便后用
? 精简高效的CSS命名准则/方法
? Css样式的命名方法
在css命名的时候,我们可以参杂语意,这样可以使得css代码更加易懂
例如淘宝首页“免费注册”按钮上的class名称:help-guest-regist. 但是我想想:如果在别的地方的按钮上也使用到这个class,我们再去使用help-guest-regist这个class的话,那么就会感觉非常的别扭,因为这并不是“免费注册”
在看看人人网的右侧边栏的标题,这个标题的class名是”side-item-header”