软件编程规范大全Word文档下载推荐.docx
- 文档编号:19087586
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:89
- 大小:106.56KB
软件编程规范大全Word文档下载推荐.docx
《软件编程规范大全Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件编程规范大全Word文档下载推荐.docx(89页珍藏版)》请在冰豆网上搜索。
尽管goto语句在某些特殊的情况下(比如编译器中)还很管用,但它破坏了整个程序的结构,尤其使用goto嵌套时,更让人一头雾水(很久以前就有人提出取消它)。
所以不到万不得已时刻不要用它,
可以用break,continue之类的语句替代之。
八、数应该是单人口、单出口的
所有成员函数尽量是单入口,单出口
也许多出口的程序写起来更简洁,意义也更明了。
但出了问题调试时会很难定位,所以宁可多用一些BOOL变量,多加些判断,保证单出口:
例如:
publicStringgetValue(intvalue)
{
if(value>
0)
return“xxxx……T”;
;
return;
“aaa……”;
}
可以写成:
……
publicStringgetValue(intvalue)
Stringreault=null;
if(ivalue>
0)
{…
result=“xxxx……”;
else
result=“aaaa……”;
…
}
returnbRet;
九、调用函数应合法
调用函数时要严格按照接口规范
严格按照函数的输入要求给它合适的参数
十、.单元测试
自己做代码内部(单元)测试时,必须做到语句覆盖,并且特别要注意边界值的覆盖
要让每个语句都被执行过,并且边界值(最大和最小)也被测试过。
你在程序中写的各种情况都可能在用户那里出现
十一、静态检查
代码写完后要尽可能多的做一些静态检查(Debug调试可是很费神费时的)。
尤其是对算法和数据管理(比如对文件存取)部分
十二、文件存放
代码文件的存储位置固定,图片文件存放在统一的目录Picture下,如果各个模块有自己的图片文件,可以创建子目录来完成。
公用函数脚本文件放在统一的目录Scripts下。
每个功能模块创建一个JSP文件存放目录。
结束语:
希望大家在遵守规范的前提下,通过自己的努力,开发出功能齐备、风格统一、性能稳定的一流软件产品。
VB、VC编码规范
1VB部分
1.1控件前缀
控件类型
前缀
例子
3DPanel
pnl
PnlGroup
Animatedbutton
ani
AniMailBox
Checkbox
chk
ChkReadOnly
Combobox,drop-downlistbox
cbo
CboEnglish
Commandbutton
cmd
CmdExit
Commondialog
dlg
DlgFileOpen
Communications
com
ComFax
Control
ctr
CtrCurrent
Datacontrol
dat
DatBiblio
Data-boundcombobox
dbcbo
DbcboLanguage
Data-boundgrid
dbgrd
DbgrdQueryResult
Data-boundlistbox
dblst
DblstJobType
Directorylistbox
dir
DirSource
Drivelistbox
drv
DrvTarget
Filelistbox
fil
FilSource
Form
frm
FrmEntry
FormObjectVariable
frmO
FrmOEntry
Frame
fra
FraLanguage
Gauge
gau
GauStatus
Graph
gra
GraRevenue
Grid
grd
GrdPrices
Horizontalscrollbar
hsb
HsbVolume
Image
img
ImgIcon
Keystatus
key
KeyCaps
Label
lbl
LblHelpMessage
Line
lin
LinVertical
Listbox
lst
LstPolicyCodes
MAPImessage
mpm
mpmSentMessage
MAPIsession
mps
mpsSession
MCI
mci
mciVideo
MDIchildform
mdi
mdiNote
Menu
mnu
mnuFileOpen
MSFlexgrid
msg
msgClients
MSTab
mst
mstFirst
OLE
ole
oleWorksheet
Outline
out
outOrgChart
PenBedit
bed
bedFirstName
PenHEdit
hed
hedSignature
Penink
ink
inkMap
Picture
pic
picVGA
Pictureclip
clp
clpToolbar
Report
rpt
rptQtr1Earnings
Shape
shp
shpCircle
Spin
spn
spnPages
Textbox
txt
txtLastName
Timer
tmr
tmrAlarm
UpDown
upd
updDirection
Verticalscrollbar
vsb
vsbRate
Slider
sld
sldScale
ImageList
ils
ilsAllIcons
TreeView
tre
treOrganization
Toolbar
tlb
tlbActions
TabStrip
tab
tabOptions
StatusBar
sta
staDateTime
ListView
lvw
lvwHeadings
ProgressBar
prg
prgLoadFile
RichTextBox
rtf
rtfReport
1.2数据访问对象(DAO)前缀
数据库对象
Container
con
conReports
Database
db
dbAccounts
DBEngine
dbe
dbeJet
Document
doc
docSalesReport
Field
fld
fldAddress
Group
grp
grpFinance
Index
idx
idxAge
Parameter
prm
prmJobCode
QueryDef
qry
qrySalesByRegion
Recordset
rec
recForecast
Relation
rel
relEmployeeDept
TableDef
tbd
tbdCustomers
User
usr
usrNew
Workspace
wsp
wspMine
1.3菜单前缀
菜单控件除了最前面"
mnu"
标记以外,菜单控件的前缀应该被扩展:
对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。
下表列出了一些例子。
菜单标题序列
菜单处理器名称
File
mnuFile
FileOpen
FileSend
mnuFileSend
FileSendEmail
mnuFileSendEmail
FileSendFax
mnuFileSendFax
当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在VisualBasic的“属性”窗口中。
而且,菜单控件的名字清楚地表示出它们所属的菜单项。
1.4其它控件前缀
对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。
只有当需要澄清时,才使用多于三个字符的前缀。
例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。
对于第三方控件,应该把制造商的小写缩写名附加到前缀中。
例如,从VisualBasicProfessional3D框架中创建的一个控件实例可以用fra3d这样的前缀,以避免混淆所使用的控件。
1.5变量、常量范围前缀
范围
全局
g
gstrUserName
模块级
m
mblnCalcInProgress
本地到过程
dblVelocity
1.6变量、常量类型前缀
数据类型
Boolean
bln
blnFound
Byte
byt
bytRasterData
Collection
col
colWidgets
Currency
cur
curRevenue
DateTime
dtm
dtmStart
Double
dbl
dblTolerance
Error
err
errOrderNum
Integer
int
intQuantity
Long
lng
lngDistance
Object
obj
objCurrent
Single
sng
sngAverage
String
str
strFName
Userdefinetype
udt
udtEmployee
Variant
Vnt
vntCheckSum
1.7描述变量和过程名
变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。
而且,函数名应该以一个动词起首,如InitNameArray或CloseDialog。
对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。
一般来说,超过32个字符的变量名在VGA显示器上读起来就困难了。
当使用缩略语时,要确保它们在整个应用程序中的一致性。
在一个工程中,如果一会儿使用Cnt,一会儿使用Count,将导致不必要的混淆。
1.8用户定义的类型
在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。
如果这些前缀是以"
u"
开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。
例如,ucli可以被用来作为一个用户定义的客户类型变量的前缀。
1.9代码注释约定
1.9.1代码注释规范
模块节标题注释如下:
'
@ModuleName:
(模块名称)
@MainFunc:
(模块说明)
@Author:
(作者)
@LastModify:
(最后修改时间)
@Include:
(引用外部接口)
@Interface:
(模块提供接口)
举例:
frmAccountCard.frm的程序头注释如下
frmAccountCard
科目卡片窗体
张山
2000-06-24
程序接口注释:
@FunctionName:
(函数名)
(函数说明)
(最后修改日期)
@Param:
(用参数)
@Returns:
(返回值类型)
AddAccount
直接增加会计科目
2000-06-23
strAccount科目字符串
strPath科目币种数据所在路径
blnIsCopy由科目复制来标志
Integer
1.10窗体隐含全局变量
避免使用窗体隐含全局变量,声明自己的窗体变量(例如,DimdlgAboutAsNewfrmAboutBox)。
1.11命名属性、方法和事件
尽量用完整的词,不用缩写。
缩写可能有许多形式,并因此可能含混。
如果完整的单词太长的话,可以用完整的第一个音节。
对于标识符,可以用大小写混合的写法,每个单词或者音节的首字符大写,例如ShortcutMenus或者AsyncReadComplete。
对于集合类名,可以用复数写法。
如果集合中有以"
s"
结尾的对象,可将单词"
Collection"
附加在其后面。
对于方法名,可以比较一致地用动词/对象或者对象/动词的顺序。
也就是说,使用InsertWidget、InsertSprocket,等等,或者总是将对象放在前面,就象例子WidgetInsert和SprocketInsert那样。
1.12常数使用
在VB中已经定义了常数的情况下,必须采用常数,避免采用数值的使用对程序可读性产生不良影响。
可以明显看出以下代码的优劣:
frmWizard.ShowVBModalfrm1.Show1
MsgBox"
Infomation"
"
Title"
VBInformationMsgBox"
"
1
1.13MsgBox书写要求
消息框要求显示的信息分为四类:
信息,问题,警告,错误。
所有显示的消息框都必须包含上述四类之一的图标;
消息框显示的标题代表所运行的程序模块标题,必须用汉字标题,内容为详细的具体信息;
如果是对数据范围非法的警告,必须提示出合法的边界值。
例如用户输入登录时间时提示“登录时间非法”,用户尝试两三次其他时间后仍然无法正确登录,必然对使用软件失去信心,如果直接提示出允许的登录时间范围,用户马上就可以录入正确的数据。
对于数值的确认,需要提示出需要的数据值。
推荐的例子:
MsgBox“请确认是否删除本分录(109)?
”,“凭证处理”,VBQUESTION+VBYESNOCANCEL
MsgBox“张出纳,您没有帐册查询权限!
”,“帐册查询”,VBEXCLAMATION
MsgBox"
登录时间不能超过帐套结束时间1999-12-31!
App.Title,VBEXCLAMATION
1.14SQL语句书写要求
SQL语句要求将SQL保留字全部采用大写,其余部分如字段名、表名等采用其自然定义的大小写格式,推荐采用大写开头字符的方式;
语句中的分隔只需要一个空格。
对于条件嵌套复杂的语句,需要在逻辑表达式中加入适当的括号对体现层次,增强语句可读性。
例如:
SELECT*FROMEmployeeWHERE(lngBirthYear>
1980ANDstrNameLIKE“A*”)ORDERBYDepartment
为了提高程序可读性,要求必须注释说明每个SQL语句的功能。
1.15源程序编排
源程序编排必须按照结构化程序进行缩格。
缩格要求用一个TAB体现一个结构层次,每个TAB设置为占用4个空格。
每条语句的右边界尽量保持在80个字符范围内,以在编辑器中浏览时不需要横向滚动为宜。
较长的语句要求进行分割。
1.16源文件命名
原则上源文件与对象命名相同,由于文件具有后缀标识文件类别,因此取消对象类别前缀,仅取对象名作为文件名。
frmMainMain.frm
clsAccountSetupAccountSetup.cls
modPublicPublic.bas
1.17资源ID
CaptionResourceID、ToolTipTextResourceID、HelpContextID、WhatsThisHelpID、WizardStringID、WizardPictureID、WizardSoundID、WizardAVIID等一致,只是偏移量不同,其存储位置优先顺序:
HelpContextID、WhatsThisHelpID、Tag。
2VC部分
2.1C++类的定义形式约定表
类名称:
数据成员:
构造/析构函数:
成员函数:
ClassmyClass
public|private|protected:
myDataMembers;
myClass();
~myClass();
myMemberFunction();
};
2.2头文件的书写顺序约定表
程序注释及变动说明
文件头:
包含的头文件:
符号常数和全局常数:
宏定义:
类型定义:
结构,联合和类定义:
外部变量的声明:
内联函数的定义:
//
#include
const
macro
typedef
struct|union|class
2.3源文件的书写顺序约定表
私有符号常数和全局常数:
私有宏定义:
私有类型定义:
私有结构,联合和类定义:
外部/全局变量初始化:
函数/成员函数定义:
“程序头书写标准”
2.4标识符命名约定表
标识符种类
书写规范
示例
函数/过程名
一般标识符
CheckButtonStates
宏标识符
大写标识符
SALES_TAX
类标识符
‘C’+一般标识符
CEditBox
结构标识符
‘S’+一般标识符
SMyStructure
联合标识符
‘U’+一般标识符
UMyUnion
整数标识符
‘i/n/int’+一般标识符
INumber,intCurrent
字符串标识符
‘s/str/lpstr’+一般标识符
sComputerName
逻辑标识符
‘b’+一般标识符
bisDetailed
对象标识符
特征小写字母+一般标识符
FrmStatus,tvwTree
一般标识符:
字母开头,各单词连写,词首字母大写
大写标识符:
字母开头,所有字母大写,单词间用下划线相连
2.5函数头说明规范
函数名称:
函数功能:
调用格式:
参数说明:
对环境引用:
对环境影响:
内部变量说明:
调用函数列表:
被调函数列表:
函数的中文名称
简述函数的功能
必要时可举例说明
列出主要的、不易理解的参数含义和取值范围
(可选的)
2.6修改申明
本编码规范目前是针对开发根据VB和VC来编制的,随着需要的开发工具的变化,本规范的内容也需要做相应更新。
若发现本编码规范有遗漏或不足或者错误之处,允许以各种形式反映到品质管理部,并由其修改模板。
3窗体和控件的取名:
详见命名标准
严禁和受到限制的关键字同名
4显式声明变量
在类模块、窗体模块或标准模块的声明段中加入这个语句:
OptionExplicit
5为便于阅读程序,禁止使用VB的“字符串和数字的自动转化功能”
VB中规定:
如果字符串表示数值,则可将字符串赋予数值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 编程 规范 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)