B1文档格式规范
B1.1文档格式规范
编号:s.c.001。
标题:文档格式规范。
作者:某某。
提交时间:2008.11.24,10:30。
文档性质:建议。
文档分类:规则标准。
摘要:本文提出了文档管理的建议规范。
B1.2目录
1.规范说明
1.1文档的结构
1.2文档的编号
1.3标题与作者
1.4文档的提交时间
1.5文档的性质
1.6文档的分类
1.7文档的摘要
2.文档管理
2.1文档的管理
B1.3内容
1.规范说明
1.1文档的结构
本文档本身就是本规范的实例。文档以纯文本格式编辑,以便交流。
文档中的段落之间以空行分割。段落首行不缩进。每行宽度不超过区分文档各部分的横线的宽度。文档信息部分包括文档的编号、标题、作者、提交时间、性质、分类、摘要信息。
1.2文档的编号
文档的编号分为三个部分:文档性质符号、文档分类符号、文档版本号。
符号是一个小写的英文字母,编号是3~4位阿拉伯数字。它们之间用点号分开。
除建议性质的文档外,编号由项目管理员或指定人员负责指定。但不可出现重复(建议的提出者可以用最近一篇同类建议的编号加1作为自己文档的编号)。
1.3标题与作者
这里的标题、作者应与文档正文中的标题、作者一致。
1.4文档的提交时间
提交时间按本文中的时间格式标记,精确到1/4小时。日期和时间之间用空格分开。
1.5文档的性质
文档性质分为以下几种。
a.建议:以小写s表示。文档的内容为未经批准的建议性意见。
b.讨论稿:以小写d表示。文档内容为正在或已经批准但仍在讨论的文件。
c.正式文档:以小写f表示。文档内容为已经讨论通过的文件。
性质的审核由项目负责人或指定人员组织全体人员表决决定。
1.6文档的分类
文档分为以下几类。
a.规则标准:以小写c表示。内容为有关的规范和标准。
b.设计文档:以小写d表示。内容为项目的各种设计文件。
c.程序清单:以小写p表示。内容为存档的程序清单。
d.参考说明:以小写h表示。内容为使用说明及howto文件。
e.其他:以小写o表示。内容为其他类别之外的文件。
分类由项目负责人或指定人员进行。
1.7文档的摘要
摘要与前面的几个部分之间以空行分开,如本文件所示。
摘要用于简要说明文档的内容,以方便他人检索。
1.8文档的命名
文档的标题加标号。
2.文档的管理
文档的管理由项目负责人或指定人员负责。管理人员负责整理文档,定期组织讨论,适时修改文档。
2.1文档的提交
文档完成后由文档书写人员提交到文档管理人员指定的目录。
2.2文档的检查
文档管理人员在归档之前,检查文档的命名、格式是否符合文档规范要求,不符合不予归档,并通知文档书写人员。
书写人员定期修改。
2.3文档的归档
文档管理人员把符合文档规范的文档提交到相应的目录下。
B2VB.NET代码命名规范
1.概述
在开发中保持良好的编码规范是十分重要的。这里参考了一种VB.NET编码规范,是一种被证明能明显改善代码可读性、并有助于代码管理、分类的编码规范。采用这种编码规范,能避免如匈牙利命名法带来的繁长前缀以便于记忆变量的使用。
2.总体原则
①特例名+所属类别名
②词与词之间直接相连,用大写字母区分:
Dim CancelButton as Button
Dim QueryForm as Form
这个例子遵循上述两条原则。
③对于类中属性、方法、变量,不必在后面加所属类别名。用动词短语、名词短语来区分。比如privatesubOpenFile()、privatemFileNameasstring、propertyFileName。
尽可能封装类,也就是说尽可能申明私有变量与方法,对于必须开放的成员变量或属性,用名词前加m来区分。事件与属性的区分是在事件后加Event。
3.具体说明
1)类级单位的命名
(1)类
以Class声明的类,都必须以名词或名词短语命名, 体现类的作用。如:ClassIndicatorClass;当类是一个特性(Attribute)时,以Attribute结尾,当类是一个异常(Exception)时,以Exception结尾。如:Class ColorSetException、Class CauseException—Attribute;当类只需有一个对象实例(全局对象,比如Application等),必须以Class结尾。如:Class ScreenClass、Class SystemClass;当类只用于作为其他类的基类,根据情况,以Base结尾。如:MustInherit Class IndicatorBase;如果定义的类是一个窗体,那么名字的后面必须加后缀Form,如果是Web窗体,必须加后缀Page。如:Class PrintForm Inherits Form’*Windows窗体、Class StartPage:Inherits Page*Web窗体。
(2)枚举和结构
同样必须以名词或名词短语命名,最好体现枚举或结构的特点。如:Enum ColorButtonEnum,以Enum结尾,表明这是一个枚举;Structure CustomerInfoStructure,以Structure结尾,表明这是一个结构体。
(3)委派类型
普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能。如:DelegateSubDataSeeker (ByVal SeekString AsString)。用于事件处理的委派类型, 必须以EventHandler结尾。如:Delegate Sub DataChangedEventHandler (ByVal Sender AsObject,ByVal e As DataChangedEventArgs)。
(4)接口
与其他类型不同,接口必须要由I作为前缀,并用形容词命名,突出表现实现接口的类将具有什么能力。
(5)模块
模块不是类型,它的名称除了必须以名词命名外,必须加以后缀Module。如:ModuleSharedFunctionsModule。
上述所有规则的共同特点是,每个组成名称的词语都必须以大写开头,禁止完全大写或小写的名称。
2)方法和属性的命名
(1)方法
无论是函数还是子程序,方法都必须以动词或动词短语命名。无须区分函数和子程序,也无须指明返回类型。如:SubOpen (ByValCommandStringAsString)、FunctionSet—CopyNumber(ByValCopyNumberAsInteger)。参数需要指明ByVal还是ByRef,这一点写起来会让程序变长,但非常必要。如果没有特别情况,都使用ByVal。参数的命名方法,参考后面“变量的命名方法”。
(2)属性
原则上,字段(Field)是不能公开的,要访问字段的值,一般使用属性。属性以简洁清晰的名词命名。如:PropertyConcentrationAsSingle、PropertyCustomerAsCustomerTypes。
(3)事件
事件是特殊的属性,只能在事件处理上下文中使用。命名的原则一般是动词或动词的分词,通过时态表明事件发生的时间。如:EventClickEventAsClickEventHandler、EventColorChangedEventAsColorChangedEventHangler
3)变量和常数
常数以表明常数意义的名词命名,一般不区分常数的类型。如:Const DefaultConcentrationConst As Single=0.01。
普通类型的变量,只要用有意义的名字命名即可,不可使用简称和无意义的名称,诸如A,x1等,下面给出了良好的例子:
Dim Index As Integer
Dim NextMonthExpenditure As Decimal
Dim CustomerName As String
不能起太长的名字,应该尽量简洁。如下面的例子:
Dim VariableUsedToStoreSystemInformation As String’*错误,太重复;
Dim SystemInformation As String’*正确,简单明了;
Dim sysInfo As String’*错误,过于简单;
特殊情况可以考虑一个字母的变量。如:
Dim g As Graphic
对于控件,应该指明控件的类型,方法是直接在变量后面加一类名。如:
Friend WithEvents NextPageButton As Button’*按钮;
Friend WithEvents ColorChoicerPanel As Panel’*面版;
Friend WithEvents CardFileOpenDialog As FileOpenDialog’*文件打开对话框等;
无须规定某种类型变量的前缀,而只需把类型写在其后面即可,试对比下列代码:
btnCancel.Text=”&;Cancel”;
CancelButton.Text=”&;Cancel”,
显然后者更能使阅读者明白变量的类型是一个按钮。
4)标签
标签就是用于Goto跳转的代码标识,由于并不推荐使用Goto语句,所以标签的使用也比较苛刻。标签必须全部大写,中间的空格用下划线“_”代替,而且应该以“_”开头。比如:_A_LABEL_EXAMPLE。如此定义标签是为了与其他代码元素相区别。
5)名字空间
通常,一个工程使用一个名字空间,通常不需要用Namespace语句,而是在工程选项的“RootNamespace”中指定,使用名字空间可以使代码更加整齐,容易修改,这一点是VB.NET的优点。名字空间的语法是:
公司名.产品名[.组件名的复数]
如:
Namespace Ninputer.VirtualScreen;
Namespace Ninputer.CardEditor.CustomeControls。
随便起一个工程的名字绝对不是一个好主意,一定要遵守上述规定。
6)注释
主要的注释分为3种。
(1)模块级别
对于每个模块应该按如下格式,将注释书写于每个模块的开始部分。
region“模块总体描述”
‘模块名:
‘程序员名:
‘开始日期:
‘复查日期:
‘单元测试日期:
‘单元测试通过日期:
‘功能描述:
‘其他描述:
endregion
(2)函数级别
用于描述每个具体的函数或主要模块级别的变量常量的,书写于函数、变量、常量之前。
‘模块名:
‘程序员名:
‘传入参数说明:
‘功能描述:
‘返回参数说明:
‘其他描述:
(3)语句级别
对于主要的语句加以描述,书写于语句之后。
B3数据库命名规范
B3.1数据表命名规范
数据表命名用“T_”开头,表名用相应的英文名(第一个字母用大写)。比如,行业表为T_Trade。
表的主键命名为“表名+Id”。比如,行业表的主键为TradeId,类型用varchar(n),n可以取4,8,12等。主键由数据库函数产生,如行业表的主键可以是T101。
其他字段的第一个字母也大写,比如行业表中的行业名为TradeName。
如果表的含义涉及几个部分,则用几个英文单词拼接起来表示。比如对公司的评价表命名为CompanyRemark,如果单词过长则可以缩写为CompRemark。
样例:
tab_TableName
vie_ViewName
sto_StoredProcedureName
fun_FunctionName
tri_TrigerName
rul_RuleName
def_DefaultName
con_ConstraintName
che_CheckName