如何减少程序的 BUG

尽量减小变量的作用域。

  1. 全局变量
  2. 类 public 变量
  3. 类 protect 变量
  4. 文件级变量
  5. 类 private 变量
  6. 函数级 static 变量
  7. 函数级临时变量
  8. 语句级临时变量

尽量减少 free variable

减少使用复杂的逻辑语句。

只有在需要的时候才定义类,函数或者变量。或者说不要有从来都不用的类, 函数或者变量。

使用统一风格的缩进格式。

聪明的数据,傻瓜的代码

代码定义游戏规则,数据定义游戏策略。

深刻理解const 语句,尽量使用 const 语句。

如果能够使用引用,就不要使用指针

尽量用 private 代替 protect 语句。

类继承 不要超过 3 级以上

尽量减少类的个数。

区别对待 BUG

功能限制不是 BUG , BUG 是正确输入的产成了错误的输入。

如果输入的数据的是错误的,那么程序不应该产生输 出,而是给出错误处理。 尽量不使用没有 else 的 if 语句。尽量不使用没有 default 的 switch 语句。 如果 else 的部分什么都不干,那么给出空语句。

关于拷贝构造函数和等号的操作符重载

尽量建立自己的拷贝构造函数,改变默认的拷贝构造 函数。拷贝构造函数的内容一般是 assert(false) 语句。意思是说不可以调用拷贝构造函数,也就是这 个类的对象不能作为函数的参数传递,也不能用 aClass obj(oldobj) 的形式创建对象。只有确定需 要以上功能的时候,才编写拷贝构造函数。等号的操 作符重载类似。

尽量多的使用 assert 函数。

输入的合理性检查。 如果函数的输入最终用户,人的输入,那么这中函数 就要检查用户输入的数据检查数据的合法性,如果不 合法,给出错误信息。甚至是退出程序。 如果函数的 输入是其他函数的输出,那么就没有做过多的出错处 理,而是使用 assert 函数。

用对象组合代替类继承 。