盖雅代码规范细则.docx
《盖雅代码规范细则.docx》由会员分享,可在线阅读,更多相关《盖雅代码规范细则.docx(7页珍藏版)》请在冰豆网上搜索。
盖雅代码规范细则
1空行
空行是为了将逻辑上相关联的代码分块,以便提高代码的可阅读性。
在以下情况下使用一个空行
1、方法与方法
2、属性与属性
3、事件与事件之间。
2代码注释
2.1方法、属性、修改代码需要有详细注释
1、修改代码时,在所修改代码的上方添加注释。
2、在编写代码时就注释,因为以后很可能没有时间这样做。
3、注释代码中不十分明显的任何内容。
4、为了防止问题反复出现,对错误修复和解决方法代码总是使用注释,尤其是在团队环境中。
5、在整个应用程序中,使用具有一致的标点和结构的统一样式来构造注释。
//Add(Modify)byXXXyyyy/MM/dd
//注释说明,如果是PP中的Bug修改,填入PP中的代码,例如:
PP:
2.2原始注释
该类注释用于
●方法内的代码注释。
如变量的声明、代码或代码段的解释。
注释示例:
//注释语句
privateintnumber;
●方法内变量的声明或花括号后的注释,注释示例:
if(1==1)//alwaystrue
{
statement;
}//alwaystrue
3 合理申明
3.1初始化
建议在变量声明时就对其做初始化。
3.2位置
变量建议置于块的开始处,不要总是在第一次使用它们的地方做声明。
如
voidMyMethod()
intint1=0;//beginningofmethodblock
if(condition)
intint2=0;//beginningof"if"block
//...
}
不过也有一个例外
for(inti=0;i{//...}应避免不同层次间的变量重名,如intcount;voidMyMethod(){if(condition){intcount=0;//避免}}3.3字段的声明不要使用是public或protected的实例字段。如果避免将字段直接公开给开发人员,可以更轻松地对类进行版本控制,原因是在维护二进制兼容性时字段不能被更改为属性。考虑为字段提供get和set属性访问器,而不是使它们成为公共的。get和set属性访问器中可执行代码的存在使得可以进行后续改进,如在使用属性或者得到属性更改通知时根据需要创建对象。下面的代码示例阐释带有get和set属性访问器的私有实例字段的正确使用。示例:publicclassControl:Component{privateinthandle;publicintHandle{get{returnhandle;}}}4 业务命名4.1命名概述名称应该说明“什么”而不是“如何”。通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。例如,可以使用GetNextStudent(),而不是GetNextArrayElement()。命名原则是:选择正确名称时的困难可能表明需要进一步分析或定义项的目的。使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开。表现力强的名称是为了帮助人们阅读;因此,提供人们可以理解的名称是有意义的。不过,请确保选择的名称符合适用语言的规则和标准。以下几点是推荐的命名方法。1、避免容易被主观解释的难懂的名称,如方面名AnalyzeThis(),或者属性名xxK8。这样的名称会导致多义性。2、在类属性的名称中包含类名是多余的,如Book.BookTitle。而是应该使用Book.Title。3、只要合适,在变量名的末尾或开头加计算限定符(Avg、Sum、Min、Max、Index)。4、在变量名中使用互补对,如min/max、begin/end和open/close。5、布尔变量名应该包含Is,这意味着Yes/No或True/False值,如fileIsFound。6、在命名状态变量时,避免使用诸如Flag的术语。状态变量不同于布尔变量的地方是它可以具有两个以上的可能值。不是使用documentFlag,而是使用更具描述性的名称,如documentFormatType。7、即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如i或j。可能的情况下,尽量不要使用原义数字或原义字符串,如Fori=1To7。而是使用命名常数,如Fori=1ToNUM_DAYS_IN_WEEK以便于维护和理解。4.2大小写规则大写标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:System.IOSystem.Web.UI下表汇总了大写规则,并提供了不同类型的标识符的示例。标识符大小写示例类PascalAppDomain枚举类型PascalErrorLevel枚举值PascalFatalError事件PascalValueChange异常类PascalWebException注意总是以Exception后缀结尾。只读的静态字段PascalRedValue接口PascalIDisposable注意总是以I前缀开始。方法PascalToString命名空间PascalSystem.Drawing属性PascalBackColor公共实例字段PascalRedValue注意很少使用。属性优于使用公共实例字段。受保护的实例字段CamelredValue注意很少使用。属性优于使用受保护的实例字段。私有的实例字段CamelredValue参数CameltypeName方法内的变量CamelbackColor4.3命名空间Common:GAIA.HRONE.CommonLayer.eAttendanceDataAccess:GAIA.HRONE.DataAccessLayer.eAttendanceBusiness:GAIA.HRONE.BusinessLayer.eAttendance.AccrualUI:HRONE.PresentationLayer.eAttendance.eAttendanceContrast 4.4常量(const)所有单词大写,多个单词之间用"_"隔开。4.5集合集合的命名需要用复数,如哈希表、查询、堆栈、字典和列表。5 单行语句5.1每行一个语句每行最多包含一个语句。5.2复合语句复合语句是指包含"父语句{子语句;子语句;}"的语句,使用复合语句应遵循以下规则即使只有一条子语句不要省略花括号“{}”。如while(d++==s++){n++;}5.3return语句return语句中,必须返回显式的变量或者空,例如:6控件命名6.1命名方法控件名简写+英文描述,英文描述首字母大写6.2主要控件名简写对照表控件名简写控件名简写LabellblTextBoxtxtButtonbtnLinkButtonlnkbtnImageButtonimgbtnDropDownListddlListBoxlstDataGriddgDataListdlCheckBoxchkCheckBoxListchklstRadioButtonrdoRadioButtonListrdolstImageimgPanelpnlCalendercldAdRotatorarTabletblRequiredFieldValidatorrfvCompareValidatorcvRangeValidatorrvRegularExpressionValidatorrevValidatorSummaryvsCrystalReportViewerrptvewDatePickerdpTimePickertp7数据库命名7.1所有创建的表是要有固定前缀的:按模块7.2视图前缀加v_7.3存储过程前缀加sp_7.4函数前缀加fun_7.5表的名称单词之间加下划线7.6表的名称需要用大写字母8签入注释8.1Vss签入代码加入注释
应避免不同层次间的变量重名,如
intcount;
intcount=0;//避免
3.3字段的声明
不要使用是public或protected的实例字段。
如果避免将字段直接公开给开发人员,可以更轻松地对类进行版本控制,原因是在维护二进制兼容性时字段不能被更改为属性。
考虑为字段提供get和set属性访问器,而不是使它们成为公共的。
get和set属性访问器中可执行代码的存在使得可以进行后续改进,如在使用属性或者得到属性更改通知时根据需要创建对象。
下面的代码示例阐释带有get和set属性访问器的私有实例字段的正确使用。
示例:
publicclassControl:
Component
privateinthandle;
publicintHandle
get
returnhandle;
4 业务命名
4.1命名概述
名称应该说明“什么”而不是“如何”。
通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。
例如,可以使用GetNextStudent(),而不是GetNextArrayElement()。
命名原则是:
选择正确名称时的困难可能表明需要进一步分析或定义项的目的。
使名称足够长以便有一定的意义,并且足够短以避免冗长。
唯一名称在编程上仅用于将各项区分开。
表现力强的名称是为了帮助人们阅读;因此,提供人们可以理解的名称是有意义的。
不过,请确保选择的名称符合适用语言的规则和标准。
以下几点是推荐的命名方法。
1、避免容易被主观解释的难懂的名称,如方面名AnalyzeThis(),或者属性名xxK8。
这样的名称会导致多义性。
2、在类属性的名称中包含类名是多余的,如Book.BookTitle。
而是应该使用Book.Title。
3、只要合适,在变量名的末尾或开头加计算限定符(Avg、Sum、Min、Max、Index)。
4、在变量名中使用互补对,如min/max、begin/end和open/close。
5、布尔变量名应该包含Is,这意味着Yes/No或True/False值,如fileIsFound。
6、在命名状态变量时,避免使用诸如Flag的术语。
状态变量不同于布尔变量的地方是它可以具有两个以上的可能值。
不是使用documentFlag,而是使用更具描述性的名称,如documentFormatType。
7、即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。
仅对于短循环索引使用单字母变量名,如i或j。
可能的情况下,尽量不要使用原义数字或原义字符串,如
Fori=1To7。
而是使用命名常数,如Fori=1ToNUM_DAYS_IN_WEEK以便于维护和理解。
4.2大小写规则
大写
标识符中的所有字母都大写。
仅对于由两个或者更少字母组成的标识符使用该约定。
例如:
System.IO
System.Web.UI
下表汇总了大写规则,并提供了不同类型的标识符的示例。
标识符
大小写
示例
类
Pascal
AppDomain
枚举类型
ErrorLevel
枚举值
FatalError
事件
ValueChange
异常类
WebException注意总是以Exception后缀结尾。
只读的静态字段
RedValue
接口
IDisposable注意总是以I前缀开始。
方法
ToString
命名空间
System.Drawing
属性
BackColor
公共实例字段
RedValue注意很少使用。
属性优于使用公共实例字段。
受保护的实例字段
Camel
redValue注意很少使用。
属性优于使用受保护的实例字段。
私有的实例字段
redValue
参数
typeName
方法内的变量
backColor
4.3命名空间
Common:
GAIA.HRONE.CommonLayer.eAttendance
DataAccess:
GAIA.HRONE.DataAccessLayer.eAttendance
Business:
GAIA.HRONE.BusinessLayer.eAttendance.Accrual
UI:
HRONE.PresentationLayer.eAttendance.eAttendanceContrast
4.4常量(const)
所有单词大写,多个单词之间用"_"隔开。
4.5集合
集合的命名需要用复数,如哈希表、查询、堆栈、字典和列表。
5 单行语句
5.1每行一个语句
每行最多包含一个语句。
5.2复合语句
复合语句是指包含"父语句{子语句;子语句;}"的语句,使用复合语句应遵循以下规则
即使只有一条子语句不要省略花括号“{}”。
while(d++==s++)
n++;
5.3return语句
return语句中,必须返回显式的变量或者空,例如:
6控件命名
6.1命名方法
控件名简写+英文描述,英文描述首字母大写
6.2主要控件名简写对照表
控件名
简写
Label
lbl
TextBox
txt
Button
btn
LinkButton
lnkbtn
ImageButton
imgbtn
DropDownList
ddl
ListBox
lst
DataGrid
dg
DataList
dl
CheckBox
chk
CheckBoxList
chklst
RadioButton
rdo
RadioButtonList
rdolst
Image
img
Panel
pnl
Calender
cld
AdRotator
ar
Table
tbl
RequiredFieldValidator
rfv
CompareValidator
cv
RangeValidator
rv
RegularExpressionValidator
rev
ValidatorSummary
vs
CrystalReportViewer
rptvew
DatePicker
dp
TimePicker
tp
7数据库命名
7.1所有创建的表是要有固定前缀的:
按模块
7.2视图前缀加v_
7.3存储过程前缀加sp_
7.4函数前缀加fun_
7.5表的名称单词之间加下划线
7.6表的名称需要用大写字母
8签入注释
8.1Vss签入代码加入注释
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1