版本开发中项目、工程与代码规范
一 项目规范
1、开发阶段需求、编码、用例与迭代的对接
2、版本验证阶段,开发与测试的对接
3、版本发布阶段,开发与测试的对接
数据流程:需求加入流程、问题单走单流程
内部管理:代码版本管理(迭代开发与svn分支)、激励制度
部门流程:测试与开发与系统
流程推动制度:问题单电子流、需求电子流、持续集成、责任人负责与推动
二、工程规范:
1、通过建立的“通用底层库”提供通用的操作函数,如安全字符串拷贝,文件路径处理、时间处理、数字处理、字符串处理、通用宏SAFE_DELET SAFE_RELEASE等供整个项目使用,团队成员都通过“通用库”加入函数和使用函数,不要在各自工程内重复造轮子或私自造轮子。
通用底层库对外接口的头文件尽量功能上划分一下,如:
basetypes.h 定义基本数据类型,
macroDef.h提供宏定义,
pathDef.h 提供路径处理函数,
stringPro.h提供字符串处理函数
....
2、代码与项目文件管理,建立层次与权限清晰的文件夹结构,对于开发文档放在对应的代码模块中还是完全与代码分开的问题,个人觉得完全分开好好点,1、可以方便持续集成下的自动打包,2、权限控制也一样可以做好.
三、代码规范:
1、 用typedef定义统一的类型,只使用定义好的类型如:int8_x,uint8_x ,int16_x ,uint16_x,int32_x,uint32_x,float32_x,float64_x,int64_x,uint64_x类型可满足项目的开发(x表示特定标识符)。
2、表达size的变量不要 size_t、int ,unsigned int 混用, 可统一使用size_t或 unsigned int(uint32_x)表述
为什么代码中出现这么多用int来表达size? 是输入简单?通过typedef unsigned int uint32_x 同样可以做到。可以用负值表达其他意思? 没有必要。
防止 编译中出现:warning C4018: '>' : signed/unsigned mismatch
conversion from 'size_t' to 'int', possible loss of data
3、lib库的包含:要么在vs 的 工程属性->linker->input和c++->genneral定义用相对路径表述的库和头文件位置,要么在接口头文件中用 相对路径include头文件和lib库。不要两者混用,建议使用第一种方式,第二种方式对项目各工程文件的文件夹的层次结构有要求,否则包含时很容易出现 编译link报错:找不到某lib库。
4、对外接口中的结构体、类名、函数名命名同样命令风格,函数参数顺序中是先输入参数还是先输出参数。