企业标准
Delphi程序源代码编写标准指南
宁波四维科技有限公司
序 言
制定
Delphi程序代码编写标准的目的: – 使代码保持一贯的风格 – 提高代码的可维护性 – 加强程序员之间的交流 – 规范公司的产品代码
源代码规则
If(HourString<>'24') Then Begin
每一级前要有两个空格,但不能用tab字符代替 Begin应写在独立的一行
Time:=StrToTime(TimeString); Decodetime(Time,Hour,Min,Sec,Msec); End Else Begin Hour:=24; Min:=0; End;
当作为else子句的一部分时, Begin子句应紧跟在Else子句后面
源代码规则
怎么办??? sql:='select * from '+tablename+' where ……’ 语句太长了 拆分成多行: 缩进两格
sql:='select * from '+tablename+' where datet<='‘’ □□+FormatDateTime('yyyy-mm-dd',DateT+1) +''‘and Datet>='''+Formatdatetime('yyyy-mm-dd',datet-1)+'''';
注 释
关键变量、函数、过程及主要语句必须有注释: //应写注释
function count(n:Integer):Integer;
关键变量的注释包括用途、可能取值及各种值的意义 如:isGather:Boolean//是否采集:True—采集 False—不采集 用途 可能取值 意义 函数或过程注释的位置: – 函数的实现代码部分 – 单元文件头部分
注释格式
格式 :
{ 函数(过程)名称 : 功能 : 参数说明书 : 调用方法 : 调用其他函数(过程):写上本函数(过程)调用了的其他数(过程) 被调用 :写上调用本函数迅程)的函数(过程) 编制人 : 日 期 : 修改日期 :年/月/日 修改人员 ……………………………….
}
实现流程及主要语句应加上注释,使其能表达语句所实现的具体功能
括 号
不要在一个语句中使用不必要的括号 对于一些复杂的表达式,为增加
程序的可读性, 可增加一些括号。 例如: S:=Format(' %2d:%d0',[ i div 2, (i mod 2)*3]);
为增加程序的可读性,可加括号
保留字和关键字
Object Pascal保留字和关键字永远是全部小写 例如:date,float,double等等这些
系统的保留字,都应 该小写.
例程的命名
首字母大写 中间应错落分明,便于阅读。 1、开头不是大写字母 2、可读性差 错误:procedure thisisapoorlyformattedroutinename; 正确:procedure ThisIsMuchMoreReadableRoutineName; 例程的名称应该同它的内容相符: –导致行为的例程应以动词开头: procedure FormatHardDrive; –设置 输入参数的例程应以单词 Set为前缀:: Procedure SetUserName; –接收值的例程应以单词 get为前缀: procedrue GetUserName:string
形参的定义
相同类型的形参应全并在一个词句中:
procedure Foo(Param1,Param2,Param3:Integer;Param4:string)
三者都是相同的类型(Integer),应放在一个词句中
形参的命名
符合它们所代表的意义 以字符A为前缀 根据传送到例程中的标志符的名称命名形参。例 如:
procedrue SomePro
(AuserName :string;AuserAge :integer); 传送到例程中的标志符 以字符A为前缀
参数的排序
1、
常用参数放在最前面 2、其它参数依次从左到右排列。 3、输入参数列表放在输出参数
列表的左边。 4、通用的参数放在特殊参数的左边,例如:
Procedrue SomeProc(Aplanet,Acontinent,Acountry,Astate,Acity)
5、排序可能有些例外,比如事件的处理。类型 Tobject 的Sender参数经常放在第一位。
要做上常量标记的参数
1、在例程中不被改变的记录类型、数组类型、 ShortString或接口类型: procedure comb(const Str:ShortString);
Str是ShortString类型,应做上常量标记
2、非变参数
名称的冲突
原因 :同时调用两个名称相同的例程的两个单元时, 在uses子句中排在后面的单元中的例程将会被调用 解决方法:调用 该例程时写上相关的单元作前缀, 例如: 作前缀的相关单元
sysUtilt.FindClose(SR);
或 windows.FindClose(Handle);
变量的命名和格式
1、与使用目的相符