打印本文 打印本文 关闭窗口 关闭窗口
代码创建形式规范 1.0 (for delphi)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3038  更新时间:2009/4/23 18:34:02  文章录入:mintao  责任编辑:mintao

本规范的目的:给自己的代码一个统一而标准的外观,增强可读性,可理解性,可维护性
本规范的原则:名称反映含义,形式反映结构

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
  --------;
  --------;
end;

{ 方法的目的 }
function  -----------------------------
begin
  --------;
  --------;
end;


5、过程与函数
   命名
   格式

  返回

3、语句风格
1、简单语句
   -------;
2、复合语句
   begin
     -----;
     -----;
   end; 

3、赋值语句
   -- := -------;
   -- := (-- + --)* (-- / --);

4、局部变量
var
  ---: ---;

[1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口