C/C++教程

C++工程代码自查list

本文主要是介绍C++工程代码自查list,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C++工程代码自查list

// 是实打实的踩坑经验

本着早发现早治疗的原则,写个list, 每次大的更新前尽量先离线自查一下。 经验有限,踩坑后再更新

下标

下标最容易出现越界的问题

  • 检查所有用到显式数字索引的地方,是否明确任何情况下这些索引都是有值的
  • 检查所有vector部分,是否有对某个位置的单独索引,能不能保证在size内
  • 全局检查所有用到at的部分,取不到肯定会异常的,是否提前做了find处理
  • 检查map中用中括号索引的部分,是否是期待这里在没有key的时候创建新key

返回值和参数

  • 返回值的类型是否正确,比如unsigned还是signed
  • 对异常返回值是否做了处理,比如因为出错返回了-1,检查这种情况会不会影响到后面的逻辑
  • 传入的参数有没有可能是空值,空值的话会不会影响后面的函数逻辑
  • 返回值有没有可能是null,要不要有默认值
  • 希望的是传值还是传引用,传入的参数在函数返回后还要不要使用;标量传入之后如果不需要更改要不要加const

指针

  • 用指针->调用之前,都要保证不是空指针
  • 返回值是指针,且后面要用到(比如创建client)要做空指针检查

类型转换

  • 所有类型转换的地方检查有没有可能异常,尤其字符串要检查会不会字符串本身为空,转int的值会不会出现浮点数或者字母
    key-value
  • 其实主要踩过的坑是看有没有去重的必要,是直接push_back还是要去掉重复情况

时间处理

  • 用到时间戳和时区的地方离线自查一下,特别是时区是否符合要求https://tool.chinaz.com/tools/unixtime.aspx

本地测试

  • 批处理测试
  • 异常情况测试报错信息
  • 空值测试
  • 重复id测试
  • 。。。
这篇关于C++工程代码自查list的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!