今天遇到了 X-Y PROBLEM
什么是X-Y 问题呢?
以下参考来自于耗子叔博客:
- 想解决问题X
- 他觉得Y可能是解决X的方法
- 但是他不知道Y应该怎么做
- 于是他去问别人Y应该怎么做?
X-Y Problem 最大的严重问题就是:在一个根本错误的方向上浪费了大量的时间和精力!
更多了解可以参考酷壳上的X-Y Pproblem https://coolshell.cn/articles/10804.html
- 上面介绍了X-Y问题,那么接下来说下我们今天遇到的问题:
问题描述:调用第三方接口线上签名错误,测试环境正常,初步怀疑是时间戳问题,签名参数信息中有时间戳参数
然后让我帮忙排查下,重点在上面最后一句话:初步怀疑是时间戳问题,然后我觉得是不是线上php.ini 中的默认时区没有配置,那么我们就可以在代码中加入log 信息,看时间戳是否正确
尝试解决1: 加日志,打印时间戳和构造加密请求参数信息
然后发现时间戳正常
那么如果时间戳正常,那么为什么测试环境正常,线上环境有问题呢?
排查了好久,最后同事发现是配置文件中配置第三方的key 密钥参数配置出错了。。。。。。
那么我们继续复盘:为什么一开始不检查配置文件呢,因为一上来同事就看了配置文件的配置,他说没有问题,这个地方以后自己也要检查下,我们就去关注业务逻辑了,然后还提了另一个同事帮忙更新掉了配置文件
本来问题是签名不正确,我们就从头开始排查签名涉及到的参数信息就可以了,因为初步定位时间戳问题,我们就去排查时间戳了,其实时间戳并没有问题。
所以真正的问题X是签名不正确,问的问题是Y: 时间戳有问题,所以在Y问题排查了半天,才发现在错误的方向上。
总结:
1. 整体性的排查问题,脑子里把流程理清楚,如果想不清楚就借助流程图等工具进行辅助
2. 排查问题前,多问几个为什么,了解到真正的问题所在
3. 细节之处往往容易出错,自己也要仔细检查下配置信息
今天遇到了 X-Y PROBLEM的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near
The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near ...
- 相机imu外参标定
1. 第一步初始化imu外参(可以从参数文档中读取,也可以计算出),VINS中处理如下: # Extrinsic parameter between IMU and Camera. estimate_ ...
- Moscow Pre-Finals Workshop 2016. Japanese School OI Team Selection. 套题详细解题报告
写在前面 谨以此篇题解致敬出题人! 真的期盼国内也能多出现一些这样质量的比赛啊.9道题中,没有一道凑数的题目,更没有码农题,任何一题拿出来都是为数不多的好题.可以说是这一年打过的题目质量最棒的五场比赛 ...
- 2014-5-10 NOIP模拟赛 by coolyangzc
Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧. 早苗的新模型可以按照输入的 ...
- Linear and Logistic Regression in TensorFlow
Linear and Logistic Regression in TensorFlow Graphs and sessions TF Ops: constants, variables, funct ...
- VINS 估计器之优化与边缘化
VINS的优化除了添加了投影残差,回环检测残差,还有IMU的残差,边缘化产生的先验信息残差等.有些比较难理解,可参考此博客和知乎回答. void Estimator::optimization() { ...
- Agda学习笔记1
目录 Agda学习笔记1 快捷键 refl Natural Number 自然数集合 operations rewrite cong 加法结合律 加法交换律 乘法分配律 比较大小 衍生的一些证明 be ...
- ThinkPHP 汉字转成多种形式拼音
模型: <?php namespace Admin\Model; use Think\Model; /** * 汉字转拼音 * @author huangguojin */ class ZHMo ...
- Problem Y: 哪一天,哪一秒?
Problem Y: 哪一天,哪一秒? Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 337 Solved: 196[Submit][Status][ ...
随机推荐
- linux 根目录与分区
1.2 根目录的建立 大家一般都会知道根目录的产生方式,就是系统使用mount指令,将系统所在的分区挂载到[/]目录中,这样便完成了所谓的根目录.但你是否想过, 虽然看起来合理却有点诡异,因为根目录 ...
- vmware vsphere 6.5
vmware vsphere 6.5是vsphere软件的经典版本,也是一款业界领先的服务器虚拟化平台,作为基础平台,是任何云计算环境的理想之选,其组件包括vCenter Server.ESXi.vS ...
- 前端打包发布以及小程序发布(IIS下部署前端站点)
作为后端程序员 一直没有摸索过前端项目的打包发布,因为项目需要 这次经历一个 前端项目以及小程序的打包发布,记录一下. 一.前端部署 部署过程种一直出现node-sass 问题 https:/ ...
- ASP.NET Core 响应压缩中间件
使用及对比 在 Startup.cs 中添加服务并使用即可,主代码如下: // Startup.cs public void ConfigureServices(IServiceCollection ...
- MySQL 查询树结构、循环查询、查看函数、视图、存储过程
MySQL经常会用到查询树结构数据,这里专门收集整了一篇. 构建函数 构建树查询函数:查询父级节点函数 -- 在mysql中完成节点下的所有节点或节点上的所有父节点的查询 -- 根据传入id查询所有父 ...
- 又来一个挑战 Elastic 的,初识 SigLens
Elastic Stack 在日志领域具备无与伦比的地位,各类新兴的开源项目都声称比 Elastic 更节省资源,同时检索速度也不慢,比如 ClickHouse.Loki.OpenObserve.VM ...
- 关于:js怎么获取元素的自定义属性的问题(原生JavaScript)
最近项目需要把后端传过来的数据隐藏的保存在页面中,方便后边做事件处理时使用.鉴于之前总是在后端处理后的页面中看到元素里除了常见的id.name属性外的data-xxx,就想到:元素的属性必然是可以自定 ...
- SpringBoot3启动报错 java.lang.ClassNotFoundException: java.text.ListFormat
问题 在使用SpringBoot3创建web项目的时候日志报错java.lang.ClassNotFoundException: java.text.ListFormat. 具体报错如下: java. ...
- 【经验】IDA|python 脚本怎么使用反汇编的变量,以及获取反汇编地址上的值,附 IDA的output窗口被不小心关掉了的打开方式
文章目录 IDA脚本怎么用变量--怎么获取目标文件内的值(python) 1 获取地址 2 获取地址上的值 可能出现的问题:NameError: name 'Byte' is not defined ...
- 【记录】Excel 2021|(一)VBA操作Excel入门,在姓和名之间打空格,如“ZhangSanSan“改成“Zhang SanSan“
版本:Excel 2021. 打开VBA界面:快捷键Alt+F11.(或视图-宏). 录制宏,再看看宏的代码,就可以基本了解常规的Excel操作在VBA里是什么德行. 比方说,我需要对一个选区进行修改 ...