编程规范

编程规范笔记

1.组合:

通过成员变量的方式替代继承。

多继承,用组合代替。

2.继承

<=4层

3.异常

一定能被捕获到

分配内存失败

错误码难以返回,比如流

系统中与第三方c++库结合处使用异常

测试框架中

保证异常发生后资源不泄漏

4.头文件、头注释

/****************************************************************

Copyright(C),1988-1999,Huawei Tech.Co.,Ltd

File name : //文件名

Author : //作者 Version : //版本 Date : //完成日期

Description : //详细说明此程序文件完成的主要功能,

  //与其它模块或函数的接口,输出值、取值范围

  //、含义及参数间控制,顺序、独立或依赖关系

Others : //其它说明

Function List : //主函数列表:函数名、功能简要说明

1.....

History : //修改历史记录列表

1.  Date : //修改日期

Author : //修改者

Modification : //修改内容简介

****************************************************************/


5.函数头注释

/****************************************************************

Function : //函数名称

Description : //函数功能、性能等描述

Calls : //被本函数调用的函数清单

Called By : //调用本函数的函数清单

Table Accessed : //被访问的表(此项仅对数据库操作)

Table Updated : //被修改的表(仅对数据库操作)

Input : //输入参数说明,包含每个参数的 作用、取值说明、参数间关系

Output : //对输出参数的说明

Return : //函数返回值的说明

Others : //其它说明

***************************************************************/


6.全局变量注释

包括:功能、取值范围、哪些函数存取它、存取时的注意事项

例子:

//The ErrorCode when SCCP translate

//Global Title failure as follows

//0-SUCCESS 1-GT Table Error

//2-GT error Others-no use

//Only function SCCPTranslate() in..

//the function GetGTTnsErrorCode()...

BYTE g_GTTranErrorCode;


7.if、for、while、switch 必须加注释


8.标识符命名

(1)短单词去掉“元音“形成缩写;长单词取单词头n个字母

例: temp => tmp; flag => flg; statistic => stat;

 increment => inc; message => msg;

(2)禁止取单个字符(如i,j,k[只能作为局部循环变量])

(3)便娘命名必须加类型头,推荐使用大小写混排方式

(4)类成员变量必须以m_开头。全局变量必须以g_开头。

类型 类型头

boolean b

byte bt

short bt

word w

int i

DWORD dw

unsigned long ul

long  l

char * psz

char c

CString str

typedef void * PVOID pv

typedef BYTE * PBYTE pby

typedef WORD * PWORD pw

typedef DWORD * PDWORD pdw

Enum e

Struct st

static s

(5)命名方式:小写+_ ; 驼峰 ; m_+驼峰

(6)编译开关一定以_开头。变量不可以用_开头

(7)代码中 数字 用#define或const代替


9.函数

(1)仔细、全面处理返回值

(2)精确实现函数设计

(3)多进/线程 操作函数 中对全局变量操作 + (P,V)||(lock)操作

(4)参数合法性规定:[1]由调用者负责 [2]由接口函数负责。默认由调用者负责

(5)行数<200

(6)扇出<7[3-5] 高扇入


10.项目

(1)只有一份代码

(2)使用——UNIT_DEBUG 编译开关实现测试版本与发型版本区别

(3)调测:打印的信息串至少要有所在的模块名[或源文件名]和行号

(4)编码要为但愿测试做准备

(5)编码与调试:先设计好调测开关及相关测试代码[打印函数等]

(6)系统有一定容错能力,如对用户误操作能进行自动补救

(7)如果代码确定但有警告,用#pragma warn -rrl //关闭警告 (+rrl打开警告)


11.测试

单元测试:

至少语句覆盖

保留测试信息

多做边界测试和非常规操作测试

一边编码,一边做但愿测试

12.宏

使用完备的括号

例: #define ADD(a,b) ((a)+(b))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值