做为一名优秀的程序员,我们要从基础做起---代码命名规范。代码是拿来让别人看的,如自己的代码别人看不懂,那就是五个一,永远都不会成为五个万!
1 注释规范
/*************************************************
作者:
小组:
说明:
创建日期:
版本号:
**********************************************/
代码间注释分为单行注释和多行注释:
单行注释:
//<单行注释>
多行注释:
/*多行注释1
多行注释2
多行注释3*/
代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法、循环条件、不同分支的意义等等)。
- 命名总体规则
- 名字应该能够标识事物的特性,并且与业务挂钩。
- 名字一律使用英文单词,而不能为拼音。
- 名字可以有两个或三个单词组成,但不应多于4个,控制在3至30个字母以内。
- 在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。
命名规范:
Pascal命名法:所有单词的首字母都大写,其他字母小写
Camel命名法:除首字母外,其他单词的首字母大写,其他字母小写
- 不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用 GetWindow,而不要使用 GetWin。
- 不要使用计算机领域中未被普遍接受的缩写。
- 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为 User Interface 缩写,用 OLAP 作为 On-line Analytical Processing 的缩写。
- 在使用缩写时,对于超过两个字符长度的缩写请使用 Pascal 大小写或 Camel 大小写。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是 System.Io。
- 对于某些名字中单词都比较长的情况,可以自行写一个缩写名字(名字中的关键字不能缩写),将所有的缩写做一个说明文件,放在同级目录下的开头。
- 类使用 Pascal 大小写
-
以下规则概述接口的命名指南:
- 使用 Pascal 大小写。
- 在原有类名基础上加“I”,如:IUserDao
- 不使用下划线(_)。
- 当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。两个名称的不同之处只是接口名前有一个I前缀。在实现类名后加“Impl”后缀。
- 对于 Enum 类型和值名称使用 Pascal 大小写。
- 命名不能缩写,枚举内的内容可以缩写。
- 命名禁止加Enum 后缀[梦1] 。
- 参数名称使用Camel大小写[梦2]
- 参数名称可缩写
- 以动词开头。[梦3]
- 使用 Pascal 大小写。
- 禁止缩写,除非名词本身含有缩写。如:AddStudentMgr ()
- 以名词或形容词命名。[梦4]
- 使用 Pascal 大小写。
- 禁止缩写。
- 以名词或形容词命名。[梦5]
- 使用 Pascal 大小写。
- 禁止缩写。
- 如果与事件(event)关联,则名称命名使用EventHandler后缀,否则其他名称均以Delegate后缀结尾。如
- 使用 Pascal 大小写。
- 禁止缩写。
- 名称命名使用 Event后缀。
- 用动词或名词命名,带有时间意义,如:MouseMove事件、Closing 事件、Closed 事件。
- 指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。e为事件类的实例。e参数类型使用适当而特定的事件类。
- 用 EventArgs 后缀命名事件参数类。
- 书写规则:
-
if (expression) (推荐)
{
}
或:
if (expression) {
}
-
使用一个“Tab”为每层次缩进(默认4个空格,有的规范也要求2个空格,依要求而定,所有IDE都可以设置)。
不要把小括号和关键词(if 、while等)紧贴在一起,要用空格隔开它们。如:
- 不要把小括号和函数名紧贴在一起。
- 除非必要,不要在Return返回语句中使用小括号。因为关键字不是函数,如果小括号紧贴着函数名和关键字,二者很容易被看成是一体的。
- 单一功能子函数代码不得超过50行、形参个数不得超过7个、程序嵌套深度不得超过7层。
- 圈复杂度必须在15以内,对程序的修改或扩展不得增加其原有圈复杂度。
- 代码未写,文档先行,注释必须按照固定统一范式撰写。
- 关系运算必须常量在左、变量在右。
- 不许使用复杂的运算表达式,必要时添加括号而不依赖于优先级。
- 魔鬼数字需用宏定义替代。
- 局部变量必须初定义、避免不必要的内存操作、内存操作必须考虑异常处理。
- 数据库命名规则
-
数据库名采用首字母大写,避免系统保留的表名。如:LibraryMaintainSystem
-
使用T_表名,表名采用首字母大写。
如:T_Class
如果系统分多个子系统模块,那么将模块的缩写加在T后,用下划线与表名分开。
如:
基础系统:TB_Class (Basic)
评教系统:TA_表名 (Assess)
考试系统:TE_表名 (Exam)
选课系统:TC_表名 (Choose)
关联数据表:TR_表A表B ,两个表首字母大写。
一对多关系,多在前,一在后。
一对一和多对多关系,两个表的先后,以字母排序。
如果分模块,那么将模块缩写添加在T后
如:TBR_ClassGrade 表示基础系统,班级和年级的关系表。
-
第一个字母小写[刘慧超1] ,后面的单词或拼音,采用第一个字母大写,命名规则只来自于业务,尽量表达出列的含义。命名一般为名词或形容词。
-
视图名 = V + “_” + 名称
-
主键名 = PK + “_”+ 表名
-
外键名 = FK + “_” + 表名
-
索引名 = IDX + “_” + 表名 + 相关字段/索引含义。
-
关联指数据库表之间的外键关系
关联名 = RL + “_” + 主表名+ 从表名。
-
存储过程名 = PROC + “_” + 存储过程含义。[梦2]
-
触发器名 = TR + “_”+ 表名 +“_”+ 触发器类型/自定义名称
触发器类型:Insert触发器加"_I",Delete触发器加"_D",Update触发器加"_U",如:
TR_Customer_I,TR_Customer_D,TR_Customer_U。
附:控件命名规范
类 型
前 缀
示 例
Adrotator
adrt
adrtTopAd
AccessDataSource
ads
adsPubs
BulletedList
blst
blstCity
Button
btn
btnSubmit
Calendar
cal
calMettingDates
CheckBox
chk
chkBlue
CheckBoxList
chkl
chklFavColors
DataList
dlst
dlstTitles
DetailView
dvw
dvwTitles
DropDownList
drop
dropCountries
FileUpLoad
fup
fupImage
FormView
fvw
fvwFonts
GridView
gvw
gvwCity
HiddenField
hfld
hfldName
HyperLink
hlk
hlkDetails
Image
img
imgAuntBetty
ImageButton
ibtn
ibtnSubmit
ImageMap
imap
imapSite
Label
lbl
lblResults
LinkButton
lbtn
lbtnSubmit
ListBox
lst
lstCountries
Literal
ltl
ltlTitle
Localize
loc
locChina
MultiView
mvw
mvwForm1
ObjectDataSource
ods
odsMenus
Panel
pnl
pnlForm2
PlaceHolder
plh
plhFormContents
RadioButton
rad
radFemale
RadioButtonList
radl
radlGender
Repeater
rpt
rptQueryResults
ReportViewer
rvw
rvwRecord
SiteMapDataSource
smds
smdsSite
SqlDataSource
sds
sdsBooks
SubStitution
subs
subsTime
Table
tbl
tblCountryCodes
TextBox
txt
txtFirstName
View
vw
vwCity
Wizard
wiz
wizRegister
Xml
xml
xmlBooks
XmlDataSource
xds
xdsTitles