我的使用小得是:
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
在重要或复杂的逻辑代码前一行须加上注释,格式如下:
//注释内容 – 程序员姓名
……
代码