C++工程代码自查list

3 篇文章 0 订阅

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测试
  • 。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值