C++工程代码自查list
2021/4/12 1:25:13
本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升