源代码编写规范等保安全管理制度Word文档下载推荐.docx
《源代码编写规范等保安全管理制度Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《源代码编写规范等保安全管理制度Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
(一)编写目的
为了健全公司软件源代码的管理,增加源代码的可读性,提高软件开发效率,特编写些规范。
此规范并非源代码编写的一个标准,而是作为一个参考,以培养开发人员良好的编程习惯。
(二)范围
开发时源代码的命名、注释规范(包括ASP,C/C++,JAVA)。
二.
规范内容:
2.1源代码标注规范(forC++):
2.1.1缩写规则
缩写后一个单词的长度宜为3-6个字母。
缩写后应能辨认出原意。
尽量使用公认的缩写习惯,如:
Window缩写为Win;
SmartPoint缩写为sp。
2.1.2命名规则
使用含义鲜明、描述性的英文单词或缩写命名;
命名由字母、数字和下划线构成,一般情况下不得超过32个字符;
命名建议采用组合词的方式。
2.1.3变量命名规则
一般性规则:
由单词(第一个单词或其缩写字母全部小写,以后单词首字母大写,其余的字母小写)构成名词词组,如:
intnValue;
CStringstrTemp;
CListCtrllistUserInfo;
第一个单词(前缀)的缩写格式原则上以匈牙利命名方式为准(参见表一:
匈牙利命名法),并且原则上不建议用下划线作为单词间的连接符:
表一:
匈牙利命名法
前缀
类型
描述
实例
arr
Array
静态数组
arrPoint
b
BOOL
布尔值
bEnabled
by
unsignedchar(BYTE)
8位无符号字符
byWeek
ch
Char
8位字符
chGrade
tch
TCHAR
如果是_UNICODE,为16位字符
tchName
i/n
Int
整形(其大小依赖于操作系统)
iRange
u
UINT
无符号整形(其大小依赖于操作系统)
nLength
us
unsignedshort
无符号短整形
usPort
w
WORD
16位无符号值
wParam
l
LONG
32位有符号整形
loffset
dw
DWORD
32位无符号整形
dwVolume
f
Float
4字节浮点数
fHigh
d
Double
8字节浮点数
dAmount
cy
CURRENCY
8字节货币类型
cySell
p
*
指针
pDoc
lp
FAR*
远指针
lpDoc
lpsz
LPSTR
为32位字符串指针
lpszName
lpcsz
LPCSTR
32位常量字符串指针
lpcszName
lpctsz
LPCTSTR
如果_UNICODE定义,为32位常量字符串指针
lpctszName
bstr
BSTR
带有4字节长度前缀的w_chart数组
bstrMessage
pbstr
BSTR*
BSTR数据类型指针
pbstrMsg
str
String
CString类型的字符串
strMessage
och
OLECHAR
OLECHAR字符类型
ochX
osz
OLECHAR*
OLECHAR字符串类型
oszX
var
VARIANT
VARIANT数据类型
pvar
VARIANT*
VARIANT数据类型指针
sa
SAFEARRAY
SAFEARRAY数据类型
psa
SAFEARRAY*
SAFEARRAY数据类型指针
dlg
CDialog
Windows对话框
stc
CStatic
Windows静态文本控件
edt
Cedit
Windows编辑框控件
lsb
CListBox
Windows列表控件
btn
CButton
Windows按钮控件
scb
CScrollBar
Windows滚动条控件
spn
CSpinButtonCtrl
Windowswe微调按钮控件
tab
CTabCtrl
Windows选项卡控件
rtf
CRichEditCtrl
Windows富文本编辑框控件
sld
CSliderCtrl
Window滑块控件
list
ClistCtrl
tre
CtreeCtrl
Windows树形控件
dtc
CDateTimeCtrl
Windows时间选取器控件
prg
CProgressCtrl
Windows进度指示器控件
cbo
CComboBox
Windows组合框控件
ils
CImageList
Windows图像列表
tlb
CToolBarCtrl
Windows工具条控件
mnu
Cmenu
Windows菜单控件
sta
CStatusBar
Windows状态条控件
wnd
CWnd
Windows窗口
cx
WindowsX坐标
Y
WindowsY坐标
pt
Cpoint
Windows点阵
hWnd
size
Csize
Windows尺寸
rect/rc
Crect
Windows矩形
rect
pen
Cpen
Windows画笔
br
Cbrush
Windows刷子
fnt
Cfont
Windows字体
cr
COLORREF
Windows颜色值RGB
PMp
Temp
临时变量
PMpBuff
h
Handle
Windows对象句柄
lpfn
Callback
指向CALLBACK函数的远指针
lpfnAbort
it/iter
iterator
迭代子
it
vect
std:
:
vector
标准模板库
map
deque
set
Set
multiset
multimap
指针类型的变量,必须加上前缀"
p"
,如:
int*pnValue;
。
全局(静态)变量的命名规则同第一条的规定,并且必须加上前缀"
g_"
类成员(静态)变量的命名规则同第一条的规定,并且必须加上前缀"
m_"
模块(函数/过程)内部的重要变量命名遵循第一条的规定。
模块(函数/过程)内部的静态变量命名遵循第一条的规定,并且加上前缀"
s_"
其余变量在不损害程序易读易懂原则的基础上酌情处理。
这些变量通常是模块内的临时变量,如循环控制变量、数组的下标等,它们可用缩写进行简化处理,如:
inti;
2.1.4常量命名规则
宏(#define)或者常量修饰符(const):
大写字母组成的名词词组,单词间用下划线作为连接符,如:
#defineINVALID_CLOSE0;
constdoubleINVALID_CLOSE=double(0);
枚举类型(enum):
此时的命名规则同"
变量命名的一般性规则"
,可参考MFC或ADO等的命名方式。
2.1.5函数命名规则
单词构成的动宾词组,每个单词首字母大写,其余字母小写。
如:
voidDrawLine(void);
2.1.6类命名规则
类的原型,是前缀"
C"
加单词构成的动宾词组,每个单词首字母大写,其余字母小写。
classCStockPacket;
classCPacket;
类的实例变量,采用小写首字母缩写的方式定义,如:
CStockPacketsp;
在对类的成员变量和成员函数定义时,要加以分类,并界定相应的存取权限(参见表二:
类成员的分类描述)
表二:
类成员的分类描述
分类描述
存取权限(依实际应用而定)
//Constructors
Public
//Attributes
Private
//Operations(对于com组件是//Methods)
//Overridables
Protected
//Implementation
2.1.7结构命名规则
结构的原型采用组合词的方式定义,并且全部采用大写字符的形式。
typedefstructtagStockTrans
{
DWORDdwOpen;
...
}STOCKTRANS;
结构的实例变量,采用小写首字母缩写的方式定义,如:
STOCKTRANSst;
2.1.8语句构造规则
一般性的原则:
简单而直接,尽量避免出现难懂的技巧型代码。
为追求效率而出现的技巧型代码,必须加上足够详细的注释。
对以下的规则不做硬性规定,可酌情考虑:
⏹一个函数/过程的代码行数控制在60行(A4打印纸可打印的行数)以内。
⏹尽量避免复杂的测试条件。
⏹避免使用过深的(3级以上)循环或条件嵌套,必要时可采用goto语句。
⏹循环或条件中的语句块控制在60行以内。
⏹利用括号使逻辑表达式或算术表达式的运算次序清晰直观。
2.1.9书写格式规则
一行一条语句,赋值语句可例外,如:
i=0,j=1,k=2;
层次结构清晰明显:
⏹"
{"
与"
}"
各占一行。
所在的列与其前一行语句对齐;
"
所在的列与对应的"
对齐。
之间的语句相对缩进一个Tab键(设为4个空格字符)。
⏹注释与相关的代码首列对齐。
空行和空格
⏹一组相关的函数/过程间以一个空行分隔;
组间两个空行。
⏹行内注释(//)部分与语句间以空格或Tab分隔,数量酌情。
⏹多个函数参数或测试条件间用一个空格分隔。
2.1.10注释规则
2.1.10.1序言性注释
在模块开始处简要描述模块的功能、主要算法、接口特点、重要数据等的解释性说明。
⏹源程序(.cpp,.hetc)文件的开始处的格式(行宽80列以内):
//==============================================================================
//文件名称:
Optim