编码规范(转载)

原创 2004年08月18日 21:13:00

一.页面设计部分
1.img控件
 alt:所有展示类图片都要具有能简要描述图片内容的文字说明。
2.Input控件
 maxlength:所有INPUT控件都需要制定maxlength属性,默认值为数据库中对应的字段的长度。
 readonly:所有不可更改的信息都要使用readonly属性。
3.Form控件
 action:所有Form都要指定action,如果提交给本身就指定action=""
 method:执行不可逆动作使用POST,可逆动作使用GET
 onsubmit:所有form都要指定提交前需要的检查程序。
 所有form都要有对应的reset button。
4.button控件
 onclick:form中用于提交的button不容许使用此方法,所有数据检查通过form的onsubmit激活。
5.title属性
 所有页面都要具有和本页标题相同的title。
6.控件的命名
 采用控件类型缩写(小写)+英文单词(第一个字母大写)的方法。
 开发中控件基本涉及一下几类
 button:btn
 form:frm
 select:sel
 textarea:txt
 input:ipt 
7.语言设置
 所有中文页面都要加上如下语句:
 <meta http-equiv="Content-Language" content="zh-cn">
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
8.控件属性赋值
 所有控件的属性值都要使用双引号或者单引号包括起来。
 
二.客户端程序部分
1.错误提示信息的处理(2-1)
 所有错误信息全部使用中文提示错误信息,标点使用中文半角符号,格式如下:
  "错误:"+提示信息+"!"
2.成功提示信息的处理(2-2)
 所有成功信息全部使用中文提示成功信息,标点使用中文半角符号,格式如下:
  "成功:"+提示信息+"!"
3.页面的返回
 所有需要返回上一页的时候使用history.back();不使用history.go(-1);
 需要返回前n页(n>1)时使用history.go(-n);
 所有返回都使用连接的方式而不是button。
4.提交前数据的判断
 保证提交前的数据都会通过JavaScript进行数据类型以及长度的判断
 是否为数字:使用函数isNaN()
 长度判断: 长度要判断去掉前后空格后的实际长度
 为空判断: 所有不容许为空的输入字段都要在去掉前后空格后进行判断,同时如果该字段为查询条件则必须不能为空
 如果判断条件发现数据错误,则通过(2-1)提示错误信息,然后通过方法focus()聚焦错误字段。
5.删除数据前的提示
 所有涉及删除的操作,在用户选定以后都要再进行一次确认操作。

三.服务器端程序部分
1.数据的取得
 通过Get,Post,连接传递过来的数据在使用前都要通过trim去掉数据前后的空格。
2.数据的判断
 通过request的得到的参数数据需要再次进行空,类型,和长度的判断。
3.对象的关闭
 所有数据库和文件对象都要在使用后尽可能早的close,同时赋nothing。
4.提示信息
 所有错误提示信息使用JavaScript提示,保证使用者看不到任何内部错误信息。(如1-1)
 涉及数据库Update,Del,Insert的操作成功都要提示。(如1-2)
5.变量的使用
 所有变量在使用前都需要声明,并且赋初值。
6.变量的命名
 采用变量类型缩写(小写)+英文单词(第一个字母大写)的方法。
 开发中变量基本涉及一下几类
 整数:i
 小数:f
 字符: s
 布尔:b
 日期:d
 特殊的:
 循环依次采用i,j,m,n;
 数组用ary
 指针p,q
 临时变量tmp
 
七.SQL语句
1.排序
 order时应该尽量提前使用建立索引或者主键的字段排序。
2.select
 select时避免使用*,即使需要所有字段也应尽量一个一个按照使用的顺序罗列出来。
3.尽量避免使用in和not in


八.测试
 所有页面要在800*600,1024*768两种分辨率下运行通过。
 所有页面要在IE5.0,5.5以及6.0下运行通过没有JavaScript错误。

****************************************************************

WEB编码规范
   编制人:walaqi
   第一章 ASP编码规范通述
     ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码。
     静态文件编码分Script编码和HTML编码两部分。
     服务器端编码则分为服务器脚本、客户端脚本、HTML脚本三部分。
     编码规范采用如下约定:
             所有客户端脚本一律使用JavaScript
      所有服务器端脚本一律使用VBScript
      静态页面输出一律使用HTML脚本
     本规范不适用于由服务器端脚本所产生的客户端脚本代码。
   第二章 静态文件编码规范:
     静态文件脚本部分采用JavaScript编写。输出部分采用HTML标记语言。
   1. HTML标记语言编码规范
   1.1 标记的换行规范:
   * 一个标记必须占用一行。不得出现两个标记在同一行的情况(同一标记的关闭标记除外),如:
   <tr><td>text</td></tr>
   而必须写成:
   <tr>
           <td>text</td>
             <tr>
   1.2 标记的关闭规范
   * 静态文件内容必须包含在<body></body>标记中间
   * <body>标记必须包含在<html></html>标记中间
   * 对于需要关闭的标记,如:
     <html><title><body><table><tr><td><p><textarea><select><font><option><div><span>
     必须同其关闭标记同时出现。如
     <body>…<p>…<font>….</font>….</p>…..</body>
   * 不得出现交叉包含的语句,如:
   <p><font>…..</p></font>
   1.3 标记的属性赋值规范
     对于接受属性的标记,属性值必须使用双引号或者单引号包围。如:
     <body bgcolor=”red”>
     <font size=’7’>
   1.4 标记的缩进规范
   * 最高一级的父标记采用左对齐顶格方式书写。
   * 下一级标记采用左对齐向右缩进一个Tab的方式书写
     在下一级依此类推,分别左对齐相对于父标记向右缩进一个Tab的方式书写
   * 同一级标记的首字符上下必须对齐。
   2. 客户端JavaScript规范
   2.1 变量命名规范
   * 常量以及全局变量名必须全部使用大写字母
   * 变量名首字母必须小写。
   * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:
   * 整型变量:int
   * 长整型变量:lng
   * 浮点型变量:flt
   * 双精度变量:dbl
   * 对象引用变量:obj
   * 字符串变量:str
   * Date类型变量:dtm
   * 变量名必须采用有意义的单词命名,如:
   strUserName、lngArrayIndex
   * 变量名除首字母小写外,其他单词首字符必须大写
   * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:
   var strAdName //用于表示Administrator帐户的名称
   var strAdminName //不用给出注释,Admin被广泛了解
   2.2 变量使用规范
   * 变量使用前必须定义。没有定义的变量禁止使用
   * 变量的使用尽量缩小到小的作用域。如循环使用
   for(var I=0;I<12;I++){
   
   }
   而不是:
   var I;
   for(I=0;I<12,I++){
   
   }
   2.3 对象命名规范
   各种页面对象如text输入框、按钮、下拉选择框在命名时必须使用以下对应前缀:
   * text输入框:txt
   * button按钮:btn
   * select下拉选择框:sel
   * option项:opt
   * form表单:frm
   * frame框架:fra
   * hidden表单项:hdn
   * div标记:div
   * span标记:span
   * 对话框对象:dlg
   * 窗口对象:win
   2.4 函数以及子过程命名规范
   * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能
   * 函数命名的动词前缀必须是同函数功能相关的完整动词
   * 函数命名第一个单词的首字母小写,后面每一个单词的首字母大写
   第三章 动态文件编码规范
   1. HTML书写规范
     HTML书写规范必须符合静态文件HTML标记书写规范,参考(第二章第一节)
   2. 客户端脚本规范
     动态文件客户端脚本一律采用JavaScript书写,并必须符合静态文件编码规范中有关JavaScript编码规范的规定(参考第二章第二节)
   3. 服务器端脚本书写规范
     服务器端脚本书写采用VBScript书写
   3.1 命名规范
   3.1.1 VBScript脚本变量命名规范
   * 常量以及全局变量必须全部使用大写字母
   * 常量必须使用CONST_前缀
   * 全局变量必须使用G_前缀
   * 变量名首字母必须小写。
   * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:
   * 整型变量:int
   * 长整型变量:lng
   * 浮点型变量:flt
   * 双精度变量:dbl
   * 对象引用变量:obj
   * 字符串变量:str
   * Date类型变量:dtm
   * 变量名必须采用有意义的单词命名,如:
   strUserName、lngArrayIndex
   * 变量名除首字母小写外,其他单词首字符必须大写
   * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:
   dim strAdName ‘用于表示Administrator帐户的名称
   dim strAdminName ‘不用给出注释,Admin被广泛了解
     
   3.1.2 对象命名规范
   各种对象如Connection、Recordset、Command在命名时必须使用以下对应前缀:
   * Connection对象:conn
   * Recordset对象:rs
   * Command对象:cmd
   * Parameter对象:param
   * Field对象:fld
   * Error对象:err
   3.1.3 函数以及子过程命名规范
   * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能
   * 函数命名的动词前缀必须是同函数功能相关的完整动词
   * 函数命名第一个单词的首字母大写,后面每一个单词的首字母大写
   3.1.4 常用变量命名规范:
     说明:包含在[]中的部分为可省略部分
   * Connection对象:conn[Name]。Name为所连接数据库的服务器名字
   * Recordset变量命名规范:rs[Name]。Name为自定义的同rs存储内容有关的英文单词组合
   * Command对象:cmd[Name]。Name为自定义的同command目的有关的英文单词组合
   * SQL语句字符串变量:strSql[CommandName]。CommandName为自定义的同Sql语句功能相关的英文单词组合,如:
   strSqlUpdateModify
   strSqlInsertUser
   3.2 代码书写规范
   3.2.1 变量明确声明原则
   * 所有ASP程序文件,必须在代码的第一行包含<%option explicit%>。转为变量明确声明模式
   3.2.2 字符集设定原则
   * 所有将对客户端产生中文输出的ASP程序文件,必须在输出前设定Charset为”GB2312”.如:Response.Charset = “GB2312”
   3.2.3 函数使用原则
   * 尽量使用函数封装代码块
   * 连续代码块尽量不要超过50行。最多不得超过70行
   * 尽量使用局部变量。
   * 如有涉及到全局的资源,如Connection,尽量作为函数的参数传入
   * 所有在函数内部创建打开的资源,在退出函数前必须关闭释放。如:Recordset,Command
   3.2.4 Request、Session、Application使用规范
   * 所有需要放入Session、Application中的对象,必须采用有意义的英文名字。除了被广泛了解的单词缩写以外,不得采用单词缩写。如:
   Session(“cp”) = strCurrentUserIP ‘不允许
   Session(“CurrentUserIP”) = strCurrentUserIP
   Session(“Pwd”) = strPwd ‘允许,Pwd被广泛了解为密码
   * 所有需要在代码内用到的Request、Session、Application中的元素,必须在代码头部赋值给代码内声明的变量。
   * 如果获得Form中提交的内容,必须使用Request.Form(“itemName”).
   * 如果获得QueryString中提交的内容,必须使用Request.QueryString(“itemName”)
   * 不得在代码中出现Request(“”)这样的引用方式
   3.2.5 HTML同服务器端脚本混合使用原则
   * 服务器端脚本标记“<%”必须同其上一行紧邻的标记左对齐,如:
   <table>
   <% 
   do while not rs.eof 
   %>
           <tr>
               <td>text</td>
           </tr>
   <%
           rs.movenext
       loop
   %>
   </table>
   * 服务器端脚本标记“<%”同其后的代码不得在同一行书写
   * “%>”同其前面的代码不得在同一行书写
   * 服务器端脚本标记”%>”同其最近的”<%”标记对齐
   * 服务器端内部的HTML代码依据静态文件的HTML缩进规则编写,不遵循服务器端脚本缩进规则
   * HTML标记内部的代码,依据服务器端脚本的缩进规则,不遵循HTML代码缩进规则
   
   第四章 常见错误
   1. ADO的事务处理
   1.1 错误代码:80004005。
   1.1.1 错误描述:
     Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' 
     不能在 firehose 方式下启动事务 
   1.1.2 解决方法:
     在开始ADO的事务的时候,必须首先关闭使用同一个连接对象打开的记录集,或者在打开那些游标集之前,设置游标集位置类型为adUseClient.(使用客户端游标集)
     
   第五章 代码习惯书写示例
   1. ADO对象的使用
   1.1 ADODB.Connection对象
   1.2 ADODB.Command对象
   1.3 ADODB.Recordset对象
   1.3.1 创建:
     Set rs = Server.CreateObject(“ADODB.Recordset”)
     rs.CursorLocation = adUseClient
     rs.Open strSql,conn,1[,1] ‘必须指定游标类型

一、 注释规范
A. 注释标准: 
l 功能注释  
功能注释是指为了对代码本身进行解释说明而进行的注释。
注释符采用“’”作为统一的注释符。
1.行内注释
采用注释符号 “’”
例:
  Dim intFileNo As Integer  ’ファイル番号取得用
    2.整行(包括多行)注释
采用注释块开始与块结束标志
    36

    ’************************************
    ’                                 
’                                 
’                                 
’************************************
l 修订注释
修订注释是指出于测试或者改错等目的,对代码进行了更改,而必须对此修改提供相关说明和醒目标记,并将原来的代码加入注释块内。
只要有改动,无论单行还是多行均采用设置注释块开始与块结束标志的方法来明确标志修改部分,清楚地进行解释说明,便于查找和分辨注释比较多的代码段。
      15                        15

    ’*************** Modify Start ***************
    ’                                 
’                                 

                                
’***************    End    ***************
B. 需要注释的地方:
  声明定义部分
对每个常量声明进行注释;
对每个变量及类、对象等的声明进行注释;
对每个自定义函数定义进行注释;
对每个自定义子程序定义进行注释;
  代码部分
    对每个构件,在顶部进行注释;
对每个条件选择分支进行注释;
对每个详细设计中提到的关键点进行注释;
对全局变量的使用进行注释;

C. 注释的内容:
l 对变量及常量声明部分的注释以行内注释方式简要描述其用途。

l 自定义函数及子程序等定义部分的顶部进行注释:
     ’************************************
    ’ 概要:
    ’ 机能说明:
    ’ 参数说明:
    ’ 返回值:
    ’ 备注:
’************************************

l 代码内部的行内注释
说明具体代码的运算规则,循环的内容,计数器的目的等等。

l 修订注释
    ’*************** Modify Start ***************
    ’ 修订原因:                                
’ 修订履历:                                
’          修订者 修订日期
’ 原始代码:
’            Case 5 To 8
’            ……
Case 4 To 8
’***************    End    ***************

D. 注释的方法:
    对代码行可以在行尾加注释(不能违反行宽的要求);
    对单行代码的注释可以在上一行以“'”的形式添加简单注释;
    对整段代码的注释放在代码段之前;
    注释符统一采用“’”。

 

二、命名规范
A.通则 
VisualBasic保留字可在VisualBasic设计器中根据颜色的变化看到。变量命名不可以使用保留字,应使用有意义的名字命名,不可使用简称和无意义的名称诸如A,x1等。即便对于只用于循环计数的变量,也应该统一赋予有意义的名称,例如longCnt等。
不能起太长的名字,应该尽量简洁,长度限制应控制在32个字符之内。

B.常数
全部使用大写字母以表明常数意义的名词命名,不区分常数的类型:
Const DEFAULTCONCENTRATION As Single = 0.01

C.变量
   命名必须使用大小写结合(VB编辑器会自动转换以减少程序出错的机率)
   变量命名采用[范围前缀][数组前缀][类型前缀]+[自定义命名]
   控件命名采用[控件前缀]+[自定义命名]
 
   变量范围做前缀
   范围 前缀 例子
全局变量 g gStrUserName
模块级 m mStrUserName
过程级 无 StrUserName
  数组前缀: a
  类型前缀:
数据类型 前缀 例子
Boolean Bln BlnFound
Byte Byt BytRasterDate
Currency Cur CurBalance
Date Dtm DtmBeginDate
Double Dbl DblFee
Integer Int IntQty
Long Lng LngVcID
Single Sng SngAverage
String Str StrItemId
Object Obj ObjRmtsvr
ADODB.Recordset Rst RstItem
ADODB.Connection Cnn cnnNewsPaper
ADODB.Command Cmm CmmAddCustomer
Variant Vnt VntCheck
自定义类型 Udt UdtUserInfo
控件类型命名前缀
控件类型 前缀 例子
ADO Data ado AdoBiblio
Check box chk ChkReadOnly
Combo box, drop-down list box cbo CboEnglish
Command button cmd CmdExit
Common dialog dlg DlgFileOpen
Data-bound combo box dbcbo DbcboLanguage
Data-bound grid dbgrd DbgrdQueryResult
Data-bound list box dblst DblstJobType
Data combo dbc DbcAuthor
Data grid dgd DgdTitles
Data list dbl DblPublisher
Directory list box dir DirSource
Drive list box drv DrvTarget
File list box fil FilSource
Form frm FrmEntry
Frame fra FraLanguage
Graph gra GraRevenue
Grid grd GrdPrices
Horizontal scroll bar hsb HsbVolume
Image img ImgIcon
Image combo imgcbo ImgcboProduct
ImageList ils IlsAllIcons
Label lbl LblHelpMessage
Line lin LinVertical
List box lst LstPolicyCodes
ListView lvw LvwHeadings
Menu mnu MnuFileOpen
Month view mvw MvwPeriod
MS Chart ch ChSalesbyRegion
MS Flex grid msg MsgClients
MS Tab mst MstFirst
Option button opt OptGender
Picture box pic PicVGA
ProgressBar prg PrgLoadFile
Remote Data rd RdTitles
Slider sld SldScale
Spin spn SpnPages
StatusBar sta StaDateTime
SysInfo sys SysMonitor
TabStrip tab TabOptions
Text box txt TxtLastName
Timer tmr TmrAlarm
Toolbar tlb TlbActions
TreeView tre TreOrganization
UpDown upd UpdDirection
Vertical scroll bar vsb VsbRate
自行开发ActiveX控件的前缀根据具体项目的设计时规定。

D. 标签
标签就是用于Goto跳转的代码标识,由于Goto并不推荐使用,所以标签的使用也比较苛刻。标签必须全部大写,中间的空格用下划线_代替,而且应该以_开头,比如:
_A_LABEL_EXAMPLE:
如此定义标签是为了与其他代码元素充分区别。

E.方法
无论是函数还是子程序,方法都必须以动词或动词短语命名。无需区分函数和子程序,也无需指明返回类型。
Sub Open(ByVal StrCommandString As String)
Function SetCopyNumber(ByVal IntCopyNumber As Integer) as Integer
参数需要指明ByVal还是ByRef,这一点写起来会让程序变长,但非常必要。如果没有特别情况,都使用ByVal。参数的命名方法,参考 “变量的命名方法”。

 

三、 书写格式规范
A. 程序的书写顺序
    该构件的概要注释说明
    变量声明
    过程声明
代码段1
代码段2
……
B. 大小写
变量名范围前缀用小写,每个单词第一个字母用大写
函数、过程、对象名也要求每个组成单词字首大写
C. 缩进
统一开发环境,设定VisualBasic设计器的开发环境选项,定义Tab宽度为4。代码缩进时,先选中要缩进的代码块,然后使用快捷键是Tab(右移)和Shift+Tab(左移);如果手工输入空格完成缩进,以4个空格为单位。
在If语句后缩进;
在Else语句后缩进
在Select Case语句后缩进
在Case语句后缩进
在Do语句后缩进
在For语句后缩进
已经用行接续符分割的语句的各个行要缩进
在With语句后缩进。
对从属于行标注的代码进行缩进。

D. 空格
运算符前后都要空格,包括:+,-,*,/,^,=,>,>=,<,<=,<>,NOT,AND,OR等;
E. 空行
变量声明部分和代码语句间的分隔;
在执行统一任务的各个语句组之间插入一个空行。好的代码应由按逻辑顺序排列的进程或相关语句组构成。
F. 页宽
对较长语句,如API声明等,在代码窗体可视范围内给予换行,不要使别人必须通过滚动窗口才能查看到完整的代码,单行代码长度不超过95列。
使用“& _ ”换行符。
G. 其他
在项目组内部,根据需要统一VisualBasic开发环境参数。

四、 代码检查
代码检查的合格标准
    注释完整、命名规范、条理清晰、可读性强的代码视为合格代码。
检查办法
发现未遵循本编码规范的情况视为不合格;

五、 建议性规范
l 有的时候可能需要违背好的编程原则,或者使用了某些不正规的方法,遇到这种情况时,必须用详细的注释来说明在做什么和为什么要这样做。
技巧性特别高的代码段,一定要加详细的注释,不要让其他开发人员花很长时间来研究一个高技巧但不易理解的程序段。
l 对注释进行缩进,使之与后随的语句对齐。
注释通常位于它们要说明的代码的前面。为了从视觉上突出注释与它的代码之间的关系,请将注释缩进,使之与代码处于同一个层次上
   
六、 其他
对文档的理解产生的歧义由引用此文档的项目的项目负责人统一解释

 

华为编码规范

1 排版 ¹ 1-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 ¹ 1-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例...
  • marric
  • marric
  • 2016年12月09日 22:51
  • 925

标准的Java编码规范手册

编码规范体现出一个开发者的基本素质,良好的编码规范可以提高团队编码的效率,避免很多不必要的问题。今天分享一个标准的Java编码规范给大家,希望对于大家今后的开发工作带来帮助。编码规范的意义     ...
  • mynameishuangshuai
  • mynameishuangshuai
  • 2016年05月10日 17:21
  • 12960

JavaScript编码规范

1 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理。本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护。 虽然本文档是针对JavaScript...
  • u012906135
  • u012906135
  • 2016年06月13日 11:04
  • 1091

Google JavaScript 编码规范指南

JavaScript 语言规范 变量 link ▽ 声明变量必须加上 var 关键字. Decision: 当你没有写 var, 变量就会暴露在全局上下文中, 这样很可能会和现...
  • xianghongai
  • xianghongai
  • 2015年05月18日 20:04
  • 2723

Python转载[编码规范]

转自:http://blog.csdn.net/lanphaday/article/details/6601123 但是有些如果与python自带的类库有冲突的做了适当的修改。  1 编码>>所有的 ...
  • itech_001
  • itech_001
  • 2013年03月24日 19:37
  • 436

Java编码规范(常用重点)

1、Java源文件1.1、注释所有的源文件都应当在开头有一个注释,此中列出类名、版本信息、日期和版本声明,具体可以参考我的博客:Java注释模版设置1.2、包和引入语句大部分java源文件中,第一行非...
  • u013249965
  • u013249965
  • 2016年07月02日 21:32
  • 910

官方Java编码规范

[Coding Style]官方Java编码规范 原文地址 http://www.cesclub.com/bw/jishuzhongxin/xiangmuyanfaguanli/201...
  • ccccdddxxx
  • ccccdddxxx
  • 2016年06月01日 15:20
  • 1410

google c++ 编码规范

1. 命名约定 最重要的一致性规则是命名管理. 命名风格快速获知名字代表是什么东东: 类型? 变量? 函数? 常量? 宏 ... ? 甚至不需要去查找类型声明. 我们大脑中的模式匹配引擎可以非常可靠...
  • xiexievv
  • xiexievv
  • 2016年03月24日 16:55
  • 6223

Google的C++编码规范(总结)

本书分为几个大类别来阐述C++编码规范: --头文件 --作用域 --C++类 --智能指针和其他C++特性 --命名约定 --代码注释 --格式 --规则之例外 头...
  • some_times
  • some_times
  • 2014年08月03日 17:30
  • 745

C/C++语言编码规范

C++编程规范
  • wenrenhua08
  • wenrenhua08
  • 2014年09月27日 00:00
  • 14062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码规范(转载)
举报原因:
原因补充:

(最多只允许输入30个字)