商务网站开发背景,广州站在哪里,wordpress 显示子分类,网页布局排版技巧问题排查思路
这里说的是主要是debug以及线上问题排查的思路.
解决问题的步骤
确认环境、确定问题、复现问题、查看日志、定位问题 、解决问题
确认环境/url/参数
确认是哪个环境。
是开发环境#xff0c;测试环境#xff0c;还是生产环境。
如果问题是在测试环境测试环境还是生产环境。
如果问题是在测试环境去开发环境看问题不一定能复现。
如果采用了微服务架构还要查看注册中心服务是否生效启用了哪一个实例。
哪个接口哪些参数哪个时间段
确认url是否正确参数有没有传错了。
确定问题
有时候测试/用户提出的问题不一定是bug。
一定要跟需求做校对确认是否与需求一致是否因需求不合理导致的。
复现问题
问清楚测试/用户问题是如何出现的具体的操作步骤是什么查看是否因为操作步骤不正确导致的。
在相同的环境自己重新操作一遍复现问题。
如果无法复现问清楚出错的操作时间直接查看日志。
如果无法确定逻辑可以问产品问测试。 如果无法确定是哪个接口哪个字段可以问前端。
查看日志
生产环境中是没法进行debug的所以日志非常重要。 开发中一定要把重要的变量打印出来。 打印日志 非常有利于解决问题。
链路追踪 如果项目使用了微服务架构最好有相应的链路追踪中间件比如 SkyWalking。 traceId用于标识一次请求的ID。在同一个请求调用过的服务模块中traceId都是相同的。 可以通过traceId不断地追踪。
从上往下追踪A服务调用B服务先去A服务看下日志找出 traceId然后去B服务根据 traceId 继续追踪。
如果没有 SkyWalking, 也可以看下打印的日志有没有带上线程 id可以根据线程id去跟踪。 在日志比较多的情况下根据线程id找出请求相关的日志方便定位问题。 异常错误 如果是异常错误直接查看error日志中在堆栈信息找到出错在代码就可以了。 逻辑错误 查看info/debug日志中的信息。 如果关键的信息没有打印日志那么补充日志后重新发布到开发/测试环境中。 在解决问题时补充日志重新发布环境是非常有效的方法。 虽然土但是有用。 绝大部分逻辑问题都可以通过打印日志解决。 复制数据到本地环境调试 如果是在生产环境可以把日志打印出来如果是对象可以打印成json字符串本地环境再转换成对象。 通过复制数据到本地环境进行调试。
查询数据源
将查询或更新的sql或es等语句找出来在对应的数据源中查询进行定位。
可以用下 MyBatis Log Free 插件 (免费)显示Mybatis的Sql。一下子把sql打印出来。 可以说是开发必须的插件了遇到问题马上打印sql能快速定位问题。
定位问题
数据的流程一般是 数据源产生数据—加工数据—目标变量获取数据
如果数据有问题那么就要从这三方面分析是在哪一步出错了。
是数据源的数据本来就不对或者数据在加工过程中出错了还是目标变量取错了数据数据出错
IDEA查看变量的调用链可以参考以下文章 https://www.cnblogs.com/expiator/p/10856482.html
解决问题
修改代码后重新发布环境查看问题是否已经解决。
结语
实际中遇到的问题可能会更加复杂还是需要多思考多分析多解决实际问题。
无他唯手熟尔。