蛙蛙推荐:PB开发规范.doc

类别:Delphi 点击:0 评论:0 推荐:

我的使用小得是:

 1。每个表都用中文注明,这个表的标题,表中所有字段的内容。

 

 2。 窗口,数据窗口,事件,类也都注明。

 

 我的PBL是根据所要涉及的模块化分,我个人认为适合我的开发风格。:)

其他是每次使用内存后,在处理完后就释放。(如:datastore)

打开pb 的同时,打开word,把你作的改动,你遇见和解决的问题记录下来(代码和文档同步!)

在每一个pbscript的开始要写出注释,功能,作用之类的注释

PowerBuilder程序开发规范

一、       系统对象的命名

对象名称       命名规则

窗口(WINDOW)         w_name

菜单(MENU)         m_name

用户对象(USER OBJECT)       uo_name

结构体(STRUCTURE)      s_name

函数(FUNCTION)         f_name

数据窗口(DATA WINDOW)普通数据窗口下拉式数据窗口 (用于DropDwon Datawindow)      d_name  dddw_name

管道(PIPELINE)         p_name

二、       窗口控件命名

控件名称       命名规则

命令按钮(COMMANDBUTTON)        cb_name

图形按钮(PICTUREBUTTON)   pb_name

复选框(CHECKBOX)         cbx_name

单选框(RADIOBOX)         rb_name

静态文本(STATICTEXT)      st_name

图片(PICTURE)         p_name

分组框(GROUPBOX)         gb_name

线条(LINE)         ln_name

单行编辑框(SINGLELINEEDIT)     sle_name

格式编辑框(EDITMASK)         em_name

多行编辑框(MULTILINEEDIT)       mle_name

RICHTEXTEDIT 控件(RICHTEXTEDIT)      rte_name

水平滚动条(HSCROLLBAR)   hsb_name

竖直滚动条(VSCROLLBAR)   vsb_name

下拉列表框(DROPDOWNLISTBOX)     ddlb_name

下拉图形列表框(DROPDOWNPICTURELISTBOX)        ddplb_name

列表框(LISTBOX)         lb_name

图形列表框(PICTURELISTBOX)   plb_name

ListView控件(LISTVIEW)         lv_name

TreeView控件(TREEVIEW)         tv_name

Tab控件(TAB)Tab页       tab_name  tabpage_name

数据窗口控件(DATAWINDOW)         dw_name

图形控件(GRAPH)         gr_name

OLE控件         ole_name

用户对象控件(USER OBJECT)       uo_name

 

 

变量命名

变量类型       命名规则

布尔型变量(BOOLEAN)         Xb_name

字符型变量(CHAR)       Xc_name

日期型变量(DATA)        Xd_name

日期时间型变量(DATATIME)         Xdt_name

小数型变量(DECIMAL)         Xdec_name

双精度浮点型变量(DOUBLE)         Xdou_name

整型变量(INTEGER)         Xi_name

长整型变量(LONG)       Xl_name

实型变量(REAL)        Xr_name

结构体变量(STRUCTURE)      Xstr_name

字符串型变量(STRING)   Xs_name

时间型变量(TIME)        Xt_name

无符号整型变量(UINT)    Xui_name

无符号长整型变量(ULONG)         Xul_name

说明:对于变量的命名规则中的X

全局变量(GLOBAL VAR)                     X用g替换

实例变量(INSTANCE VAR)              X用i替换

共享变量(SHARED VAR)                     X用s替换

局部变量(LOCAL VAR)               X用l替换

例如:定义字符串变量

全局变量(GLOBAL VAR)                     gs_name

实例变量(INSTANCE VAR)              is_name

共享变量(SHARED VAR)                     ss_name

局部变量(LOCAL VAR)               ls_name

  定义整型变量

全局变量(GLOBAL VAR)                     gi_name

实例变量(INSTANCE VAR)              ii_name

共享变量(SHARED VAR)                     si_name

局部变量(LOCAL VAR)               li_name

三、       其他命名

名称       命名规则

用户自定义事件(USER EVENT)         ue_name

窗口函数(WINDOW FUNCTION)         wf_name

我的思想:多用封装的,少写代码!

一个人写的代码也许只有他自己才能读的懂!

l      建议在本机上建rubbish目录,用来存放暂时不用但以后有可能用到的东西。

l      注意使用已有的类。以继承方式用之。禁止不查看已有的类,自己又重做一套。

l      share中各对象都应注册到版本控制系统,如ObjectCycle,修改对象时使用checkin/checkout机制,以便两个/多个人可共同维护同一组对象而不发生冲突,最主要的是可保存以前任何版本,便于提交和恢复

。新建对象时,首先想到的应当是“inherit”,而不是“new”!

l      PBL命名规则为以模块标识打头如:jl_。

l      每个pbl模块不应大于1.5MB,过大则应再划分

一、       引言

为了规范软件开发代码及文档,方便维护,特制定软件开发规范如下。

二、       文档编写要求

每个系统要求有:需求分析文档、需求变更文档、数据库结构文档、数据库变更文档、软件开发文档。文档应先于具体编程,即编写程序以前必须写好相应的文档,然后按照文档进行编程。

每个窗口、事件都必须有文档。要求写出模块的名称、功能、输入、输出参数介绍、创建、修改时间。

三、       程序风格

程序要有良好的缩进格式。以Power Builder为例:

If condition Then

   something to do

End If

即每个关键字头字母大写,相应位置有3个空格的缩进。

四、       变量命名规范(以Power Builder为例)

1、 对象命名

 PowerBuilder中,对象的命名一般采用如下前缀:

 Prefix              Object

       -------------------------------------------

 d_                 DataWindows

 dddw_          DropDownDataWinows

 f_         Functions

 m_        Menus

 p_         Pipelines

 s_         Structures

 u_         UserObjects

 w_        Windows

2、 控件命名

 在PowerBuilder的窗口中,控件的命名一般采用如下前缀:

         Prefix              Control

 ---------------------------------------------------------------

         cbx_               CheckBox                     

 cb_              CommandButton         

 dw_             DataWindow             

         ddlb_               DropDownListBox     

         em_              EditMask              

         gr_        Graph

         gb_              GroupBox                    

 hsb_             HScrollBar                

         ln_        Line                 

       lb_            ListBox                

       mle_         MultiLineEdit       

       ole_          OLE 2 0               

       ocx_         OCX                       

       oval_        Oval                 

       p_            Picture                 

       pb_           PictureButton      

 rb_        RadioButton              

       r_             Rectangle                

       rr_            RoundRectangle         

       sle_          SingleLineEdit      

       st_            StaticText                

       uo_           User Object                

       vsb_         VScrollBar

3、 变量命名:

        ---------------------------------------------------------------

        1)、作用域命名

          Prefix             Scope     

         ---------------------------------------------------------------

          g_              Global

          s_              Shared

          i_        Instance

l_            Local

 2)、变量类型前缀

         Prefix             Datatype

       ---------------------------------------------------------------

 b_         Boolean 

         blob_              Blob    

         d_         Double  

         date_              Date

         dec_              Decimal  

         dt_        DateTime

         i_          Integer 

 l_          Long    

         s_         String  

         t_          Time    

         ui_        Undisgned Int   

         ul_        Undisgned Long        

         tr_        Transaction object  

         do_              Dragobject

         dwc_              DataWindowChild   

         nvo_              NonVisulObject    

4、 函数命名

         Prefix             Scope

      ---------------------------------------------------------------

        gf_         Global Function 

        wf_        Window Function     

        mf_        Menu Function       

        uf_         UserObject Function 

五、       程序注释要求

要求每个事件、函数、变量等都必须有注释。注释与代码的比例最少应达到1:3。

事件、函数代码开头注释模版为:

/**********************************************************************************

     功能:

参数:

返回:

     作者:

     创建: 1999.09.21

修改: 2000.09.21  **********************************************************************************/

 

//////////////////////////////////////////////////////////////////////////////

//

//     Function:  of_UpdateChecks

//

//     Access:  protected

//

//     Arguments: 

//       apo_control[]  The array of object for which the checks need to be

//                                               performed.

//

//     Returns:  integer

//     1 = updates were found

//     0 = No changes to update were found

//     -1 = AcceptText error

//     -2 = UpdatesPending error was encountered

//     -3 = Validation error was encountered

//

//     Description:       Perform accepttext, updatestpending and validation on

//                   the objects.

//

//////////////////////////////////////////////////////////////////////////////

在每段程序的前方写明代码的作用、逻辑等。每个变量要求写出其功能。

六、       对象的命名及备注

每个对象备注中要有对象的功能及开发人。

我认为这样挺规范的:

一、变量规范

1、前缀

(1)、作用域

全局(Global):              g

共享(Shared):              s

实例(Instance):       i

局部(Local):              l

(2)、类型

b            Boolean

blob       Blob

d            Double

num Number

date        Date

dec        Decimal

dt           DateTime

i             Integer

l             Long

s            String

t            Time

ui            Undisgned Int

ul            Undisgned Long

tr            Transaction Object

do           DragObject

ds           DataStore

dwc        DataWindowChild

nvo        NonVisulObject

tri           TreeViewItem

lvi           ListViewItem

2、格式 

              作用域 类型 _ 英文意义或缩写

             

 

        首字母大写  首字母大写或全部大写(缩写)

注:不可随意定义或更改全局变量

 

二、PowerBuilder对象

1、窗口(Window)

w _子模块拼音码_功能或用途(英文意义)

2、数据窗口(DataWindow)

d_子模块拼音码_功能或用途(英文意义)

3、查询(Query)

q_子模块拼音码_功能或用途(英文意义)

4、数据管道(Pipeline)

p_子模块拼音码_功能或用途(英文意义)

5、函数(Function)

f_子模块拼音码_功能或用途(英文意义)

       6、全局函数(Global Function)

gf_功能或用途(英文意义)

7、窗口函数(Window Function)

wf_功能或用途(英文意义)

       8、菜单函数(Menu Function)

mf_功能或用途(英文意义)

       9、用户自定义对象函数(User Object Function)

uf_功能或用途(英文意义)

10、菜单(Menu)

m_子模块拼音码_功能或用途(英文意义)

11、结构(Structure)

stru_子模块拼音码_功能或用途(英文意义)

12、用户自定义对象(User Object)

u_子模块拼音码_功能或用途(英文意义)

       13、控件(Controls)

cbx_             CheckBox      

cb_               CommandButton  

dw_              DataWindow  

ddlb_             DropDownListBox  

em_              EditMask      

gr_                Graph

gb_               GroupBox      

hsb_              HScrollBar  

ln_                Line  

lb_                ListBox      

mle_              MultiLineEdit  

ole_               OLE 2 0      

ocx_             OCX  

oval_             Oval  

p_                 Picture      

pb_               PictureButton  

rb_                RadioButton  

r_                 Rectangle  

rr_                RoundRectangle  

sle_               SingleLineEdit  

st_                StaticText  

uo_               User Object  

vsb_              VscrollBar

 

特别说明:

系统固定按钮名称

Cb_Yes                                      [是(&Y)]

Cb_No                                       [否(&N)]

Cb_Ignore                                  [忽略(&I)]

Cb_Retry                             [重试(&R)]

Cb_Abort                                   [终止(&A)]

Cb_Ok                                       [确定(&Y)]

Cb_Cancel               [取消(&C)]

Cb_Return                      [返回(&R)]

Cb_Close                             [关闭(&X)]

Cb_Print                        [打印(&P)]

Cb_PrintPrev                       [打印预览(&V)]

Cb_Gen                        [生成(&G)]

Cb_Query                      [查询(&Q)]

Cb_Count                                   [统计(&T)]

Cb_Add                        [添加(&A)]

Cb_Insert                       [插入(&I)]

Cb_Del                         [删除(&D)]

Cb_Modify                                 [修改(&M)]

Cb_Save                              [保存(&S)]

Cb_Send                             [发送(&F)]

Cb_Audit                             [审核(&T)]

Cb_Abandon                        [作废(&Z)]

Cb_First                              [首条]或[9]Webdings字体

Cb_Next                        [后一条]或[8]Webdings字体

Cb_Prev                       [前一条]或[7]Webdings字体

Cb_End                               [末条]或[:]Webdings字体

 

三、PowerBuilder库文件

       每个子模块包含有最多10个Pbl文件,其中有:

              1、存放子模块所使用的PowerBuilder基本对象(窗口、菜单等):

子模块拼音码+序号(00 - 09).pbl                                       -- 10个

2、存放子模块所使用的资源文件(Bmp、Ico、Cur、Ani文件)

子模块拼音码+Res.pbl                                                          -- 1个

 

四、代码

Powerbuilder中的保留字首字大写

       内嵌式SQL语句保留字全部大写

      

       自定义函数注释格式:

名称:

    功能:

    参数:

    逻辑:

    适用:

    编程:

    创建: 2002.01.01

    修改: 2002.02.01

    版本: 1.0

   

 

       在重要或复杂的逻辑代码前一行须加上注释,格式如下:

       //注释内容 – 程序员姓名

       ……

       代码

本文地址:http://com.8s8s.com/it/it4647.htm