1、 软件编码规范 RDC-DED-SCS中国人民银行清算总中心支付系统开发中心 1/98软软软 件件件 编编编 码码码 规规规 范范范文件编号: RDC-DED-SCS-SPC-00当前版本:作 者:审 核 人:文件状态: 草稿 正式发布 正在修改完成日期:中国人民银行清算总中心支付系统开发中心软件编码规范 RDC-DED-SCS-SPC-00-00中国人民银行清算总中心支付系统开发中心 2/98文档修订记录版本编号 变化状态 简要说明 日期 变更人 批准日期 批准人注:变化状态: A增加, M修改, D删除软件编码规范 RDC-DED-SCS-SPC-00-00中国人民银行清算总中心支付系统开
2、发中心 3/98目 录第一篇 C/C+编码规范 .6第一章 代码组织 .6第二章 命名 .92.1 文件命名 .92.2 变量命名 .92.3 常量与宏命名 .102.4 类命名 .102.5 函数命名 .102.6 参数命名 .11第三章 注释 .123.1 文档化注释 .123.2 语句块注释 .173.3 代码维护注释 .20第四章 编码风格 .224.1 排版风格 .224.2 头文件 .264.3 宏定义 .274.4 变量与常量 .304.5 条件判断 .324.6 空间申请与释放 .334.7 函数编写 .334.8 类的编写 .374.9 异常处理 .404.10 特殊限制 .
3、40第五章 编译 .41第六章 ESQL/C编码 .46第二篇 JAVA编码规范 .47第一章 代码组织 .48第二章 命名 .512.1 包命名 .512.2 类命名 .512.3 接口命名 .512.4 方法命名 .512.5 变量命名 .512.6 类变量命名 .522.7 常量命名 .522.8 参数命名 .52第三章 注释 .533.1 文档化注释 .533.2 语句块注释 .573.3 代码维护注释 .59第四章 编码风格 .614.1 排版风格 .614.2 包与类引用 .664.3 变量与常量 .664.4 类编写 .674.5 方法编写 .68软件编码规范 RDC-DED-S
4、CS-SPC-00-00中国人民银行清算总中心支付系统开发中心 4/984.6 异常处理 .714.7 特殊限制 .71第五章 编译 .73第六章 JSP编码 .746.1 文件命名及存放位置 .746.2 内容组织 .746.3 编码风格 .766.4 注释 .786.5 缩进与对齐 .786.6 表达式 .796.7 JavaScript .79第三篇 POWERBUILDER编码规范 .80第一章 代码组织 .81第二章 命名 .822.1 文件命名 .822.2 对象命名 .822.3 变量命名 .842.4 常量命名 .852.5 函数与事件命名 .852.6 参数命名 .85第三章
5、 注释 .853.1 文档化注释 .853.2 语句块注释 .883.3 代码维护注释 .88第四章 编码风格 .894.1 界面风格 .894.2 排版风格 .934.3 变量与常量 .954.4 条件判断 .964.5 空间申请与释放 .974.6 函数编写 .974.7 特殊限制 .97第五章 SQL编码 .98软件编码规范 RDC-DED-SCS中国人民银行清算总中心支付系统开发中心 5/98前 言程序编码是一种艺术,既灵活又严谨,充满了创造性与奇思妙想。然而应用软件设计是一项团结协作工程,而非程序员展示个人艺术的舞台,大型应用软件项目更是由很多程序员组成的大型开发团队协同完成的。每个
6、程序员都有自己的编码经验与风格,如果缺乏统一的编程规范,则可能导致软件产品最终程序代码风格迥异,可读性与可维护性均较差,不仅给程序代码的理解带来障碍,也增加维护阶段的工作量。此外,经验证明不规范的编码行为往往还会导致程序出现更多的隐含错误。为规范编码行为,增强程序代码的可读性、可维护性,提高编码质量与效率,保障应用软件产品整体品质与可持续开发性,特制定本规范。本规范分 C/C+编码规范、Java 编码规范、PB编码规范三篇,分别从代码组织、命名、注释、编码风格、编译等方面加以阐述。规范文本分为规则与建议两种,其中规则是强制执行的条款,建议则由程序员根据实际情况灵活掌握。软件编码规范 RDC-D
7、ED-SCS中国人民银行清算总中心支付系统开发中心 6/98第一篇 C/C+编码规范第一章 代码组织规则 1: 使用不同的文件分别放置模块的约束与实现。C+程序的约束文件使用.hpp 做扩展名,实现文件使用.cpp 做扩展名;C 程序的约束文件使用.h 做扩展名,实现文件使用.c 做扩展名。规则 2: 一个模块可以包含一个类或功能上紧密联系的多个类。禁止将功能关联松散的多个类,放置到一个模块中。规则 3: 模块约束应仅包含模块对外提供的功能,禁止将模块内部使用的功能声明在模块约束中。下例中 IsChineseChar()是内部使用的函数,不提供给外部应用使用,因此不能在commpub.hpp中
8、增加声明。例:commpub.hppBOOL IsChineseString(const char* sInStr);例:commpub.cppstatic BOOL IsChineseChar(const char* s);BOOL IsChineseString(const char* sInStr)for(int ii = 0; ii _形式。如:#ifdef _NONE_THROW_#endif#ifndef _FOR_CCPC_#endif规则 15: 为防止重复包含而定义的头文件预处理宏,应使用_NAME_HPP_(C+)或_NAME_H_(C)形式,其中 NAME为模块名称。如:#ifndef _CSIGNAL_HPP_#define _CSIGNAL_HPP_#endif#ifndef _CSIGNAL_H_#define _CSIGNAL_H_#endif2.4 类命名规则 16: 类命名应使用字符 C|T名称形式。其中名称应使用名词或名词短语,且每个单词首字母大写。如:CSignal,CFile,CString,CTagMgr。2.5 函数命名规则 17: 函数命名应使用能够表达函数功能的英文动词或动宾结构短语,且每个单词的首字母大写。如:GetName(),StrTrimLeft(),KillProc()。禁止在函数名称中使用非字母或数