VC编程规则
一般问题
- 建立程序的调试版本
- 及时修改所有错误
- 及时彻底测试代码,不惜耽误进度
- 不依赖测试组来测试代码
- 严格按照如下的编码优先级(正确,可测试,可维护,效率)
- 打开所有的编译警告
将更改归并到主程序
- 处理掉所有的警告
- 进行功能单元测试
- 单步测试每一条编码路径,并观察数据流
- 没有必要,不要清理代码,清理代码之后要严格测试
- 在代码文档中指出你的代码的危险之处
- 简单化代码,保证程序维护人员能理解你的代码
实现了一个函数或子系统后
- 修改或创建源代码文件后,需要及时修改或创建源代码文件说明部分(包括文件和函数两部分);
- 使用断言来检查函数参数的有效性
- 剔除代码中的未定义或无意义的代码
- 保证每个数据中没有不确定的值
- 对难于理解的断言做解释
- 在代码中,不做任何假设
- 使用断言警告可能出现的非常情况
- 做防御性的程序设计,在代码中,不隐藏错误
- 对用汇编优化的算法,使用另一个算法来验证
- 使用确认代码或数据启动的检查
- 消除代码中的随机行为
- 在代码中注意无用信息的产生
- 注意代码中的希奇古怪的行为
- 建立子系统测试
- 在设计和代码中消除任意情况的出现
- 做完整性检查
- 永远不舍弃调试语句
- 不使用不标准的数据变量类型
- 保证没有变量或表达式出现上溢或下溢
- 准确的实现设计,保证没有误差
- 保证同样功能的代码在程序中只有一份
- 尽量减少if的使用
- 尽量减少复杂?:的使用
- 孤立专用代码
- 不使用有风险的惯用语
- 不混用不同优先级的运算符
- 不使用把错误和返回值一起返回的函数
- 不使用尚未分配的空间
- 不使用已经释放的空间
- 不要多用输出缓冲存储
- 不向静态或全局缓冲区输出数据
- 不依赖其他函数内部细节(未明确的功能)来完成本函数内的功能
- 在代码中不要把过多的语句放在一行中
- 消除代码中多余的灵活性
- 不要使用试探法编写程序
设计了一个函数或子系统后
- 评价此特征是否符合产品的市场策略
- 严格区分错误代码和正常的返回值
- 保证函数界面难于出现误操作
- 排除具有多用途且面面俱到的函数
- 排除太灵活的(空空洞洞的)函数参数
- 在函数不再需要时,返回一个错误条件
- 保证在调用点函数易读
- 尽量排除布尔量或命令参数输入,多用枚举变量
修改错误时
- 错误无法消失,是否能找到错误的根源
- 修改错误的根源,而不是错误的症状
VC动画构件界面标准
- 组态时尽可能多地体现构件运行时的显示外观
- 使用MCGS的缺省字体(System 10号);
- 使用统一的界面大小:
- 构件属性页大小:212*154;
- 属性页内所有控件应当在198*147的矩形范围内,该矩形范围的左上角位于属性页的7*7处;
- 在属性页内使用Group Box时,Group Box内控件左上角与Group Box控件距离不小于7*13;
- 界面应遵循基本的对齐原则,尽可能作到简捷、整齐;
- 使用MCGS标准的颜色、线型选择方式;
其它
- 尽可能使用C++风格的注释形式
- 除变量、常量定义外,使用行注释形式