找不到文件:
1、文件名和类名规范
2、文件名大小写规范
3、是否放到了正确位置
4、runtime是否删除
5、是否给正确的权限(777)
某些能稳定复现的操作bug:
rpc接口没数据、websocket连不上:
1、服务是否启动
2、ip是否能连
3、端口是否开放
4、其他
1、代码git版本、测试服ip准备
2、入参、导入文件准备
3、发request,尝试第一次复现
4、返回值json、返回提示记录
5、error.log、console.log、php_error.log等相关日志获取
6、熟悉代码大致流程
7、关键部位返回值/生成文件打日志断点,可以用二分法、注释法
8、逐步缩小范围,打日志断点
9、定位错误并找到错误原因
10、出解决方案,不确定的跟同事沟通
11、改完、自测、再想想有没不合理
12、去掉各种断点,提交代码
一次解决现场问题的原则:
1、未考虑到:没有memberof字段
2、未考虑到:memberof里没有“OU=DHCP认证组,DC=PORTAL,DC=sh,DC=tb”
3、前100条为空则不执行队列导入,发现队列没生效但不知道为什么,耗费了大量的时间
原则:
1、使用属性时加判断,特别考虑下属性不存在情况
2、foreach前用is_array和!empty($foo)判断
3、某段代码没执行,先梳理整整体流程,列出所有可能得原因,而不仅仅是停留在局部,再逐个击破
减少bug的原则
1、幂等性,多次请求是不是效果一样?
2、并发性,快速重复点击是不是有问题?
3、兼容性,改完是不是不兼容老版本、老的数据?
4、考虑下字段不存在的情况,是否要给默认值或者写日志?
5、遍历前判断用is_array和!empty($foo)判断
6、是不是真正符合需求 ?
7、数据量大能抗住吗?
8、是否需要设置超时时间和内存,是否需要用yeild,是否需要分批?
9、http加超时和重试,失败记录日志
10、复杂过程,适当的加日志,从而知道代码是否按正常的逻辑运行的
数据展示不对问题原则:
1、找到数据库数据,是否是数据真的不对,还是前端显示问题
接下来按普遍原则
一直有莫名其妙的数据新增解决原则:
1、定位到日志。找到日志、找到新增时间,按时间去定位日志。但是grep的时候要注意,数据库时间和日至时间有如下问题(1、有时差。2、格式不一致)
2、看大致代码缺陷。找到日志后,大致看下代码,注意phpstorm右边的代码报错信息。例如是不是少了break等等
3、接下来按普遍原则