什么是X-Y 问题呢?

以下参考来自于耗子叔博客:

  1. 想解决问题X
  2. 他觉得Y可能是解决X的方法
  3. 但是他不知道Y应该怎么做
  4. 于是他去问别人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的更多相关文章

  1. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  2. 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 ...

  3. 相机imu外参标定

    1. 第一步初始化imu外参(可以从参数文档中读取,也可以计算出),VINS中处理如下: # Extrinsic parameter between IMU and Camera. estimate_ ...

  4. Moscow Pre-Finals Workshop 2016. Japanese School OI Team Selection. 套题详细解题报告

    写在前面 谨以此篇题解致敬出题人! 真的期盼国内也能多出现一些这样质量的比赛啊.9道题中,没有一道凑数的题目,更没有码农题,任何一题拿出来都是为数不多的好题.可以说是这一年打过的题目质量最棒的五场比赛 ...

  5. 2014-5-10 NOIP模拟赛 by coolyangzc

    Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧. 早苗的新模型可以按照输入的 ...

  6. Linear and Logistic Regression in TensorFlow

    Linear and Logistic Regression in TensorFlow Graphs and sessions TF Ops: constants, variables, funct ...

  7. VINS 估计器之优化与边缘化

    VINS的优化除了添加了投影残差,回环检测残差,还有IMU的残差,边缘化产生的先验信息残差等.有些比较难理解,可参考此博客和知乎回答. void Estimator::optimization() { ...

  8. Agda学习笔记1

    目录 Agda学习笔记1 快捷键 refl Natural Number 自然数集合 operations rewrite cong 加法结合律 加法交换律 乘法分配律 比较大小 衍生的一些证明 be ...

  9. ThinkPHP 汉字转成多种形式拼音

    模型: <?php namespace Admin\Model; use Think\Model; /** * 汉字转拼音 * @author huangguojin */ class ZHMo ...

  10. Problem Y: 哪一天,哪一秒?

    Problem Y: 哪一天,哪一秒? Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 337  Solved: 196[Submit][Status][ ...

随机推荐

  1. Go配置管理神器—Viper中文教程

    Viper中文教程 Viper是适用于Go应用程序的完整配置解决方案.它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式. 安装 go get github.com/spf13/vip ...

  2. Linux系统发邮件

    Linux系统发送邮件 管理服务器时我们经常需要写一些监测脚本,然后在出问题的时候通过邮件来通知 SMTP SMTP(Simple Mail Transfer Protocol)简易邮件传输通讯协议 ...

  3. 使用自制离线数据跑通ElasticFusion

    使用自制离线数据跑通ElasticFusion 实验环境及设备 实验环境: Ubuntu22.04 RTX3060 实验设备: 小米13(Android) Realsense D455 一句话总结就是 ...

  4. games101 作业4提高部分

    games101 作业4提高部分 作业四中,我们按照实验步骤完成bazier曲线之后,得到的结果有一定的锯齿感: 然后pdf中给出的思路是: 对于一个曲线上的点,不只把它对应于一个像素,你需要根据到像 ...

  5. 操作系统educative版本-笔记1

    Qustions How can we summarize a Process? At any instant in time, we can summarize a process by takin ...

  6. nodejs目录与文件遍历

    路径相关函数 path.basename('/foo/bar/baz/asdf/quux.html'); // Returns: 'quux.html' path.basename('/foo/bar ...

  7. zk源码—4.会话的实现原理

    大纲 1.创建会话 (1)客户端的会话状态 (2)服务端的会话创建 (3)会话ID的初始化实现 (4)设置的会话超时时间没生效的原因 2.分桶策略和会话管理 (1)分桶策略和过期队列 (2)会话激活 ...

  8. ocr识别遇到的小问题-图片的EXIF 元数据

    背景   之前在公司通过paddleocr写了个接口,传入图片的base64编码返回识别出的文字信息.但是图片为横向时,文字行会乱序,所以准备新加一个功能通过paddleclas推理图片文字的倾斜角度 ...

  9. Python科学计算系列8—矩阵

    1.矩阵构造 代码如下: from sympy import * m1 = Matrix([[1, 2], [2, 0], [3, 4]]) # 构造单位矩阵 m2 = eye(3) # 构造零矩阵 ...

  10. Git放弃本地修改,强制拉取最新版

    git fetch –-all git reset –-hard origin/master git fetch : 下载远程的库的内容(不做合并): git reset :指令把HEAD指向mast ...