原始笔记是三句话,这里把它整理成一个可以反复对照的“处理工程问题的最小检查表”。三条原则的核心信息保持不变。
三条原则
1. 评估影响,并检查、检查、再检查
任何修改、上线、迁移之前,先把“这件事影响到谁、影响多大、最坏情况怎样”过一遍:
- 涉及的服务、模块、上下游
- 是否影响线上数据 / 资金 / 用户体验
- 失败时的回退路径
确认后再动手;动手前后都要复核改动是否符合预期。
2. 遇到问题,对比正常与异常
定位问题时,最稳的姿势是“对比”:
- 代码维度:和上一个稳定版本 diff,找最近改动
- 环境维度:和正常机器/集群对比配置、依赖、内核参数
- 数据维度:对比异常请求和正常请求的入参、上下游
实在卡住时,使用两种最朴素的工具:
- 回滚:先恢复线上,再慢慢复盘
- 二分:把改动一半一半地切,定位到具体引入问题的那部分
3. 自己想不到,就去抄
如果上面都试过仍然没思路,承认“想不到”不丢人,关键是别原地打转:
- Google / Stack Overflow
- 微软、Amazon、Google 等公开的工程博客或 RFC
- 同公司其它团队的内部文档与历史 case
照着别人成熟的解法做一次,往往比自己硬想要快得多。
后续可补的方向
- 每一条配一个真实复盘 case
- 增加“评估影响”用的 checklist 模板
- 整理常用的二分定位手段(git bisect、流量分割等)
FEATURED TAGS
Git
Cheat Sheet
Markdown
Tools
C++
Linker
Thread
Linux
TCP
Network
GDB
Debug
leetcode
链表
WSL
Ubuntu
Windows
Linux Kernel
GCC
Android
adb
Troubleshooting
Profiling
Sanitizer
glibc
MySQL
Database
Python
curl
Build
ELF
clang-format
CMake
Graphviz
Performance
vcpkg
Protobuf
排查
速查
内存
STL
调试
性能分析
性能
读书笔记
方法论
架构
网络
Timer
mbedTLS
TLS
安全
负载均衡
脚本
工具
LRU
二叉树
BST
中序遍历
回溯
二分查找
优先队列
排序
旋转数组
jenkins
部署