软件编码规范.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件编码规范
文件状态:[√] 草稿[ ] 正式发布[ ] 正在修改文件编号:RDC-DED-SCS-SPC-00 当前版本:
作者:
审核人:
完成日期:
中国人民银行清算总中心
支付系统开发中心
版本编号变化状态简要说明日期变更人批准日期批准人
注:变化状态:A—增加,M—修改,D—删除
目录
第一篇C/C++编码规范 (6)
第一章代码组织 (6)
第二章命名 (9)
2.1文件命名 (9)
2.2变量命名 (9)
2.3常量与宏命名 (10)
2.4类命名 (10)
2.5函数命名 (10)
2.6参数命名 (11)
第三章注释 (12)
3.1文档化注释 (12)
3.2语句块注释 (17)
3.3代码维护注释 (20)
第四章编码风格 (22)
4.1排版风格 (22)
4.2头文件 (26)
4.3宏定义 (27)
4.4变量与常量 (30)
4.5条件判断 (32)
4.6空间申请与释放 (33)
4.7函数编写 (33)
4.8类的编写 (37)
4.9异常处理 (40)
4.10特殊限制 (40)
第五章编译 (41)
第六章ESQL/C编码 (46)
第二篇JAVA编码规范 (47)
第一章代码组织 (48)
第二章命名 (51)
2.1包命名 (51)
2.2类命名 (51)
2.3接口命名 (51)
2.4方法命名 (51)
2.5变量命名 (51)
2.6类变量命名 (52)
2.7常量命名 (52)
2.8参数命名 (52)
第三章注释 (53)
3.1文档化注释 (53)
3.2语句块注释 (57)
3.3代码维护注释 (59)
第四章编码风格 (61)
4.1排版风格 (61)
4.2包与类引用 (66)
4.3变量与常量 (66)
4.4类编写 (67)
4.5方法编写 (68)
4.6异常处理 (71)
4.7特殊限制 (71)
第五章编译 (73)
第六章JSP编码 (74)
6.1文件命名及存放位置 (74)
6.2内容组织 (74)
6.3编码风格 (76)
6.4注释 (78)
6.5缩进与对齐 (78)
6.6表达式 (79)
6.7JavaScript (79)
第三篇POWERBUILDER编码规范 (80)
第一章代码组织 (81)
第二章命名 (82)
2.1文件命名 (82)
2.2对象命名 (82)
2.3变量命名 (84)
2.4常量命名 (85)
2.5函数与事件命名 (85)
2.6参数命名 (85)
第三章注释 (85)
3.1文档化注释 (85)
3.2语句块注释 (88)
3.3代码维护注释 (88)
第四章编码风格 (89)
4.1界面风格 (89)
4.2排版风格 (93)
4.3变量与常量 (95)
4.4条件判断 (96)
4.5空间申请与释放 (97)
4.6函数编写 (97)
4.7特殊限制 (97)
第五章SQL编码 (98)
前言
程序编码是一种艺术,既灵活又严谨,充满了创造性与奇思妙想。然而应用软件设计是一项团结协作工程,而非程序员展示个人艺术的舞台,大型应用软件项目更是由很多程序员组成的大型开发团队协同完成的。每个程序员都有自己的编码经验与风格,如果缺乏统一的编程规范,则可能导致软件产品最终程序代码风格迥异,可读性与可维护性均较差,不仅给程序代码的理解带来障碍,也增加维护阶段的工作量。此外,经验证明不规范的编码行为往往还会导致程序出现更多的隐含错误。
为规范编码行为,增强程序代码的可读性、可维护性,提高编码质量与效率,保障应用软件产品整体品质与可持续开发性,特制定本规范。本规范分C/C++编码规范、Java编码规范、PB 编码规范三篇,分别从代码组织、命名、注释、编码风格、编译等方面加以阐述。规范文本分为规则与建议两种,其中规则是强制执行的条款,建议则由程序员根据实际情况灵活掌握。
第一篇C/C++编码规范
第一章代码组织
规则1: 使用不同的文件分别放置模块的约束与实现。C++程序的约束文件使用.hpp做扩展名,实现文件使用.cpp做扩展名;C程序的约束文件使用.h做扩展名,实现文件使用.c做扩展名。
规则2: 一个模块可以包含一个类或功能上紧密联系的多个类。禁止将功能关联松散的多个类,放置到一个模块中。
规则3: 模块约束应仅包含模块对外提供的功能,禁止将模块内部使用的功能声明在模块约束中。下例中IsChineseChar()是内部使用的函数,不提供给外部应用使用,因此不能在
例:commpub.hpp
BOOL IsChineseString(const char* sInStr);
例:commpub.cpp
static BOOL IsChineseChar(const char* s)
{
……;
}
BOOL IsChineseString(const char* sInStr)
{
for(int ii = 0; ii < strlen(sInStr); ii++)
{
if(!IsChineseChar(sInStr + ii))
{
return FALSE;
}
}
return TRUE;
}
简单应用应创建下列目录结构,模块程序代码应分别放置到src/include目录与src/source目录,编译文件放置到src/source目录,编译后的可执行文件放置到rel/bin目录,静态库或动态库放置到rel/lib目录(应用使用的外部库及头文件放置在rel同级的lib与lib/include目录)。