源代码规范文档.doc

上传人:b****1 文档编号:258989 上传时间:2022-10-08 格式:DOC 页数:23 大小:207KB
下载 相关 举报
源代码规范文档.doc_第1页
第1页 / 共23页
源代码规范文档.doc_第2页
第2页 / 共23页
源代码规范文档.doc_第3页
第3页 / 共23页
源代码规范文档.doc_第4页
第4页 / 共23页
源代码规范文档.doc_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

源代码规范文档.doc

《源代码规范文档.doc》由会员分享,可在线阅读,更多相关《源代码规范文档.doc(23页珍藏版)》请在冰豆网上搜索。

源代码规范文档.doc

W.MIS项目

源代码规范

版本<1.0>

文件编号:

W.MIS-MN-5

生效日期:

受控编号:

密级:

版本:

V1.0

修改状态:

总页数

23

正文

附录

编制:

IT

审核:

批准:

[注:

以下提供的模板用于GET.GEKIT的文档编写。

其中包括用方括号括起来并以蓝色斜体(样式=InfoBlue)显示的文本,它们用于向作者提供指导,在发布此文档之前应该将其删除。

按此样式输入的段落将被自动设置为普通样式(样式=BodyText)。

]

源代码规范

版本:

<1.0>

日期:

<2010-01-01>

文档修改记录

修改编号

修改页码及条款

修改人

审核人

修改日期

生成版本

1

目录

1. 目的 5

2. 源程序书写规范 5

2.1 通用源代码格式规则 5

2.1.1 缩进 5

2.1.2 边距 5

2.1.3 begin...end语句 5

2.1.4 注释 5

2.2 ObjectPascal语句格式语句书写规范与用法 5

2.2.1 括号 5

2.2.2 保留字和关键字 6

2.2.3 过程和函数 6

2.2.4 变量 7

2.2.5 类型 7

2.2.6 语句 8

2.2.7 结构化异常处理 9

3. 命名规范 10

3.1 过程(Procedure)与函数(Function) 10

3.1.1 命名 10

3.1.2 形参 10

3.1.3 命名冲突 10

3.2 常量(Constants)和变量(Variable) 11

3.2.1 常量 11

3.2.2 变量 11

3.3 类型(Type) 11

3.3.1 一般类型 11

3.3.2 构造类型 11

3.3.3 类类型(Class) 12

3.3.4 元件类型 13

3.3.5 窗体与对话框类型 15

3.3.6 数据模块类型 17

3.4 文件 17

3.4.1 项目文件 17

3.4.2 窗体文件 17

3.4.3 数据模块文件 17

3.4.4 远程数据模块文件 18

3.4.5 单元文件 18

3.5 内置汇编 19

4. 源程序文档注释规范 20

4.1 单元文件注释文档格式 20

4.2 函数(属性)的注释文档格式 21

4.3 函数每一步处理的注释 22

4.4 修改代码部分的注释 22

4.4.1 新增代码行 22

4.4.2 删除代码行 22

4.4.3 修改代码行 22

代码规范

1.目的

本文档主要是为员提供一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致格式可遵循。

这样,每个编程人员编写的代码能够被其他人理解。

2.源程序书写规范

2.1通用源代码格式规则

2.1.1缩进

缩进就是每级间有两个空格。

不要在源代码中放置制表符。

这是因为,制表符的宽度随着不同的设置和代码管理实用程序(打印、文档及版本控制等)而不同。

通过使用Tools|Environment菜单,在EnvironmentOptions对话框的General页上,不要选中UseTabCharacter和OptionalFill复选框,这样,制表符就不会被保存。

2.1.2边距

边距设置为80个字符。

源代码一般不会因写一个单词而超过边距,但本规则比较灵活。

只要可能,长度超过一行的语句应当用逗号或运算符换行。

换行后,应缩进两个字符。

2.1.3begin...end语句

begin语句必须单独占一行。

例如,下面第一行是错误的,而第二行正确:

fori:

=0to10dobegin//错,begin与for在同一行

fori:

=0to10do//对,begin在另外一行中

begin

本规则的一个特殊情况是,当begin为else语句的一部分时,例如:

ifsomestatement=then

begin

 ...

endelse

begin

 SomeOtherStatement;

end;

注意:

end语句总单独一行。

当begin不为else语句的一部分时,相应的end语句与begin语句的缩进量相同。

2.1.4注释

有关注释要求,请参阅源程序文档注释规范。

2.2ObjectPascal语句格式语句书写规范与用法

2.2.1括号

在左括号与下一字符之间没有空格。

同样,右括号与前一字符也没有空格。

下面的例子演示了正确与不正确的空格。

CallProc(Aparameter);//错!

CallProc(Aparameter);//正确!

不要在语句中包含多余的括号。

在源代码中,括号只有在确实需要时才使用。

下面的例子演示了正确与不正确用法:

if(I=42)then//错,括号是多余的

if(I=42)or(J=42)then//正确,必须使用括号

2.2.2保留字和关键字

 ObjectPascal语言的保留字和关键字总是完全的小写。

下面是Delphi5保留字列表:

and

array

as

asm

begin

case

class

const

constructor

destructor

dispinterface

div

do

downto

else

end

except

exports

file

finalization

finally

for

function

goto

if

implementation

in

inherited

initialization

inline

interface

is

label

library

mod

nil

not

object

of

or

out

packed

procedure

program

property

raise

record

repeat

resourcestring

set

shl

shr

string

then

threadvar

to

try

type

unit

until

uses

var

while

with

xor

private

protected

public

published

automated

 

 

2.2.3过程和函数

2.2.3.1格式

过程名应当以大写字母开始,且大小写交错以增加可读性。

下面是一个不正确的写法:

procedurethisisapoorlyformattedroutinename;

改成这样写就对了:

procedureThisIsMuchMoreReadableRoutineName;

2.2.3.2形参

(1)格式

只要可能,同一类型的形参应当归并在一起:

procedureFoo(Param1,Param2,Param3:

Integer;Param4:

string);

(2)参数顺序

形参的顺序主要要考虑寄存器调用规则。

最常用的参数应当作为第一个参数,按使用频率依次从左到右排。

输入参数位于输出参数之前。

范围大的参数应当放在范围小的参数之前。

例如:

SomeProc(aPlanet,aContinent,aCountry,aState,aCity).

有些则例外。

例如,在事件处理过程中,TObject类型的Sender参数往往是第一个要传递的参数。

(3)常量参数

要使记录、数组、短字符串或接口类型的参数不能被过程修改,就应当把形参标以const。

这样,编译器将以最有效的方式生成代码,保证传递的参数不可变。

如果其他类型的参数希望不被过程所修改,也可以标上const。

尽管这对效率没有影响,但这给过程的调用者带来了更多的信息。

2.2.4变量

2.2.4.1局部变量

局部变量用于过程内部,如果需要的话,应当在过程的入口处立即初始化变量。

局部的AnsiString类型的变量自动被初始化为空字符串,局部的接口和dispinterface类型的变量自动被初始化为nil,局部的Variant和OleVariant类型的变量自动被初始化为Unassigned。

2.2.4.2全局变量

一般不鼓励使用全局变量。

不过,有时候需要用到。

即使如此,也应当把全局变量限制在需要的环境中。

例如,一个全局变量可能只在单元的实现部分是全局的。

全局数据如果将由许多单元使用,就应移动到一个公用单元里被所有对象使用。

全局数据可在声明时直接初始化为一个值。

注意,所有全局变量自动进行零初始化,因此,不要将全局变量初始化为诸如0、nil、或Unassigned等空值。

零初始化的全局变量在.EXE文件中不占空间。

零初始化的数据保存在虚拟的数据段中,而虚拟数据段只在应用程序启动时才分配内存。

非零初始化的全局数据则在.EXE文件中占空间。

2.2.5类型

2.2.5.1大小写规则

类型标识符是保留字,应当全部小写。

Win32API类型常常全部大写,并且遵循诸如Windows.pas或其他API单元中关于特定类型名的规则。

对于其他变量名,第一个字母应大写,其他字母则大小写交错。

下面是一些例子:

var

 MyString:

string;//保留字

 WindowsHandle:

HWND;//Win32API类型

 I:

Integer;//在System单元中引入的类型标识

2.2.5.2浮点型

不鼓励使用Real类型,因为它只是为了与老的Pascal代码兼容而保留的。

通常情况下,对于浮点数应当使用Double。

Double可被处理器优化,是IEEE定义的标准的数据格式。

当需要比Double提供的范围更大时,可以使用Extend。

Extend是intel专用的类型,Java不支持。

当浮点变量的物理字节数很重要时(可能使用其他语言编写DLL),则应当使用Single。

2.2.5.3Variant和OleVariant

一般不建议使用Variant和OleVariant。

但是,当数据类型只有在运行期才知道时(常常是在COM和数据库应用的程序中),这两个类型对编程就有必要。

当进行诸如自动化ActiveX控件的COM编程时,应当使用OleVariant;而对于非COM编程,则应当使用Variant。

这是因为,Variant能够有效地保存Delphi的原生字符串,而OleVariant则将所有字符串转换为OLE字符串(即WideChar字符串),且没有引用计数功能。

2.2.6语句

2.2.6.1If语句

在if/then/else语句中,最有可能执行的情况应放在then子句中,不太可能的情况放在else子句中。

为了避免出现许多if语句,可以使用case语句代替。

如果多于5级,不要使用if语句。

请改用更清楚的方法。

不要在if语句中使用多余的括号。

如果在if语句中有多个条件要测试,应按照计算的复杂程度从右向左排。

这样,可以使代码充分利用编译器的短路估算逻辑。

例如,如果Condition1比Condition2快,Condition2比Condition3快,则if语句一般应这样构造:

ifC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1