代码创建形式规范 1.0 (for Delphi) Bear, 2000-5-1
本规范的目的:给自己的代码一个统一而标准的外观,增强可读性,可理解性,可维护性 本规范的原则:名称反映含义,形式反映结构
1、单元风格 2、各区风格 3、语句风格 4、命名规则
参考:Borland官方Object Pascal风格指南 Delphi5程序员指南编码标准
1、单元风格
{*******************************************************} { } { 项目名称 } { } { 版权所有 (C) 2000,2001 公司名称 } { } {*******************************************************}
unit UnitName; {******************************************************* 项目: 模块: 描述: 版本: 日期: 作者: 更新: TODO: *******************************************************}
interface
uses ----,----,----,----,----,----,----,----,----,----,----, ----,----, ----,----,----,----;
const --------------------; --------------------; --------------------; type --------------------; --------------------; --------------------; --------------------; --------------------; --------------------;
var --------------------; --------------------; --------------------;
implementation
uses ----,----,----,----;
{$R *.RES} {$R *.DFM}
--------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------; --------------------------------;
end.
返回
2、各区风格
0、注释与空白
用{ } 不用 // 主题注释,函数过程目的说明,语句注释 空行 :版权块,类之间,方法之间--(两行) 方法内部块(一行) 空格 :用以增强清晰度 缩进 :两个空格
1、常量区
基本:
Const ----- = ----; ----- = ----; ----- = ----; ----- = ----;
扩展 前缀: 少则C_---;多则可以每个主题有一个前缀 Const
{ 主题1 } C_--- = ----; { 含义 } C_--- = ----; { 含义 } C_--- = ----; { 含义 } C_--- = ----; { 含义 } { 主题2 } ----- = ----; ----- = ----; ----- = ----; ----- = ----;
资源字符串,放在变量区后面
resourcestring
const S_--- = ''''----''''; S_--- = ''''----''''; S_--- = ''''----'''';
例子:
CM_BASE = $B000; CM_ACTIVATE = CM_BASE + 0; CM_DEACTIVATE = CM_BASE + 1; CM_GOTFOCUS = CM_BASE + 2; CM_LOSTFOCUS = CM_BASE + 3; NumPaletteEntries = 20; BoxPoints : array[0..5, 0..2] of GLfloat = ( (-1, 0, 0), ( 0, 1, 0), ( 1, 0, 0), ( 0, -1, 0), ( 0, 0, 1), ( 0, 0, -1) );
{ Variant type codes (wtypes.h) }
varEmpty = $0000; { vt_empty } varNull = $0001; { vt_null } varSmallint = $0002; { vt_i2 } GIFVersions : array[gv87a..gv89a] of TGIFVersionRec = (''''87a'''', ''''89a'''');
2、类型区
数据类型-->不提供服务的数据类型 T---- = --------- 对象类型-->有状态并提供服务的实体 T---- = class(----) private -------- -------- protected -------- -------- public -------- -------- published -------- -------- end;
按字母排序
Private 1、所有数据放在Private 区,以F打头 2、所有事件属性对应的方法指针放在Private 区,以F打头 3、属性的Get与Set方法放在Private 区-->不准备被继承 4、响应消息的方法放在Private 区 protected 1、被子类调用的但不能被外界调用的方法与属性 2、供子类重载的方法 virsual; virsual; abstract public 1、构建析构方法 2、供外界调用的方法 3、供外界调用的属性 published 1、出现在Object Inspector里供设计时用的属性 2、出现在Object Inspector里供设计时用的事件响应
例子:
TGIFVersion = (gvUnknown, gv87a, gv89a); TGIFVersionRec = array[0..2] of char; PInterfaceTable = ^TInterfaceTable; TInterfaceTable = packed record EntryCount: Integer; Entries: array[0..9999] of TInterfaceEntry;
{ forword declairation } TGIFImage = class; TGIFSubImage = class; {--------------------------- TGIFItem ---------------------------} TGIFItem = class(TPersistent) private FGIFImage: TGIFImage; ............. end;
3、变量区
定义全局变量 注意不要有缺省的类对象变量,在调用者中声明! var -----------: -------; -----------: -------; 例子: GIFDelayExp: integer = 10; { Delay multiplier in mS.} GIFDelayExp: integer = 12;
4、实现区
{--------------------------------------------------------- 主题 ----------------------------------------------------------}
{ 方法的目的 } procedure ---------------------------- begin --------; & [1] [2] [3] [4] 下一页 [系统软件]InstallShield Express for delphi制作安装程序定… [系统软件](转帖) 忘记登录密码的解决方案 for XP/2003/2000 [系统软件]交叉编译sshd for IXP425 ARM Platform by MVL 3… [常用软件]Firefox 1.0 全方位试用 [常用软件]完全免费的国产语音ICQ软件----V2 Communicator 1… [Delphi程序]《关于VisiBroker For Delphi的使用》(4) [Delphi程序]一个超链接Image控件!(For D3,D4,D5,D6)源代码 [Delphi程序]Five of the best tools for Delphi [Delphi程序]《关于VisiBroker For Delphi的使用》(3) [Delphi程序]《关于VisiBroker For Delphi的使用》(2)
|