前端编码规范

前端编码规范

一、 JS命名规范


1、变量的命名

首先是这肯定是一个 名词 。遵循小驼峰命名,首字符小写

    var isBoolean = true; //布尔值以is开头
    var arrayList = []; //数组以List结
    $scope.type = 1; / 这种写法是禁止使用的

2、函数命名

函数一般是执行一组操作的代码块,所以用动名词结合的方式命名,使用var name = function(agrs)函数内部需要用到一些关键参数,作为入参传入,即使在scope中存在,也需要作为入参传入(好处是提高函数复用的可能)

  var getSomting = function(id){} //获取某个值
  var loadSomting = function(agrs[]){} //从后台加载数据,涉及到restService
  var postSomting = function(obj{}){} //提交表单操作,新建
  var deleteSomting = function(id){} //删除操作
  var putSomting = function(id,obj{}){} //提交表单操作,修改
  var initSomting = function(){} //初始化函数,一般是用来获取某个获取后台的某个资源
  $scope.views = { showSomting : function(){} chooseSomting : function(){} }

3、全局静态常量定义约定

这里的全局常量需要定义在单独的app static.js文件下,方便统一管理以及协同开发。定义一个全局的常量约定如下: 命名:全大写英文,用下划线” “分割单词 定义方法: constant() 或者 value()

    angular.module('myApp.static', []) .constant("USER_TYPE",{1:"个人",2:"企业"})

4、全局动态变量定义约定

全局的动态变量来自后台提供的一些业务数据,大部分来自数据库字典表,这里使用factory的定义service的方式来实现全局动态变量的定义, 约定如下: 命名:全大写英文,用下划线”_”分割单词 定义方法: factory

    angular.module('myApp.somting',[]) .factory("SOME TYPES", function ($resource) {
         var SOME TYPES= {};
     })

5、注释约定

注释是用来解释当前代码的功能,一个好的注释就是能让人一眼看懂复杂的内部实现逻辑,而一个规范的注释能够形成最后的api文档。当然最重要的是注释可以你知道究竟该找谁痛扁一顿, 所以凡写过必留下痕迹。

6、文件注释

写在文件的最开头

    controller注释
    写在controller内部第一行

7、函数注释

写在函数外面,入参和出参如果没有就不要写

  行注释
  单行注释
  var obj = "" ; //参数定义注释
  function(){ ... // 对函数内部代码或者逻辑的特殊说明 ... }

8、代码顺序的约定

代码顺序既是对于controller中的N多行代码究竟谁先谁后的约定。顺序依次是:

  • scope变量定义在最前;
  • controller中的局部变量其次(即使实际使用的函数在其他位置);
  • scope底下的function;
  • controller内部函数;
  • 初始化函数定义及调用 注:
      controller(function(){  / scope底下的对象最先声明 / 
        $scope.somting = {};  / controller局部变量 /  
        var somting; / scope底下的function / 
        $scope.doSomting = function(){} / controller局部函数 / 
        var doSomting = function(){} 
     })

9、基础数据模型定义的约定

基础数据模型依赖于后台接口提供的数据,同时根据前台具体的业务场景或不变或转换格式保存在前台缓存对象下,同时也可以将变化过的数据更新到当前数据模型中。

     app.factory("userService",function($resource){

       var userList = []; //将userList数据本地化
       var getList = function(){//来自后台数据}
       var get = function(id,callback){//来自后台数据}
       var update = function(id,user,callback){//来自后台数据}
       var delete= function(id,callback){//来自后台数据}
       
  })

10、试图模型定义的约定

controller中的离散变量将通过scope.views(作为试图模型对象)统一控制,甚至某些复杂页面视图模型,可以在views中用单独的对象处理。

    //页面视图控制数据模型
  $scope.views = { 
      somting : "", 
      isSomting : true, 
      chooseSomting : function(){    this.sonting = ""; },
      oneObj:{ oneType : "", showOne : fucntion(){ this.one = ""; } } 
 }

    //后台返回数据模型
   $scope.somting = somtingService.get();

11、业务数据模型定义的约定

业务数据模型一般是有别于基础数据模型和视图数据模型,一般是包含视图内容的数据对象,例如表单数据对象,或者被选中的某些数据,这些数据一般用于界面控制也会提取出接口参数用于交互。

   $scope.somtingSelectedList = [
   { id : 1, ... selected : true },
   { id : 2, ... selected : true },
   { id : 3, ... selected : false }...]

二、 网页命名规范


前端web开发命名规范

(一)主体
头:header  

内容:content/container  

尾:footer  

导航:nav  

侧栏:sidebar

栏目:column  

页面外围控制整体布局宽度:wrapper  

左右中:left right center

登录条:loginbar  

标志:logo  

广告:banner  

页面主体:main  

热点:hot

新闻:news  

下载:download  

子导航:subnav  

菜单:menu

子菜单:submenu  

搜索:search  

友情链接:friendlink  

页脚:footer

版权:copyright  

滚动:scroll  

内容:content  

标签页:tab

文章列表:list  

提示信息:msg  

小技巧:tips  

栏目标题:title

加入:joinus  

指南:guild  

服务:service  

注册:regsiter

状态:status  

投票:vote  

合作伙伴:partner

(二)css注释的写法:   

  内容区  

Html注释的写法 :<!--header头部-- >

(三)id的命名:

(1)页面结构  

容器: container  

页头:header  

内容:content/container   

页面主体:main  

页尾:footer  

导航:nav   

侧栏:sidebar  

栏目:column  

页面外围控制整体布局宽度:wrapper   

左右中:left right center
(2)导航  
导航:nav  

主导航:mainnav  

子导航:subnav   

顶导航:topnav  

边导航:sidebar  

左导航:leftsidebar   

右导航:rightsidebar  

菜单:menu  

子菜单:submenu   

标题: title  

摘要: summary
(3)功能  
标志:logo  

广告:banner  

登陆:login  

登录条:loginbar   

注册:regsiter  

搜索:search  

功能区:shop   

标题:title  

加入:joinus  

状态:status  

按钮:btn   

滚动:scroll  

标签页:tab  

文章列表:list  

提示信息:msg   

当前的: current  

小技巧:tips  

图标: icon  

注释:note   

指南:guild 

服务:service  

热点:hot  

新闻:news   

下载:download  

投票:vote  

合作伙伴:partner   

友情链接:link  

版权:copyright
(四)class的命名:
(1)颜色:使用颜色的名称或者16进制代码,如  

.red { color: red; }   .f60 { color: #f60; }   .ff8600 { color: #ff8600; }

(2)字体大小,直接使用’font+字体大小’作为名称,如  

.font12px { font-size: 12px; }   .font9pt {font-size: 9pt; }

(3)对齐样式,使用对齐目标的英文名称,如  

.left { float:left; }   .bottom { float:bottom; }

(4)标题栏样式,使用’类别+功能’的方式命名,如 

.barnews { }   .barproduct { }

注意事项::   

1.一律小写;   

2.尽量用英文;   

3.不加中杠和下划线;   

4.尽量不缩写,除非一看就明白的单词.   主要的 master.css  模块 module.css  基本共用 base.css   布局,版面layout.css  主题 themes.css  专栏 columns.css   文字 font.css  表单 forms.css  补丁 mend.css  打印print.css

三、 静态文件命名规范


统一用小写的英文字母,数字和下划线的组合,不得包含汉字空格和特殊字符。 原则: 1)方便理解,见名之意

1、索引文件的命名规则(首页面)
index.htm
index.html(常见的静态网页)
index.asp(VB)
index.aspx()
index.jsp(Java)
index.php(PHP)
2、各个子页面的命名规则
统一用翻译的英文命名(推荐)
统一用拼音命名(拼音的简化也可)
如果文件名过长,企业要提前约定一份缩写的规范,如pro—product

[x] 注意:不要中英文混用
例如:

首页—index
产品列表—prolist产品详细页面—prodetail
新闻列表—newslist新闻详细页面—newsdetail
发展历史—history
关于我们—aboutus
联系我们—linkus,contactus
信息反馈—feedback留言—leavewords
3、图片命名规范
图片的名称分为头尾两部分,用下划线隔开,头部表示此图片的大类性质,例如广告,标志,菜单,按钮等

banner:放置在页面顶部的广告,装饰图案等长方形的图片
logo:标志性的图片
button:在页面上位置不固定,并且带有链接的小图片
menu:在页面中某一位置连续出现,性质相同的链接栏目的图片
pic:装饰用的图片
例子:

banner_sohu.gif, banner_sina.gif
menu_aboutus.gif,menu_job.gif
title_news.gif
logo_police.gif
pic_people.gif
4、脚本文件和动态文本文件命名规则
脚本文件:一般使用脚本功能的英文小写缩写命名

实际模块:例如广告条的javascript文件名为ad.js,弹出窗口的javascript文件名为pop.js
公用模块:js文件命名:英文命名,后缀js。如common.js,basic.js
外部资源:Jquery.min.js,Jquery.validate.js,Jquery.date.js
动态文件:以性质描述,可以有多个单词,用‘_’隔开,性质一般是该页面的概要(见名知意)。

范例:register_form.aspx,register_post.aspx,topic_lock.aspx。不同模块之间,可以使用不同的前缀来区分
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值