书城计算机网络综合应用软件设计
8724600000057

第57章 附录B开发过程中的各类规范(1)

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